Publication
Exploring modern software engineering,
one deep dive at a time.
Long-form technical content on AI, distributed systems, and software architecture — series, deep dives, and standalone essays.
10 series · 125 posts · updated Oct 2026
Featured Series
Every Record Counts: Data Engineering for Backend Engineers
You can scale a payment service in your sleep, so why does the revenue dashboard disagree with itself? A three-season field guide to data engineering for backend engineers: warehouses, lakehouses and Iceberg tables, pipelines that survive re-runs, streams that respect event time, and AI that only sees numbers you can reconcile. Every record counts; we count them twice.
AI: Through an Architect's Lens
Exploring AI/ML concepts from a distributed systems architect's perspective — bridging theory with production-grade engineering.
Season 1: Kubernetes: The Container Odyssey
This is a 12-part Kubernetes tutorial series written for experienced software engineers who are new to Kubernetes. It follows the story of Alex, a senior backend engineer with a decade of experience in monoliths and VMs, who joins a fast-growing startup called NovaCraft where everything runs on Kubernetes. Each chapter solves a real problem Alex faces at NovaCraft, combining deep conceptual explanations with practical, runnable examples that you can follow on your macOS laptop. The series progresses from foundational concepts to production-ready practices, building on each previous chapter.
The Adventures of Ava the Astronaut: Learning Python One Planet at a Time.
A python series designed for absolute beginners with a storytelling narrative throughout. Each part follows Ava's space adventure while teaching a core Python concept, includes tables for clarity, code examples, and a hands-on mini-project.
Season 2: Kubernetes: The Container Odyssey
This is the second season of "The Container Odyssey," a 10-part Kubernetes tutorial series written for experienced software engineers who have mastered core Kubernetes concepts and are now ready to tackle the broader ecosystem. It continues the story of Alex, who has been promoted to Platform Lead at NovaCraft and now faces the challenges of running Kubernetes at scale for 10+ engineering teams.
Redis Deep Dive: From Cache to AI Memory
This is an extensive, multi-part Redis tutorial series written for senior software engineers. It follows the story of Maya, a Staff Engineer at GlobalMart, who leads the architectural transformation of a struggling monolith into a distributed, AI-powered platform. Each chapter combines narrative storytelling with deep conceptual explanations, internal architecture breakdowns, Mermaid diagrams, and comprehensive Java Spring Boot examples. The series progresses from foundational memory management to advanced vector search and RAG implementations.
Kotlin for Java Survivors: Life After Semicolons
A sixteen-part recovery program for Java developers moving to Kotlin: fewer NullPointerExceptions, zero semicolons, coroutines instead of thread pools, and two Spring Boot 4.1 services to prove it, one with an AI assistant that knows what it doesn't know. Just enough syntactic sugar to question why you suffered so long.
Java Evolution: From 8 to 25
A comprehensive, release-by-release tour of every major feature added to Java from version 8 through version 25. Each part covers one release — explaining the concepts behind each feature, showing practical before-and-after code examples, and placing the change in the context of the language's evolution. Whether you are upgrading a legacy codebase or simply want to stay current with modern Java, this series gives you the depth and clarity to understand not just what changed, but why.
Python for Java Developers: From Streams to Tensors
A 10-part, example-driven Python series for experienced Java, C# and other mainstream developers heading into data science, machine learning and AI. It follows Arjun, a veteran Java architect at a payments company, as he is pulled into an ML fraud-detection initiative and has to become productive in Python fast. Each part maps what you already know to the Pythonic way, explains the critical mental-model shifts in depth, and builds toward NumPy, pandas, scikit-learn, PyTorch and LLM-era tooling — with runnable code, tips, tricks and the gotchas that bite Java people specifically.
The Log Never Lies: Change Data Capture with Debezium
Your service saved the row, then the pod died before the Kafka send. A three-part field guide to change data capture for Java developers: read the database's own log instead of trusting your code to remember, with PostgreSQL, Debezium, Kafka and Spring Boot, and the replication-slot habits that keep the disk from filling up at 3 a.m.
Latest
Part 0: "The Field Guide" — How to Read This Series
Larkspur's quarterly review ends with three headline numbers and two answers for each. Rohan, a staff backend engineer, is asked to "just fix the queries". This field guide maps data engineering in 2026, introduces the retailer and its incident, starts the companion lab, reproduces all three disagreements with SQL, and states the design question the series teaches you to answer.
Part 1: "Three Houses for Data" — Warehouse, Lake, Lakehouse
Rohan wants a bigger read replica. Ingrid runs an experiment instead: six million sales lines in PostgreSQL, a folder of Parquet files and an Iceberg table, the same questions asked of each and one row corrected in each. OLTP vs OLAP, row vs column storage, and how warehouses, lakes and lakehouses differ.
Part 2: "Think in Pipelines" — The Data Engineer's Mental Model
Rohan's first daily sales job doubles a day's revenue on a retry and loses late till uploads. Rebuilding it teaches the data engineer's mental model: pipelines as functions, idempotency, partition-scoped overwrites, raw/silver/gold layers, and the five promises behind "every record counts".
Part 3: "Bytes on Disk" — File Formats, Parquet and Object Storage
Rohan writes the same six million sales lines as CSV, JSON, Avro and Parquet and asks object storage for them back. Row vs columnar formats, what is inside a Parquet file, the sort order that lets a filter skip 49 of 50 row groups, Apache Arrow, and what object storage gives you instead of a filesystem.
Part 4: "Grain Before Glory" — Dimensional Modeling
A discount report that counted each basket once per line, stock summed across days, refunds in the wrong quarter. Rohan builds Larkspur's first star schema in DuckDB: grain, facts and dimensions, fact table types, slowly changing dimensions, as-of joins and early-arriving facts.
Part 5: "Other Shapes" — Data Vault, Wide Tables and Modeling Trade-offs
Whose midnight cuts the quarter, and which rate converts the euros? Rohan models Larkspur's refunds as a Data Vault and as one wide table, then fixes the primitives under every model: money, time zones, FX as of the event and bitemporal history. Two revenue defects close to the penny and stock availability drops to 88.5%.