Software Development

Post Image

The Definition of a Great Software Engineer Is Changing

Implementation used to be the clearest evidence of engineering ability. AI is exposing the judgment that working code had made difficult to see.AI is reducing the cost of turning an idea into working code across software applications. That shifts the constraint in engineering. As implementation accelerates, problem framing, product judgment, failure modelling and validation differentiates great engineers.This shift in constraint was very visible when I built NeoAmp, a browser extension that brings the look of Winamp and old Windows Media...

Read
Post Image

Story Points Stopped Working the Day AI Started Writing Code

Why estimates now mispredict in both directions, and a framework that measures what actually constrains delivery A few sprints ago I sat in a planning session where the team spent twenty minutes debating whether a story was a 5 or an 8. It was a genuinely tricky piece of matching logic, the kind of story that would have earned its 8 points in any planning poker session over the last two decades. After the meeting, the developer pointed Claude at...

Read

Why Do Unit Tests Fail, Even When They Pass?

Explores common pitfalls in unit testing like clean code rules gone wrong, overloaded test cases, and misleading fixturesEmphasizes the need for a different mindset to write effective unit tests that serve as reliable safeguardsHighlights how blindly applying clean code principles can sometimes backfire in testingAdvocates for one assertion per test for clarity instead of overkillExamines the double-edged role of test fixtures in maintaining reliabilityDiscusses the impact of naming conventions on readability and trust in testsProvides insights on identifying, rewriting, or...

Read
Post Image

Say Goodbye to if-else: Transform Your Code with the Strategy Pattern

Imagine you’re building a product that helps people post their content across multiple social media platforms, like Facebook, X (formerly Twitter), LinkedIn, and others. At first, you might think, “I’ll just write some code that checks which platform the user wants to post to and then handle each one separately using if-else or switch-case statements.”:If it’s Facebook, do thisIf it’s LinkedIn, do thatIf it’s X, do something elseThis might work in the beginning. But as your business grows, new social...

Read
Post Image

Pair Programming: Challenges and Rewards

When I first heard about pair programming, I’ll admit, I was skeptical. The idea of two developers sharing a workstation—one coding, while the other observing and offering feedback—seemed like something that slows down the process. I couldn't understand why clients would pay extra for it. However, after seeing many developers championing it, I decided to give it a try. In this blog, I’ll share my personal experience with pair programming, the benefits and challenges I faced, and why I believe...

Read
Post Image

Top 5 Benefits of Pair Programming for Developers

Pair programming is a collaborative practice that extends far beyond just writing code. It’s a method that fosters incessant communication, mutual learning, and joint problem-solving. I have been actively engaged in pair programming and find it to be a very effective approach to collaborative coding. Let’s discuss a few benefits of pair programming in this blog, which have helped me in my coding journey.First and foremost, communication is at the heart of pair programming. Both participants engage in verbalizing their...

Read

Generative AI and its impact on Software Development

Read