Latest — Page 2

49

Notes, systems write-ups and journal — one stream, newest first.

  1. Note5 sections

    Event-Driven Architecture: What It Solves and Hides

    The price of loose coupling through events: balancing the flexibility it buys against the risk of making your system's flow impossible to trace

  2. System7 sections

    GPU FinOps with eBPF

    Why GPU spend is invisible to cgroup and cAdvisor metrics, how eBPF attributes it to teams — and the CUDA boundary only DCGM can cover.

  3. System6 sections

    Zero Static Authority in Multi-Cluster GitOps

    Multi-cluster GitOps with no long-lived kubeconfig: SPIFFE IDs, SPIRE-issued short-lived SVIDs — the order to build it in, and what each step costs.

  4. Note5 sections

    Replaying a Dead-Letter Queue Without Making It Worse

    Naive replay re-poisons the queue or double-fires side effects. The safe shape: reset, dry-run, sandbox-first, select.

  5. System5 sections

    Distributed Tracing Across a Polyglot Queue

    Turning a message that crosses PHP, Go and Python over a frozen envelope into one OpenTelemetry trace — no new field, no new dependency.

  6. Note4 sections

    Validating the Schema at the Edge of the Queue

    A message's data is an untyped contract the queue won't check. Validate it at the edge: producer before publish, consumer as a safety net.

  7. Journal4 sections

    Architecture Decisions Rot Because Nothing Runs Them

    An architecture decision written in a wiki is a wish. The boundaries you can't enforce quietly erode until the diagram stops matching the code.

  8. Note7 sections

    Idempotency: When the Same Message Arrives Twice

    At-least-once delivery means a handler will see the same message twice. The idempotency key, where it comes from, and the dedupe that survives a crash

  9. Journal5 sections

    AI Didn't Remove the Bottleneck — It Moved It

    Cheap code production doesn't raise throughput if review and integration can't keep up. The bottleneck moves downstream — that's where the work is

  10. Journal6 sections

    Flaky Tests: Retrying Isn't a Fix

    AI made writing tests nearly free, and flaky suites exploded. Why retry and quarantine are a treadmill, and what catches flakiness deterministically

  11. Journal5 sections

    Schema Evolution Without Breaking the Contract

    You can't change a cross-service contract atomically. The rule: additive is safe, a breaking change needs a new identity — consumers upgrade first

  12. Journal4 sections

    Can You Ship Vibe-Coded Software to Production?

    Vibe coding lowers the cost of a first version, not the cost of being wrong. That bill arrives in production, not at build time.

  13. Journal5 sections

    Layered Architecture or Clean Architecture?

    Why the classic layered structure is enough for most projects while we drown in abstraction layers, and when Clean Architecture actually pays off.

  14. Journal5 sections

    The Production Cost of "Just-in-Case" Code

    Applying YAGNI in practice: the price of adding flexibility you don't need today, repaid daily in maintenance, readability, and bug surface

  15. System10 sections

    Race Conditions and Gaps in Sequential Numbering

    Generating legally sequential, gap-free numbers with parallel workers: the JIT reservation pattern that solves race conditions and gaps together

  16. Journal5 sections

    When I Move to Microservices

    The measured signals that justify moving from a monolith to a distributed architecture — and the common false reasons that say it's still too early

  17. Journal8 sections

    Gitflow or GitHub Flow? How I Choose

    Practical criteria for picking a branching strategy by product model, version count, and deploy rhythm — and how each model breaks in the wrong place.

  18. Journal8 sections

    When I Switch to Trunk-Based Development

    Why release branches break for high-frequency deploy teams and how much of trunk-based is really discipline — the thresholds I cross and the ones I don't

  19. Journal5 sections

    Why I Start Projects With a Modular Monolith

    The case for drawing clean module boundaries inside a single deployable app before jumping to microservices — and when I stop doing it.

  20. System9 sections

    Scale Breaking Points in Data-Intensive Systems

    As data load grows, where does boring architecture break? Working set, read replicas, partitioning, write load, a separate data layer — in order.

Search

Start typing. Notes, systems, journal, tools and pages.

↑↓move↵openescclose