Free time
In my free time, I like building prototypes, honing my craft, and solving programming katas.
Tools and Bash scripts scratch the same itch.
I run Arch Linux by choice: piecing a system together component by component teaches me far more about how an operating system actually works.
Compile-time programming fascinates me, and I'm keeping a close eye on what Reflection in C++26/29 will make possible.
Tests, to me, are a tool for confidence rather than a box to tick: they catch regressions and keep the software behaving the way it should. I mostly reach for TDD when fixing bugs: write a test that reproduces the bug, fix the bug, then confirm the test passes and nothing else broke. For new features, the tests usually come after the code, but I still design with testability in mind, pausing to think about how a class or function will be used before I write it. Coverage is useful to developers, but it says nothing to clients, sales, or managers, so the coverage level shouldn't be a target set by any of them!
Open Source Contributions
Smarty
Made SmartyCompilerException report the right file
Previously, a SmartyCompilerException thrown during template compilation carried the correct line number but not the filename. As a result, error handlers like Whoops or Ignition would display the right line, just from the wrong file, in the backtrace.
View contributionPinePhone Phosh
Fixed non-English filename sorting
Fixed sorting of applications with non-English characters in the name.
View contributionPineTime InfiniTime
Step counter history
Added history for the step counter, so yesterday's total survives the automatic midnight reset instead of being lost.
View contributionitd (InfiniTime Daemon)
Warn on invalid config instead of failing silently
itd's TOML config loader swallowed parse errors on both initial load and file-watch reloads, so a syntax mistake left you silently running on defaults with no indication why. I deduplicated the load/watch setup into a shared helper and added warning logs on failure, so a bad config file is now visible instead of silently ignored.
View contributionVideo games
Outside of programming, video games take up a good chunk of my free time. Team Fortress 2 and Final Fantasy XIV have the highest hour counts, but these days the real "nerding out" happens in Factorio and Satisfactory with friends. Timberborn's been getting some playtime too.