Cracking Coding Bottlenecks

In software development, we obsess over component benchmarks and algorithmic complexity, chasing milliseconds latency and Big-O wins. But, time and after time, I’ve found that the real latency lives outside the code. It hides in organisational troubles, slow-motion decisions, and half-written requirements. That’s where velocity goes to die. I’ve rarely seen a project stall because of an algorithm; the drag […]

Why Legacy Systems Are Worth Your Time

I know. When you hear legacy, you think untested code, brittle systems, weird edge cases, and “what the hell just broke now.” Every moment feels frustrating. You don’t know what the next change will trigger. I hear you. Been there, done that. A lot of cursing happens. But here’s the thing: if you’ve ended up with legacy software, it means […]

Why Metrics Don’t Equal Quality

In 1902, Hanoi was drowning in rats. The government was getting nervous about plague. Hence, the city put a bounty per rat tail. Suddenly, the system had a scoreboard, something you could count, stack, report, and feel good about. And it worked. Hunters brought tails in, the numbers soared, and the program looked like a win. Then reality showed up. […]

Missed Opportunities

Itʼs been a while and I havenʼt posted anything new on my blog. Life, work, and priorities often got in the way, but the urge to write never really went away. Itʼs time to get back to writing. Not because I have to, but because I miss the process of thinking through words that quiet dialogue between thought and page. […]

How I Work as a Software Engineer

When I started out, I thought productivity meant speed. Ship fast, fix fast, move fast. Working in startups taught me something different. When everything around you changes constantly, the real challenge is not speed but rhythm. You need a way of working that holds steady when things get chaotic. Startups, deadlines, and late-night deployments have a way of teaching that […]