Becoming a Rockstar Engineer

In the software development realm, people often debate about 10x engineers or rockstars. But what does that really mean? How can you become one? There isn’t an easy answer, but I’ll try to explain what I believe it is. Over time, the industry has realized that being a “rockstar engineer” has little to do with producing elegant code or hitting […]

Leadership Archetypes

I’ve had all kinds of bosses over the years. Some of them were visionaries. Some others were quiet geniuses. One thing I’ve learned is that if you want to survive and maybe even thrive, you need to understand what they want, what they need, and how they operate. In other words, learn to manage your managers. But before you can […]

Estimation Accuracy

Estimating software projects is basically the tech equivalent of arguing about Irish weather. Everyone has an opinion, nobody really knows anything, and the forecast changes all the time. One minute you’re looking up and see that nice blue sky, and fifteen minutes later you’re sprinting through sideways rain wondering why you ever trusted an umbrella in this country. If you […]

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. […]

Teaching Software Engineering

As a software engineering instructor, I’ve taught a diverse group of master’s students with varying technical backgrounds. Not everyone comes in with the same level of expertise. Some have industry experience, some come from completely different fields, and some are writing real code for the first time. I’ve found that catering to the needs of all students requires a different […]