Test-Driven Development: My Jedi Training
The Quest Begins (The "Why") I still remember the first time I tried to add a feature to a legacy codebase and ended up spending an entire afternoon…
Tech news from the best sources
The Quest Begins (The "Why") I still remember the first time I tried to add a feature to a legacy codebase and ended up spending an entire afternoon…
Introduction This is my first post. It has been one year since I became an engineer with no prior experience. Now, once you become an engineer and s…
The Quest Begins (The "Why") I still remember the first time I opened a legacy codebase and felt like I’d stepped into a dark dungeon without a torc…
The Quest Begins (The "Why") I still remember the first time I tried to add a new feature to a legacy codebase. The task seemed simple: calculate a…
As React applications grow from simple prototypes into complex, mission-critical systems, they almost universally hit a wall. Components swell into…
The Quest Begins (The "Why") I still remember the first time I opened a pull request that looked like a novel written by someone who’d had too much…
The Quest Begins (The “Why”) I still remember the first day I opened the legacy repo at my last job. The README was a single line: “Good luck.” Insi…
The Quest Begins (The "Why") Honestly, I used to feel like I was stuck in a boss fight where every hit I took just made the next one harder. I was b…
Introduction When ClauseGuard processes an uploaded contract, two problems appear immediately at scale. First, it needs to pick the right document p…
The Challenge I Faced In our recent project, we started with a traditional REST API backend. The application was growing rapidly, and we realized we…
Introduction to Clean Architecture Clean architecture, a software design philosophy championed by the renowned Robert C. Martin (Uncle Bob), has rev…
The Quest Begins (The "Why") I still remember the first time I opened a 2,000‑line file called report_generator.py . It was a monster that had been…
The Quest Begins (The "Why") I still remember the first time I opened a legacy repository and saw a function called handleStuff() . Inside, there we…
For a few months, every code review I did ended the same way: with a deletion. Not because the code was bad. It compiled, it had tests, it had saile…
The most dangerous overengineering does not look careless. It looks thoughtful. It has clean interfaces, reusable components, configurable behavior,…
Naming Things Without Pain Naming things is one of the two hard problems in computer science (the other being cache invalidation and off-by-one erro…
The Quest Begins (The "Why") I still remember the first time I opened a legacy service that felt like a haunted house. Every corridor was a 200‑line…
The Quest Begins (The "Why") I still remember the first time I opened a legacy codebase and felt like I’d walked into the Death Star’s trash compact…
SINGLE RESPONSIBILITY PRINCIPLE (SRP) A class should have one, and exclusively one , reason to change. In other words, we shouldn't have a single cl…
The Quest Begins (The "Why") I still remember the first time I tried to track down a bug that only showed up after midnight. I opened my terminal, t…
I once knew a guy who derived great pride from writing clever code... All variable names were reduced to single characters because "long variable na…
The Quest Begins (The “Why”) I still remember the first time I opened a legacy payment module and saw a monster‑sized if/else chain stretching over…
It's okay if you don't know everything. It's okay if your code isn't perfect. It's okay if your first few internship applications get rejected. Ever…
Unused JavaScript is like cancer — it kills slowly. It accumulates quietly over the course of years, release by release, and by the time anyone noti…
Keeping documentation updated is difficult, especially when projects continue to grow. To make this easier, I've been building jsdoc-scribe, an open…
We've all been here. A new form shows up, you install React Hook Form, add Zod or Yup, and in ten minutes you have something that "works." The probl…
Circular dependencies are one of those bugs that feel harmless right up until they aren't. No build error. No runtime exception on import. Just a su…
The review process did everything right. Someone opened the pull request. Someone else read through it carefully. The logic was sound. The tests pas…
Building scalable software applications demands writing clean code that’s so simple that any dev can understand it. In this article, I’ll explain an…
The Quest Begins (The “Why”) Picture this: I’m deep in a codebase that looks like the junkyard planet from Star Wars —tangled wires, rusted droids,…