Go in Docker: container-aware GOMAXPROCS (Go 1.25) and Green Tea GC (Go 1.26)
Go 1.25 sets GOMAXPROCS from the container's CPU limit and Go 1.26 makes Green Tea the default GC. What to check in your Dockerfile and go.mod, with measurements.
6 min readPython 3.15: lazy imports, frozendict, and UTF-8 by default on Windows
Python 3.15 is out. Lazy imports cut CLI startup time, frozendict works as a dict key, and open() now reads and writes UTF-8 everywhere, Windows included.
8 min readJavaScript Temporal in practice: add months, compute ages, polyfill Safari
Temporal is Stage 4 and ships in Chrome 144, Firefox 139 and Node.js 26. Everyday code to replace Date, bridge old code, format dates, and polyfill only Safari.
7 min readGit for solo developers: small habits that save you when things break
Small commits with clear messages, trunk plus short branches, tags for releases, git bisect to find the bad commit in 7 tries out of 100, git reflog to recover lost work.
7 min readBackground jobs and queues: retries, backoff and dead-letter without duplicates
Email, image resizing and AI calls do not belong in the request. A Postgres SKIP LOCKED job queue with backoff, visibility timeouts, dead-letter and idempotent jobs.
10 min readDates and time zones: store UTC, keep the user's zone, convert at display
Times off by 7 hours, birthdays shifting a day, meetings moving at DST. Three rules fix it: timestamptz in Postgres, zoneinfo in Python, Temporal in JavaScript.
8 min readIdempotency keys: a double-clicked Pay button must not charge twice
A user clicks Pay twice, or a client retries after a dropped connection. Idempotency keys, stored results, unique constraints and jittered backoff keep it to one charge.
9 min readSQLite in production in 2026: WAL settings, Litestream backups, when to move on
Small web apps on one server can run on SQLite instead of Postgres. The pragmas that matter, why one writer at a time is fine, how backups work, and where it breaks.
8 min readNever store money in a float: why 19.99 × 100 is not 1999, and how to stay exact
Floats cannot hold 0.1 exactly, so money drifts a cent at a time. How a live trading journal keeps money exact from source to database, with Go, SQL and Python.
5 min readWorks on my machine, breaks in production: three true stories and the cure
A library only on my machine, one that crept in and silently changed results, baselines from the wrong machine. Three real bugs and the cure: one image, pins, tests.
5 min read