Jegor
van Opdorp

I build software and hardware.

I wrote my first line of code at the age of six. By day I do infrastructure and AI. I also do robotics, woodworking and interior design with a CNC mill and KUKA robots. The rest of the time I build emulators, FPGA cores and guitar effects, with a fleet of AI agents helping on all of it.

Portrait of Jegor van Opdorp in a light blue shirt against a plain wall.

01 Now

Now

I'm an infrastructure and AI engineer at homii, and I write a fair share of the software too. Day to day that means Kubernetes, the data platform, performance work and AI agents running in production.

As a freelancer I do infrastructure and security operations for WeGotWorkspace, an open-source office suite you can host yourself.

The woodworking and interior design start in code. I design the pieces in Python, cut them on my CNC mill and work with KUKA robots, where a camera on the tool corrects the arm's position while it runs.

02 Work

Before this

I've co-founded software and infrastructure companies and built for clients like Albert Heijn, Heineken, Hornbach and Coca-Cola.

  1. 2025 → now

    Infrastructure and AI engineer, homii

    Kubernetes, the data platform, performance work and AI agents in production, and a fair share of the product software.

  2. 2026 → now

    Freelance infrastructure and security engineer, WeGotWorkspace

    An open-source office suite with documents, calendars, video calls and files that you can host yourself. I do the infrastructure and security operations.

  3. Jan 2020 → Oct 2024

    Co-founder and CTO, Greenedge and Leafcloud

    Leafcloud is a public cloud whose servers sit in buildings and heat them. I designed the architecture and led building and running the IaaS on OpenStack, with a team of six. I was a core contributor to OpenStack Masakari and contributed to Cinder and Kolla-Ansible. I also wrote the firmware for the heat-exchange system, built the networking and storage clusters and led our ISO 27001 work.

  4. Dec 2016 → Jan 2020

    Freelance software engineer

    Full-stack and platform work for Leaseplan, Vodafone, Alef Education, Shrines (Y Combinator backed), Mypo and Coverstories, and Digiroom, a toolset for building escape rooms.

  5. Oct 2014 → Dec 2016

    Co-founder and CTO, Tosti Tech and Tosti Creative

    We built apps and the machine learning behind them: the Hornbach challenge app, Leegstand Activator for the municipality of Amsterdam, a Coca-Cola chatbot and TostiRSVP. The same founders also started Het Huis van Iemand Anders together, on the Van Woustraat in Amsterdam.

  6. Mar 2013 → Sep 2015

    Senior software engineer, Edia

    Java back-ends and front-end lead on learning platforms, including the University of Amsterdam.

  7. Dec 2011 → Jan 2013

    Consultant, Xaton

    Led projects for ANWB, KPN, Ziggo and De Telefoongids.

  8. Oct 2010 → Oct 2011

    Software engineer, Johan Enschedé IT

    Java web applications for housing platforms like Woonnet Rijnmond.

Earlier

  • 2012 → 2013 Taught web design, social media and distribution at the Conservatorium van Amsterdam
  • 2013 NLN-Live, an adaptive music system for orchestra, performed with Het Gelders Orkest and presented with a paper at the International Computer Music Conference
  • 2008 → 2010 Studied composition and music technology at the HKU in Utrecht
  • 2002 → 2011 Freelance system administration

Courses

Circuits and Electronics, MIT
2022
Nand to Tetris, Hebrew University
2018
Deep Learning, Google
2016
Recommender Systems, Minnesota
2015
Neural Networks, Geoffrey Hinton
2014
Machine Learning, Stanford
2013

I speak Dutch, English and Russian, plus Spanish and German, and some Mandarin and French.

03 Emulation and FPGA

Old machines, rebuilt

Old hardware rebuilt in software and on FPGA. The quickest way to understand a machine is to make it run again.

Public

GitHub

nand2tetris-verilog

The hardware half of the Nand to Tetris course in SystemVerilog, from a single NAND gate up to a computer that runs Pong. Every course week has its own branch, so you can build each week yourself and check it against the testbenches.

