cd ~
// cat ~/blog/*.md

All Posts

Thoughts on programming, indie hacking, and everything in between.

Systemd in Production: Service Management Beyond the Basics

How I use systemd for production services — writing good unit files, managing services day-to-day, logging with journald, and hardening for security. Practical patterns from real deployments.

systemdlinuxdevopsinfrastructure
12 min read

Temporal SDK Metrics: Prometheus Exporter vs OTLP for Multi-Worker Deployments

How to choose between Prometheus exporter and OTLP for Temporal SDK metrics, especially when running multiple worker instances on the same host. A practical guide with real configuration.

temporalopentelemetryprometheusmetrics
10 min read
Featured

A PostgreSQL 17 Migration Postmortem: WAL Recycling, Silent Timeouts, and the False Economy of Conservative Configs

What I learned migrating tens of GB across two PostgreSQL nodes — WAL starvation breaking async replication, timeouts murdering index builds mid-restore, and how conservative configs ironically made everything worse. With a config cheat sheet and a pre-migration checklist you should not skip.

postgresqlmigrationdevopsperformance
16 min read

sed for Emergency Debugging: When vim and nano Are Not an Option

It was 11 PM. I was debugging self-hosted PostgreSQL HA setup and vim wasn't available in the container. This is the story of how sed became my go-to tool for quick fixes in production environments.

dockersedclidebugging
6 min read

Automating Docker PostgreSQL Backups with Cron: Complete Guide (Part 3 of 3)

Part 3: Eliminate manual backups with automated cron jobs. Learn scheduling strategies, environment setup, monitoring, alerting, troubleshooting, and complete working examples for production-grade PostgreSQL backup automation.

dockerpostgresqlcronautomation
11 min read

Restoring Docker PostgreSQL Safely: Zero Data-Loss Procedures (Part 2 of 3)

Part 2: Master PostgreSQL database restoration in Docker with safety-first procedures. Learn pre-restore checks, pg_restore techniques, automatic rollback, and emergency recovery to ensure zero data loss.

dockerpostgresqlrestorerecovery
14 min read

Docker PostgreSQL Backups: Production-Ready Strategy (Part 1 of 3)

Part 1: A comprehensive guide to backing up PostgreSQL databases in Docker containers. Covers container identification, database discovery, compression, checksums, manifests, and retention policies with production-ready scripts.

dockerpostgresqlbackupdevops
15 min read

My Backup Strategy: Tar, Rsync, and Cron

How I automated daily, weekly, and monthly backups of my Code and Work directories to my Android phone via Termux.

backuprsynctarcron
4 min read

Server-Sent Events: The Simple Alternative to WebSockets

Learn when to use SSE instead of WebSockets for one-way real-time streaming, with Node.js code examples

sserealtimenodejswebsocket
3 min read

Secure User and Sudo Management on Production Ubuntu Servers

A step-by-step guide to creating new users, granting sudo privileges securely, and configuring passwordless sudo on a production Ubuntu server.

ubuntulinuxsecurityuser management
3 min read

Production Linux Deployment Guide: Where to Put Your Files

A practical guide to file placement on production Linux servers following the Filesystem Hierarchy Standard (FHS). Learn where to place applications, configs, logs, and data for consistent and maintainable deployments.

linuxdevopsdeploymentfhs
5 min read

Docker Installation on Ubuntu Server: A Complete Guide

Step-by-step guide to manually installing Docker Engine on Ubuntu servers with Docker Compose, GPG key management, and user group configuration

dockerubuntudevopstutorial
4 min read

Setting Up SMTP Email with Nodemailer in Next.js

Learn how to configure a contact form with Gmail's free SMTP service using Nodemailer in your Next.js application

nextjsnodemailersmtpemail
4 min read

SSH into Server with Tailscale

Learn how to securely SSH into your servers during CI/CD workflows using Tailscale

sshtailscaleci-cdgithub-actions
1 min read