Software engineer · Swift veteran · hardware poker · professional rabbit-hole explorer
I’ve spent more than a decade building software, mostly in the Apple ecosystem, but I have a habit of following interesting problems far beyond the application layer.
One day I'm writing SwiftUI. The next I'm driving an NPU's convolution engine from Python, compiling gnuplot to WebAssembly, or turning a resin 3D printer into a PCB exposure unit.
My GitHub is mostly a record of those excursions.
🧪 This is what AI says I like building...
Some representative rabbit holes:
Circuit design tools Interactive circuit-diagram editing, graph-based connectivity and SPICE integration.
Parsers NGSPICE, SMILES, SMARTS and experiments with parser combinators.
Scientific simulation Monte-Carlo / Binary Collision Approximation simulations for ion implantation through multilayer materials.
3D & visualization SceneKit, Blender, procedural geometry, vehicle visualization and mathematical diagrams.
Embedded & hardware Cameras, SBCs, Wi-Fi hardware, power systems and assorted devices that usually end up connected to a logic analyzer sooner or later.
AI infrastructure NPUs, quantization, memory bandwidth, tensor execution and attempts to understand what accelerator hardware is really doing.
Mathematical experiments Representation learning, unusual storage geometries, information compression and ideas that often begin with:
“This is probably nonsense, but what happens if…?”
🛠️ Around here
Swift · SwiftUI · Objective-C · C/C++ · Go · Python · TypeScript NPUs · INT8 · Quantization · tinygrad · LLVM · WebAssembly Pikchr · PlantUML · Mermaid · gnuplot · Tauri · VS Code extensions ARM · Embedded Linux · ESP8266 · 3D printing · Lean
---
config:
theme: base
gitGraph:
rotateCommitLabel: true
showBranches: true
showCommitLabel: true
themeVariables:
background: "#0d1117"
git0: "#58a6ff"
git1: "#a371f7"
git2: "#3fb950"
git3: "#f85149"
git4: "#d29922"
git5: "#39c5cf"
git6: "#ff7b72"
git7: "#8b949e"
gitInv0: "#ff7b72"
gitInv1: "#ff7b72"
gitInv2: "#ff7b72"
gitInv3: "#ffffff"
gitInv4: "#ffffff"
gitInv5: "#ffffff"
gitInv6: "#ffffff"
gitInv7: "#ffffff"
gitBranchLabel0: "#ffffff"
gitBranchLabel1: "#ffffff"
gitBranchLabel2: "#ffffff"
gitBranchLabel3: "#ffffff"
gitBranchLabel4: "#ffffff"
gitBranchLabel5: "#ffffff"
gitBranchLabel6: "#ffffff"
gitBranchLabel7: "#ffffff"
commitLabelColor: "#c9d1d9"
commitLabelBackground: "#161b22"
commitLabelFontSize: "11px"
tagLabelColor: "#0d1117"
tagLabelBackground: "#f2cc60"
tagLabelBorder: "#d29922"
tagLabelFontSize: "11px"
---
gitGraph
commit id: "Initial optimism"
commit id: "README says 'easy setup'"
branch feature/tiny-change
checkout feature/tiny-change
commit id: "Change 1 line"
commit id: "Why are 47 files modified?"
commit id: "Refactor while I'm here"
commit tag: "point-of-no-return"
branch fix/refactor
checkout fix/refactor
commit id: "Undo clever abstraction"
commit id: "Add cleverer abstraction"
commit id: "Ask AI"
commit id: "Paste 900 lines"
commit id: "It compiles?!"
checkout feature/tiny-change
merge fix/refactor
commit type: HIGHLIGHT id: "DO NOT TOUCH"
checkout main
commit id: "Someone updated main"
checkout feature/tiny-change
merge main
commit id: "Resolve conflict"
commit id: "Resolve conflict from resolving conflict"
commit id: "git status"
commit id: "regret"
checkout main
merge feature/tiny-change tag: "LGTM"
commit id: "Deploy Friday 16:59"
branch hotfix/oh-no
checkout hotfix/oh-no
commit type: REVERSE id: "Production is on fire"
commit id: "Blame cache"
commit id: "Restart everything"
commit id: "Still broken"
commit id: "Actually DNS"
commit tag: "v1.0.1-final-FINAL"
checkout main
merge hotfix/oh-no
commit id: "Write postmortem"
commit id: "Action item: add tests"
branch tests
checkout tests
commit id: "TODO: add tests"
checkout main
commit id: "Start next feature"
I use AI to cut the friction between an idea and an experiment. I still read, test and own whatever ends up in the code.



