All Articles

Refactoring C# Unit Tests

Unit tests are often treated like second class citizens and not given the same level of polish and refactoring as our production code. As a result, they can wind up brittle, unclear, and hard to maintain. In this article, I’m going to show you a few tricks to keep your […]

From Dev to Manager

Want it or dread it, sometimes as developers we move from individual contributor to a team lead or management type of role. This is a drastic shift in skills needed and one frequently done without official training. How do we improve our chances of success when others are on the […]

Snapshot Testing in JavaScript & .NET

Earlier this year I discovered the fantastic Jest JavaScript unit testing library made by Facebook and commonly associated with React. Jest is built on top of Jasmine, but adds some very nice features, including something called Snapshot testing. While unit tests are typically intended to be precision surgical tools focused […]

Pay down Tech Debt Plank by Plank

A year ago I learned of the thought experiment “The Ship of Theseus” and, particularly, how it might apply to software development. In a nutshell, the Ship of Theseus refers to an old wooden sailing ship sailed by Theseus. Over the course of its voyage, every piece of the ship […]

Code Review and Your Team

Let’s say you’re on a small software development team — either within a department or in a smaller organization. You may or may not be doing code reviews, and you may or may not think they’re important (hint: they are). As a software engineer and software engineering manager, I think that code […]