Skip to content

Where the depth lives

Notes from building backend systems: what I designed, what broke, and the reasoning I wish I had written down the first time.

Topics

Four threads I keep pulling on

Not tutorials. Working notes: what I tried, what it cost, and what I would tell myself before starting.

  • AI

    Agents, LLMs, RAG and AI architecture — what I build, test and break.

    6 notes

  • System Design

    Distributed systems, databases, messaging, caching and scaling.

    9 notes

  • Code & Snippets

    Working references from Java, Spring, PostgreSQL, Kafka, Redis and Kubernetes.

    14 snippets

  • Architecture Lab

    Full write-ups from problem to trade-offs, with the diagrams to match.

    2 entries

Latest

Recent engineering notes

Newest first. Some are finished thoughts, others are still moving.

  1. System design, , 9 min read

    Idempotent consumers, without the ceremony

    What actually happens when the same message arrives twice, and the smallest set of changes that makes a consumer safe to retry.

    • Messaging
    • Kafka
    • PostgreSQL
  2. Article, , 6 min read

    Indexes I added, then removed

    Three index changes that looked obvious in review and cost more than they saved once real traffic arrived.

    • Databases
    • PostgreSQL
  3. Snippet, , 4 min read

    A Bloom filter in forty lines of Java

    The smallest useful implementation, the two parameters that matter, and how wrong the false-positive rate gets when you guess them.

    • Java
    • Data structures
  4. System design, , 8 min read

    Sharding vs partitioning

    Two words used interchangeably in meetings, and the operational difference that makes them not the same thing at all.

    • Databases
    • Distributed systems
  5. System design, , 10 min read

    Redis caching: the invalidation I got wrong first

    Cache-aside looked simple until two writers raced. What I changed, and what I would measure before adding a cache next time.

    • Caching
    • Redis
  6. System design, , 11 min read

    RabbitMQ vs Kafka

    Not a benchmark. A comparison of the questions each one makes you answer: about ordering, replay, consumers and who owns the offset.

    • Messaging
    • Kafka
    • RabbitMQ
  7. Article, , 12 min read

    Java concurrency, the parts I keep relearning

    Executors, CompletableFuture and virtual threads — written down so I stop rediscovering the same three pitfalls.

    • Java
    • Concurrency
  8. AI, , 5 min read

    Why I am learning AI agents

    Less about the hype, more about a specific kind of repetitive work I would like a program to take off my hands.

    • Agents
  9. AI, , 7 min read

    Vibe coding lessons

    A month of letting an assistant write most of the first draft: where it saved hours, and where it cost me a weekend.

    • AI-assisted development
  10. Snippet, , 2 min read

    Retry with jitter

    • Java
    • Resilience
  11. Article, , 6 min read

    A problem I struggled with

    Two weeks on a deadlock that turned out to be a lock-ordering mistake in code I had reviewed twice.

    • Concurrency
    • Debugging

Next

Have a system worth arguing about?

I am always up for a conversation about architecture, trade-offs, or a bug that refuses to die.

Start a conversation