I’m an (electrical) engineer and I’ve been building my own tools for a long time, mostly hardware. More recently (~2013), I’ve started creating digital content and releasing it open source: libraries (for Torch7, its nn, and a prettier one), guides (dev and ML), video tutorials, and all my notebooks. Over 10k and 3k 🍴 later, I’m back to writing utilities. Before I had the time; now I don’t, but I know exactly what I need — so Claude and I built these together. Everything here is MIT and lives on GitHub.

VS Code extensions

Neither is on the Marketplace yet, so both are installed by building the .vsix from source. Instructions are in each README.

TikZ

An IDE for TikZ, growing one piece at a time. For now, it does syntax highlighting. Both TeXstudio and VS Code tokenise a tikzpicture as if it were plain LaTeX, so option keys, dimensions, path operators, and arrow tips all come out the same undifferentiated colour. With this extension, VS Code tells them apart, and follows your \def‘ed macros from definition to use. One key builds the figure you’re editing, another previews it.

Jupyter Unicode input

Type \beta, press <Tab>, get β — the way a Jupyter notebook in the browser does, but in VS Code. Accents compose too, so y \tilde <Tab> folds into the single codepoint . Works in notebook cells, code and markdown alike, in the Interactive Window, and in .py files. The lack of this functionality was the only reason why I couldn’t move away from Jupyter… well, until now.

Terminal

Unix-dot-files is my configuration for Bash, Git, Vim and Nvim, Tmux, Ranger, LaTeX, and Claude, cloned into ~/.settings and symlinked from there, on both Linux and macOS. I can sit at a new machine and feel at home within 5 minutes.

tg-mail (private for now) is a minimal terminal client for triaging Gmail, with Claude Code on the side; you launch it by typing gmail.

Odds and ends

Smaller things, each a single itch scratched.

Last update: 21 Aug 2026.