📡 The Chris Frequency
Home About
  • Fake It While You Make It

    March 22, 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

    March 21, 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

    March 15, 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

    March 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

    March 8, 2026

    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

    March 2, 2026

    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

    March 1, 2026

    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...

  • Strategic Monolith + Satellites

    February 28, 2026

    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...

  • Your Database is Already a Queue

    February 26, 2026

    "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...

  • Agile's Missing Layer: The Organisational Retrospective

    February 21, 2026

    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

    February 10, 2026

    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

    January 21, 2026

    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

    July 27, 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 26, 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