The latest
Thoughts on software engineering, technology, and building better systems.
The date input that made me question my life choices
Now, before we get into anything, there's some important context I need to provide. What is a date input field? Well, if we do a quick interwebs search, you'll probably get something like: "A date input is an HTML form element that allows users to e...
Choose your hard: The maintainability load curve
Maintainability isn't about what's easier to write or do today. It's about our cognitive load and what is easier to live with tomorrow. Maintainability isn't something we should take for granted, yet it goes around achieving the least amount of real...
What my toddler taught me about fault tolerance
Reliability isn't perfection—it's predictability, even in chaos. - Carl Eubanks, The 22nd Time He Told Me He Wanted Veggie Straws On Tuesday (2025). Now, before I get into anything, there's some impo
The bathroom scale and the myth of scalability: Why most systems fail at rush hour—not at rest
Most systems don't break because of a missing feature. They break because they weren't designed to survive growth, chaos, or time—mainly chaos. That's the first thing Designing Data-Intensive Applicat
Migrating from Kong to AWS API Gateway
As our platform evolved, so did our needs around scalability, security, and operational efficiency. Kong served as our go-to API gateway for years—flexible, reliable, and cost-effective—but as we lean
The Gremlin at Standup
Slow erosion. Subtle survival. Silent defiance. The first time it happened, nobody said anything—not really. Nobody ever does, not at first. It passed like a breeze through a tired room. A flicker. A
Mastering clarity and ambiguity: A software engineer's guide to effective communication
Effective software engineering communication doesn't merely form. It inspires. Communication among software engineers isn't just about exchanging information. It isn't just about two or more people talking to each other either. It's about empowering ...
Why do we call it a Factory? A Thoughtpiece on the Factory Method Design Pattern
Before I begin, let's ground ourselves: a lot of things we encounter, especially in software engineering, are arbitrary. They exist because someone, somewhere, at some point, was either frustrated or passionate enough to tell other people about it. M...
Exploring micro-frontends: why, when & how (and why I'm doing it anyway)
"A path is whatever you make of it—as long as it gets you where you want to go." — Carl Eubanks, 2025 Step back and see the big picture I always start with why. Call it a ritual: three deep breaths, zoom the camera out, and ask whether the work in ...
Building a notification orchestrator: a decision log
This isn't a copy‑paste tutorial. It's a behind‑the‑scenes look at why I chose a specific shape—hexagonal micro‑orchestrator on SNS → SQS—for a cross‑channel notification pipeline, and the trade‑offs I wrestled with along the way. Problem Statement ...
The pigeon coop & the back room: A wiseguy's guide to not screwing up the message
I like to write stories to better explain problems I have or concepts I want to share. I still want the message to be clear, concise, and easy to digest, so I'll give you a glossary to refer back to when reading the story if it it doesn't click the f...
Design bit.ly
For each portion, I'll regurgitate the feedback I received. Each system design interview is different, so it's interesting to see how hellointerview has tailored their AI feedback system. Requirements Functional requirements Users should be able to ...
Caching: The bikini bottom marathon
What is caching? Caching is the practice of storing something in a location from which it can be quickly retrieved, thereby speeding up future accesses. It's not always permanent--it's more of a short-term memory for whatever you might need really so...