Skip to content

Navid's Blog

Ideas, Experiments, and Lessons Learned

Menu
Menu

Category: Lessons Learned

What Nobody Tells You About Being On-Call (From Someone Who’s Been There)

Posted on April 11, 2026 by Navid

I still remember my first on-call shift. It was a Friday night, I was three drinks in, and my phone started buzzing. Production database was down. My heart rate spiked. I had no idea what to do. That’s when I realized — nobody teaches you this stuff. You learn to code. You learn algorithms. But…

Read more

Why I Stopped Using Docker for Local Development (And What I Use Instead)

Posted on April 9, 2026 by Navid

I used to Dockerize everything. Every project, every service, every side hustle — straight into a Dockerfile. It felt right. “Works on my machine” solved, reproducible environments, production parity. What could go wrong? Turns out, a lot. At least for local development. The Docker Desktop Tax Docker Desktop is hungry. On my MacBook, it easily…

Read more

I Deleted 2000 Lines of Code and Everything Still Worked

Posted on April 1, 2026 by Navid

Last month I was debugging a feature that should have taken two hours. It took two days. The code was a mess — sprawling functions, nested conditionals, and comments that hadn’t been updated since 2019. I’d had enough. I started deleting. What I Actually Deleted The original module was around 2,400 lines. After my “refactoring…

Read more

The Side Project I Abandoned Because It Was Too Well-Built

Posted on March 24, 2026 by Navid

I spent three months building what I thought was a masterpiece. Clean architecture. Proper separation of concerns. Full test coverage. Everything I learned in my career, poured into this side project. Then I stopped working on it. Not because I got busy. Not because I lost interest. I stopped because it was too damn hard…

Read more

I Over-Engineered Everything and It Cost Me More Than I Thought

Posted on March 10, 2026 by Navid

The Moment I Realized Something Was Wrong I spent three hours designing a “scalable” solution for a feature that would maybe get 100 users. Built a custom caching layer. Created an elaborate state management system. Added metrics and monitoring everywhere. It took two weeks to ship. The feature worked fine. Nobody noticed any of the…

Read more

What Debugging Taught Me About Problem Solving

Posted on March 4, 2026 by Navid

I’ve spent more hours staring at error messages than I’d like to admit. But somewhere along the way, I realized debugging isn’t just about fixing code—it’s about thinking clearly when everything feels broken. The Frustration Is Real You know that feeling. You’ve been debugging for 3 hours. You changed something, broke something else, and now…

Read more

I Thought Message Queues Would Fix My Performance Problems – They Didn’t

Posted on February 24, 2026 by Navid

Here’s a story about the time I over-engineered a simple problem and learned a hard lesson about message queues. What Happened It was 2022. I had an API endpoint that processed user uploads and sent confirmation emails. The endpoint was slow – sometimes timing out when thousands of users uploaded at once. My first thought:…

Read more

Why I Stopped Over-Engineering My Side Projects

Posted on February 21, 2026 by Navid

How It Started As a backend developer, I used to treat every side project like a potential unicorn startup. I’d spin up a microservice architecture, integrate a message broker, add caching layers, and set up CI/CD pipelines — for a project that might never see a production user. It wasn’t just excitement; it was a…

Read more

Why I Stopped Over-Engineering My APIs (and What I Learned)

Posted on February 20, 2026 by Navid

The Early Days of Over-Engineering When I first started building backend systems, I fell in love with architecture diagrams. Hexagonal design, CQRS, event sourcing—you name it, I tried to fit it into every project I touched. It made me feel like I was building something truly scalable and elegant. But in reality, I was creating…

Read more

Why I Stopped Over-Engineering My Backend APIs

Posted on February 15, 2026February 20, 2026 by Navid

How It All Started For years, I fell into the classic trap of over-engineering my backend APIs. Every project began with ambition: perfect abstractions, layered architecture, and all the design patterns I had recently read about. It looked stunning in theory, but in practice — the complexity became a nightmare. It wasn’t that these patterns…

Read more

Posts pagination

  • 1
  • 2
  • Next

Categories

  • AI Experiments
  • Coding
  • Debugging Stories
  • Hot Takes
  • Ideas
  • Lessons Learned
  • Project Management
  • Uncategorized
  • Vibe Coding

Recent Posts

  • I Spent 3 Hours Debugging — It Was a Typo
  • I Spent 3 Hours on a Bug That Was a One-Line Fix
  • The Time I Accidentally Deleted Our Production Database
  • I Accidentally Deleted Production Data at 2 AM — Here’s What Saved Me
  • How I Found the Memory Leak That Was Killing Our Production Server