A personal notebook about running small services well: Node.js, Linux, and tools that do one job and do it reliably. New posts whenever I break something interesting.

What I learned running Node 24 in production for a month

Oct 18, 2026 · nodeops

The built-in test runner and the stable --watch mode removed two dev dependencies from my stack overnight. The one change that actually mattered for uptime, though, was boring: handling shutdown properly instead of letting the platform kill the process mid-request.

for (const sig of ['SIGTERM', 'SIGINT']) {
  process.on(sig, async () => {
    await server.close();
    process.exit(0);
  });
}

Deploys stopped dropping in-flight requests the same day. Sometimes the fix really is ten lines.

SQLite is enough: choosing boring storage on purpose

Oct 2, 2026 · sqlitedesign

Three of my side projects outgrew their JSON files this year, and all three landed on SQLite instead of a database server. One file, no daemon, backups are a copy operation. The trick is knowing the ceiling: a few hundred writes a second and one host. Below that ceiling, boring wins every time.

Taming systemd: five unit settings I always set

Sep 19, 2026 · linuxsystemd

Restart=on-failure, RestartSec=3, a sane TimeoutStopSec, NoNewPrivileges=true, and journal tags I can actually grep. None of this is clever, and that is the point: the units I configured this way are the ones I never think about anymore.

A tiny backup script that has never failed me

Sep 5, 2026 · bashbackups

It is fourteen lines of bash, it keeps seven daily snapshots, and it has restored real work twice. The secret is not the script — it is the monthly reminder to actually test a restore.

#!/bin/sh
set -eu
tar -czf "/backups/app-$(date +%F).tgz" -C /srv app
ls -t /backups/app-*.tgz | tail -n +8 | xargs -r rm

About

I am a software developer who likes small systems: one server, one process, one file to back up. This blog is where I keep the notes I would otherwise lose. No newsletter, no comments — just posts.

Archive

2026 — Node 24 in production · SQLite is enough · Taming systemd · A tiny backup script
2025 — Moving a blog to static HTML · Cron jobs that page me · Home lab notes