📡 The Chris Frequency
Home About
  • The Three Rewrites Every Startup Does

    March 19, 2026

    Most engineering teams rewrite their systems three times. The first is largely unavoidable. The second is potentially avoidable. The third is self-inflicted, and it is the one that kills velocity. The pattern is consistent enough that you can use it as a...

  • Fake It While You Make It

    March 2, 2026

    Most teams treat testing as something you do after building. You write the code, wire up the infrastructure, and then figure out how to test it. The result is a test suite that requires a running database, a message broker, a cache, and maybe a stable...

  • Audit Logs Done Right

    February 13, 2026

    Most audit logs are full of lies. Not malicious ones. They are lies of omission: the row that got updated in place and took the history with it; the audit write that was added to three of five code paths and nobody noticed the gap; the log that records the...

  • Idempotency Is Not Optional

    January 27, 2026

    A payment processed twice is not a bug report. It is a regulatory incident, a customer complaint, and depending on the jurisdiction, a compliance violation. Most teams treat idempotency as a hardening pass they will get to later. In practice, "later" means...

  • Simplicity Scales

    January 10, 2026

    "Keep it simple" has always sounded like good advice and felt like a platitude. Easy to say in a conference talk. Hard to defend when the CTO at the last company used Kafka, when the job postings all list Kafka, Kubernetes, Terraform, 3 obscure databases and...

  • Events, Queues and Signals

    December 18, 2025

    The default "event-driven architecture" looks like this: lots of small services connected by queues, with event objects flowing between them. Events, signals, and queues get lumped together as one concept. "An event is a data structure that sits on a queue...

  • On Becoming a Software Chef

    December 7, 2025

    At the end of a long day immersed in the world of software and systems, (occasionally in the middle if working from home), I sometimes relax by cooking myself a meal. I am but a lowly home cook, but I feel that I've learned something over the years. When...

  • Your System is a State Machine

    November 20, 2025

    The most common first question in a new system design is "what database should I use"? The second is usually "should this be a microservice"? Both are premature. Before you pick the infrastructure, model the domain. Your system is a state machine whether you...

  • Your Database is Already a Queue

    November 3, 2025

    "Don't use your database as a queue" is one of those pieces of engineering orthodoxy that gets repeated so often it starts to feel like a law. It isn't. It's a guideline with a scale constraint attached, and for most workloads that constraint is never...

  • Strategic Monolith + Satellites

    October 17, 2025

    Most architecture discussions for new products begin with "should this be a microservice"? It is almost always the wrong first question. The right first question is: what needs to own state, and what just needs to do work? This article describes a topology...

  • Agile's Missing Layer: The Organisational Retrospective

    September 30, 2025

    Agile has a reputation problem. Depending on who you ask, it's either the salvation of software delivery or the source of its dysfunction. Multiple meetings that waste everyone's time. Sprints that deliver activity but not progress. Velocity charts that...

  • Defer the Database, Not the Design

    September 13, 2025

    The modern scaling landscape is overwhelming. Queues, event buses, microservices, serverless, Kubernetes. The list of "essential" technologies grows longer every year. It's very easy to get lost in the choices, and even easier to feel pressure to adopt...

  • Your AI Won't Say No ... And Why That's a Problem

    August 26, 2025

    Ask an AI to review your architecture proposal. It will find things to praise. Ask if your approach is sound. It will tell you "of course it is". Ask what could go wrong. It will list some things, helpfully, then conclude that your approach is solid overall....

  • SQLite: A Secret Weapon

    August 9, 2025

    SQLite gets dismissed as a toy database. It ships with Python, it is the default for mobile apps, and it turns up in tutorials about learning SQL. None of that is wrong, but it obscures what SQLite actually is: a highly capable, in-process relational engine...

  • How to Build a Data Access Layer

    July 23, 2025

    As a technical system grows in scale and complexity, teams require more checks, balances, and standards to keep development manageable and maintain delivery velocity. While practices like feature flags and contract testing are common at this stage, one...

© 2026 Chris Leow | RSS Feed