Category: Technology

  • Feature Flags and gradual rollouts: releasing software safely at scale

    Feature Flags and gradual rollouts: releasing software safely at scale

    Shipping a large change to a production system with a big user base creates a very familiar kind of stress. The business wants to move fast, but engineers know that “big bang” deployments carry a disproportionate amount of risk. A single bad deploy can mean a major incident, a complex rollback under pressure, and a…

  • Implementing Domain-Driven Design in a Growing Company

    Implementing Domain-Driven Design in a Growing Company

    At a certain stage of growth, the codebase stops making intuitive sense. Logic that used to be simple becomes spread across multiple services. A change to the “user profile,” for example, starts affecting five different parts of the system, each with a different definition of what a “user” is. This happens when the original, shared…

  • Dealing with legacy code in modern applications

    Dealing with legacy code in modern applications

    A new feature request lands, and you realize it has to touch the old permissions module. The project planning meeting suddenly gets very quiet because everyone knows any change in that part of the legacy code means weeks of careful testing, unpredictable behavior, and a high-stakes deployment. This is the friction point where building new…

  • The limitations of using only Claude for code security review

    The limitations of using only Claude for code security review

    The first time you see an AI comment on a pull request, the feedback loop stands out. A full review appears in seconds, pointing out potential issues before a human reviewer has even opened the file. The appeal of using a tool like Claude for code security review, a critical part of security in the…

  • Monorepo vs. multiple repositories: what’s the best strategy for a growing codebase?

    Monorepo vs. multiple repositories: what’s the best strategy for a growing codebase?

    The repository structure that works for a two-person startup almost never works for a fifty-person engineering team. What starts as a simple, clean codebase eventually develops friction points as more people and services are added. The conversation about whether to use a single Monorepo or split work across multiple repositories usually starts here, when dependency…

  • How to build an engine for AI Code Review – Part 1

    How to build an engine for AI Code Review – Part 1

    Introduction This post is for you if you want to build an internal code review tool for your team and don’t know where to start. Or if you’re just curious and want to understand how a tool like this works behind the scenes. I’m going to open up how Kody, our open source code review…

  • Code Quality JavaScript: A Developer’s Guide

    Code Quality JavaScript: A Developer’s Guide

    Who hasn’t been there? You open a file to fix a simple bug and run into a block of tangled JavaScript, with no comments and full of improvised solutions. Just understanding what a single function does takes far more time than it should. Improving your team’s JavaScript code quality is not about chasing some abstract…

  • Understanding Types of AI Agents

    Understanding Types of AI Agents

    Let’s be honest, the term “AI Agent” is everywhere right now. It feels like one of those buzzwords that’s either going to change everything or fizzle out in six months. My bet is on the former. Understanding the different types of AI agents isn’t just academic—it’s about grasping the fundamental shift in how we’re about…

  • What is SAST and why use it

    What is SAST and why use it

    If you’ve spent any time in software development, you’ve probably lived this moment: a frantic, last-minute security report lands on your desk right before a major release. Suddenly, everyone’s scrambling to patch a vulnerability that’s been lurking in the codebase for months. It’s frustrating, expensive, and completely derails your roadmap. This is where learning what…