Dan Donahue bio photo

Dan Donahue

Musician. Traveler. Programmer.

Twitter LinkedIn Github Stackoverflow Last.fm Havens (Bandcamp) Wilderhost (Bandcamp)

All Posts


Testing A "Unit"

In software development these days, unit testing is a pretty well established "best practice". As such, there has grown many best/common practices around uni...

Releasing Software Is Not Religion

Getting software from your development machine to production so that your customers can start using it is not a religious experience.


The Ease Of Familiarity

I find the quirks of human nature very interesting. I was recently reminded of one - the ease of familiarity. This is the case where you fall back into old h...

Let's Be Honest In Interviews

When two parties sit down for a job interview, they owe it to each other to be honest. That seems like a fairly obvious statement. But I'm not just talking a...


More Insights From A Job Hopper

The post I wrote on job hopping ended up being the most viewed post on my blog, thanks in part to a colleague sharing it on Hacker News. There was a lot of f...

My Insights As A Job Hopper

I've had, and quit, a lot of jobs. The reasons for doing so vary from moving out of state to seeing layoffs (I've never been laid off myself, but I've surviv...

There Are No Best Practices

I've always found the idea of the "best practice" concerning. I think it has to do with my proclivity for being the devil's advocate. Almost any time I hear ...

Please Don't Design For Testability

I'm a fan of unit testing. I practice test-driven development. But over the years, I've heard and seen statements made by unit testing/TDD practioners along ...


F# In Your C#

It's good to know the paradigms of other programming styles even when it's just to apply them to another language.

It's Complex Is An Excuse, Not An Answer

These are things you often hear about legacy code that has built up large amounts of technical debt. They're a warning when they should be looked at as an op...

Intro To Extension Methods

Extension methods are features of C# which allow you to add methods to classes without modifying the original type.


Small Business Capabilities Example

In April of this year, I spent a week in New York attending Udi Dahan's Advanced Distributed Systems Design course. It was a great course that taught me a lo...

Time CANNOT Be Trusted

There's been a funny shift since since the invent of the computer. With the increased processing speed, us developers have convinced business folks that they...

Get To Know The Command Handler Pattern

One of the patterns I've fallen in love with since starting to use a service bus is the Command Handler pattern. It exists in most distributed messaging bus ...

GUIDs As Identifiers

In most applications, developers use integers as their primary keys. And why not? They're dead simple. Most databases have a mechanism with which they can au...