Nine Years of Quiet Building
The blog went quiet in 2017. The keyboard didn't.
Here's what happened in the intervening nine years — a quick tour through the projects that got built, shipped, and occasionally finished.
The SNMP Ecosystem
The most sustained body of work, and the one I'm most proud of.
puresnmp is a pure Python SNMPv2 library — no C extensions, no compiled dependencies, just Python. The goal was simple: make SNMP accessible without fighting a build system first. It quietly grew from a weekend experiment into something with actual users, reaching v2.0.1 in July 2024.
Along the way it spawned two companion libraries:
- x690 — X.690 / BER encoding, extracted into its own package (v1.0.0 in 2022) so other tools could use it independently.
- puresnmp-crypto — DES and AES encryption support as an optional add-on, keeping the core dependency-free.
The biggest design lesson: carving out a focused, composable library from a monolith is worth the effort. x690 being separate means it can evolve independently. More things should work like this.
Infrastructure & Ops Tooling
A few small tools that scratched real itches.
pgflux ships PostgreSQL monitoring metrics to InfluxDB. It's one of those tools that does one thing and stays out of the way — v1.0.0 shipped in 2021 and it hasn't needed much attention since.
weathermonitor captures sensor data from Zigbee/Phoscon devices and stores it for later. Dockerised in 2023, which made it actually usable on a home server without ceremony.
Three smaller utilities that get regular use:
- gouge — a small collection of Python logging configurations, because the stdlib defaults are ugly.
- clproc — a changelog processor.
- strec — a stream coloriser for stdout/stderr output.
None of these are glamorous. They're the kind of thing you build because the alternative is doing it by hand every time.
Web & Frontend Work
schmackhaft is a self-hosted bookmark manager inspired by the old del.icio.us. Six releases from v0.5 to v1.2.3 shipped across 2022. The short answer to "why build your own bookmark manager in 2022" is: the hosted options are either dead, privacy-hostile, or both.
On the component side:
- editable-text — a web component that makes any text element inline-editable.
- copy-able — a web component for one-click clipboard copy on any element with a .value.
- vue-components — reusable VueJS components, started in 2025.
Small, focused, no framework dependencies. The kind of thing that should exist as a package but rarely does.
Hardware & IoT
In 2025 the work moved off the screen entirely.
noise-goblin is a physical button — ESP32-based, WiFi-connected — that fetches a random sound from an API and plays it. Originally on a basic ESP32-DevC, it grew an OLED memory display and eventually moved to the XIAO ESP32S3 module. The commit history from September 2025 tells the story: memory footprint battles, event loop trade-offs, buffer tuning. Hardware is humbling in ways software rarely is.
spriglet is a more ambitious project: a collaborative tabletop device ecosystem for games and activities that need shared counting or tracking. Still early — the design document landed in September 2025 — but it's the most interesting hardware direction to date.
The honest reflection on moving into hardware: everything you know about debugging becomes unreliable. You can't print() your way out of a stack overflow when there's no stack trace. It's frustrating and completely absorbing.
Developer Workflow
Two recent additions to the toolbox:
taskfiles — a collection of reusable Taskfile tasks for common project operations. Started in January 2026 as a way to stop copying the same boilerplate across repos.
timerz — a chess clock implementation, first commit February 2026. Simple scope, well-contained problem, useful result.
What's Next
A few things on the horizon:
- JS modernisation — closure-easing, galeshapley-js, and others were written for Google Closure Library circa 2012. Time to bring them to ES6 modules and npm. Issue filed.
- npm publishing — several of the web components are useful enough to publish properly.
- Profile cleanup — archiving old forks and playgrounds that have been cluttering the profile.
Nine years is a long time to go without a post. Hopefully the next one won't take as long.