[01]
๐ค
Robotics & Motion
steppers, wheels and things I've made move on command
3 repos
>
Robotics & Motion
steppers, wheels and things I've made move on command

My XY pen-plotter, driven by an Arduino. I wrote every bit of the SVG-to-motion logic myself instead of reusing an existing plotting library — I even admit in the build log that I did it the hard way on purpose.
Python 📅 2019 → 2026
A stepper-motor camera jig I built for shooting smooth, motorized panoramic timelapses — comes with the build manual and wiring diagrams I made for it.
C++ 📅 2021A browser-based simulator I made for a mecanum-wheel robot chassis, so I could work out omnidirectional drive kinematics before wiring up the real motors.
HTML/JS 📅 2021 → 2026
[02]
โจ๏ธ
Desk Gadgets & Keyboards
small embedded builds I keep on (or near) my desk
7 repos
>
Desk Gadgets & Keyboards
small embedded builds I keep on (or near) my desk

My fully scratch-built auxiliary mechanical keyboard — custom PCB, 3D-printed enclosure, hand-drawn keycap art, and a home-made Home/End rocker switch I designed myself. Circuit and PCB files are on OSHWLab.
C++ 📅 2021 → 2026A more compact companion to my auxiliary keyboard, with its own PCB, a Python-based key manager I wrote, and custom keycap bitmap art.
Python 📅 2022A clock I built that tells time the nerdy way — LEDs blinking out hours, minutes and seconds in binary, driven from an AVR/Arduino board.
C++ 📅 2026A custom clock I built with its own small server component and a physical enclosure — made, going by the name, for someone special.
Python 📅 2020 → 2022
A tool I made for moving files onto an SD card by talking to an Arduino over serial, so the card never has to leave the device it's plugged into.
C++ / Python 📅 2021 → 2022
[03]
๐งฉ
Puzzles & Solvers
code I wrote purely because a puzzle looked solvable
4 repos
>
Puzzles & Solvers
code I wrote purely because a puzzle looked solvable
My brute-force solver for the Katamino pentomino board game, with a static browser viewer I built for stepping back through every solution it finds.
Python / HTML 📅 2025
My from-scratch Sudoku solver — I made a point of noting in the README that no AI was used to write it.
Python 📅 2026
My solver for the binary puzzle — a logic grid filled with 0s and 1s under adjacency and uniqueness rules — built in the same brute-force spirit as my Sudoku solver.
Python 📅 2026A single-file, mobile-friendly page I made for calculating dice-roll probabilities during a game of Settlers of Catan.
HTML/JS 📅 2017
[04]
๐ฑ
iOS & watchOS
the side of my stack that isn't a terminal
1 repo
>
iOS & watchOS
the side of my stack that isn't a terminal
[05]
๐
Debugging & Profiling Tools
for when print() isn't cutting it anymore
4 repos
>
Debugging & Profiling Tools
for when print() isn't cutting it anymore
A tool I made that prints every SQL query my Django code fires off, next to the exact line of code that triggered it — my fast way to spot N+1 queries without reaching for a full profiler.
Python 📅 2019The stricter sibling I built to the query debugger: used as a context manager or decorator, it raises an exception the moment a guarded block tries to sneak in an extra ORM query.
Python 📅 2022A decorator I wrote around Python's line_profiler, adding options to aggregate timings across repeated calls, group them by a custom key, follow into other functions, or write results straight to a file.
[06]
๐
Python Utilities & Libraries
small, sharp tools I built for everyday work
7 repos
>
Python Utilities & Libraries
small, sharp tools I built for everyday work

An interactive CLI I made that lists my running Docker containers and lets me pick which ones to kill with a spacebar and enter, instead of copy-pasting container IDs.
Python 📅 2020
dkill's companion tool, also mine: an interactive picker for choosing which docker-compose services to bring up, instead of typing them all out by hand.
A small abstraction I made that lets me read and write environment variables like plain Python attributes, transparently JSON-encoding lists and dicts so complex values round-trip cleanly.
Python 📅 2018A parser and query toolkit I built for fixed-width-field files — the kind where every record packs its data into fixed column positions — with a Django-ORM-style filter/exclude/order_by interface I designed. Born out of me wrangling huge stock market data dumps.
Python 📅 2017