Stars
27
Forks
17
Started
2017

04 Audio

Guitar and sound

Most of this started with my own guitar rig, and several pieces ended up upstream.

PRs open

PRs

LiveSPICE on Linux

LiveSPICE simulates guitar circuits in real time, straight from the schematic, but it only ran on Windows. I am porting it to Linux with an Avalonia interface and a native LV2 plugin, and fixing the solver problems I found along the way.

Open PRs
9
Plugin
LV2

RTNeural and RTNeural-NAM

RTNeural runs neural networks inside realtime audio code, and RTNeural-NAM uses it to play Neural Amp Modeler captures. I made the small convolution kernels faster and reduced the memory and latency overhead of the WaveNet blocks.

RTNeural
#166 merged
RTNeural-NAM
#11 merged

Merged in Linux

Kernel commit

Focusrite Forte on Linux

My Focusrite Forte had no mixer controls on Linux. I added mixer support to the kernel’s USB audio driver and Takashi Iwai merged it. The matching support in alsa-scarlett-gui is an open PR.

Driver
ALSA usb-audio
Year
2026

Private

Raspberry Pi guitar pedal

A guitar pedal on a Raspberry Pi, with a realtime Linux build running Neural Amp Modeler amps and cabinet impulse responses. It has grown into research on tracking what each string is doing, in real time.

OS
Buildroot, PREEMPT_RT
Language
C++

Research

low-latency-pinebuds

A neural audio codec for the Bluetooth voice link of PineBuds earbuds. Stereo audio has to fit into tiny packets with almost no delay, so the codec is causal and stacks small residual quantisers.

Codec delay
1.25 ms
Packet
10 bytes
Bitrate
64 kbit/s
Radio latency
not measured yet

05 Wood and robots

Furniture as code

Furniture designed in Python, with the machine output checked against the model before it reaches the CNC mill.

Public

GitHub

build123-timber

Timber joinery for build123d: tenons, dovetails, laps and braces, up to a complete barn frame with its joints detected automatically. A frame can go straight into a CalculiX FEA run or out as IFC.

Package
timber-joints
Stars
2

Public

GitHub

build123d-freecad

A FreeCAD workbench that runs build123d and CadQuery scripts and converts the result into native FreeCAD shapes, so a model written as code can be inspected and used in FreeCAD.

Stars
7

Public

GitHub

KUKA vision correction

Position correction for a KUKA industrial robot. A Raspberry Pi camera on the tool tracks markers and works out how far the arm is off, and a background task on the controller applies the correction while the program runs.

Correction cycle
about 12 ms
Markers
ArUco and ChArUco

06 AI

A fleet of agents

AI agents do a lot of the typing on the projects above, so I built what they need: memory, routing and a safe way to let them operate real systems.

Private

Agent fleet

Most of my side projects are built with a fleet of AI models. One orchestrator triages each task and hands it to Claude or Codex models by difficulty and cost, and a second model reviews the hard decisions. Routing follows each model’s track record.

Engines
Claude and Codex
Role personas
158

Private

CAD with agents

The cabinet pipeline is written mostly by AI agents. Every model is plain Python with all dimensions in one place, so an agent can change a measurement and regenerate everything, and independent reviewer agents check the result against the drawings and the geometry tests.

Source of truth
one Python file

Private

qmem

Shared memory for my AI agents, Claude and Codex alike. It keeps a working blackboard, an event log, digests, long-term facts and a profile per agent, and it consolidates every hour, so each new session starts with what the last one learned.

Store
Qdrant
Tiers
5
Consolidation
hourly

Retired

Local AI on Intel Arc

For a while I ran language and embedding models on a laptop’s Intel Arc GPU, with a patched llama.cpp Vulkan build to keep it stable. A small dedicated embedding service replaced it.

Runtime
llama.cpp on Vulkan
Retired
Oct 2026

07 Upstream

Patches I sent back

When a tool I use is missing something, I fix it in the tool itself and send the patch upstream.