All blog posts

Building a fully static guestbook using Jekyll and Netlify (2021-08-08)
No JavaScript. Just good old HTTP and HTML working together.
Moving away from Google services, 8 years in (2021-07-28)
Self-hosted LAN-only services FTW!
Using a Canon DSLR as a webcam with Debian/Ubuntu (2021-01-04)
No EOS Webcam Utility on Linux? No problem!
Optimizing server-side storefront rendering at Shopify (2020-12-20)
Simplify, batch, and cache.
Monitoring a grain dryer via the Internet (2020-11-08)
Agriculture meets static IPs and cellular APNs.
Turning my smartphone into a boring tool (2020-11-03)
Tools do their job then get out of the way.
Automatically labeling GitHub notification emails with Gmail filters (2020-10-15)
Cut through the noise and identify what's important.
How Shopify reduced storefront response times with a rewrite (2020-09-03)
Making server response times 4x faster than before.
Two Ruby apps, same code, different output (2020-08-13)
Debugging a weird Ruby string sorting issue with GDB.
Accelerating software onboarding with code walkthroughs (2020-07-28)
Welcoming newcomers with high-quality, high-context code comments.
Setting up your own digital garden with Jekyll (2020-05-20)
Carve out your own space where you'll seed, cross-pollinate, and grow ideas.
Why I still use a ThinkPad X220 in 2021 (2019-11-24)
Extensibility, compatibility, and reliability.
On sleepiness, activation energy, and flow (2019-09-30)
Parallels between chemistry and the human mind.
I didn't know any better (2019-02-28)
A security horror story starring 11-year-old me... and Flash.
Inspecting a “USB Drop” Attack Using olevba.py (2017-04-07)
Or, "why you shouldn't pick up random USB keys".
"Who is this KodekPL pushing commits to my GitHub repo?" (2015-12-22)
Seriously, who's that guy, and how is he committing to my repository?

That's it: you reached the end of this list. :)