Projects.
A few things I keep coming back to: programmable hardware, tools that make it easier to reason about systems, and projects where software has to meet the physical world.
Kestrel
A real-time FPGA audio DSP platform built around per-sample effects processing, flexible control, and low-cost hardware.
audio in → FPGA DSP → audio outActive · SystemVerilog · DSP · embedded UILyrebird
A sixteen-voice polyphonic synthesizer on an AMD Kria KV260. A USB MIDI controller is read on the Linux side and written into registers in the programmable logic, where an HLS DSP core generates 24-bit, 48 kHz audio: phase-modulation voices with wavefolding, filters, envelopes and LFOs, and a shared reverb, played out over I2S.
MIDI → Linux → PL registers → HLS → I2SActive · Vitis HLS · SystemVerilog · KV260Pigen
Pipeline Generator: An experimental hardware description language centered on pipelines, implicit flow control and making streaming hardware easier to express.
buf · port · fifo[n] · skidActive · compiler design · RTL · dataflowKnowledgetrees
A semantic filesystem for agent knowledge: small, addressable pieces of technical state that can be updated, checked and reused across long-running work.
kt where am iActive · agents · MCP · verificationCointOS
Local-first orchestration for my personal AI agents. It turns requests from the terminal or Telegram into durable agent work, coordinates local model inference, and keeps resource use in check on my own machine.
request → durable work → local inferenceActive · Python · agents · local inferenceWhiteboard
A text-driven animation tool for hand-drawn-style maths explainer videos. You write a spec, it renders the video, and it uses my own captured handwriting for the notation. I built it to make Boarbarktree videos practical again.
write spec → render → adjust → publishIn progress · C · animation · maths