2012

My employer had no issue with me moonlighting provided I was not working for a direct competitor, and I was keeping trade secrets a secret.  I had a solid handle on using C# for back-end and middleware development, and I had a few examples of using the .NET Framework for presentation in the form of mature web forms projects.  I wanted to dig into other types of projects, such as MVC which had just seen its 4.0 milestone to great fanfare.  I started contracting here and there, and before I knew it I was finding myself with more work than I knew what to do with.

Going 72 hours without sleep teaches you some things, such as what a terrible idea it is to do that.

A lot of people talk about all-nighters as something they did once or twice while in college.  I had my share of those, and when I was working full time while contracting on one or two simultaneous projects I had a few more.  This was the year I learned a lot about my own limitations, and how much your work can deteriorate when you're exhausted.  There are a lot of people selling a lot of books on the 20-hour work week and the 50-hour work week, and I think the truth is that people are a little too complex to put what works well for any given individual into a headline.  What I know about myself is that I can put out good work over long stretches for a while, but it is aptly described by the old adage burning the candle at both ends.

The tricky thing about burnout is being able to accurately identify you are burning, because doing that uses a lot of the same faculties that are on fire.  It's critical to be able to identify some of your own tells, and it's equally essential to be open to feedback from those closest to you.  There were a lot of occasions in 2012 when my wife would say things like "welcome back" after I had noticeably mentally drifted over to a work problem.   There were a lot of occasions that I found myself frustrated when I recognized I had been working on the same section of code for an hour because I kept losing my train of thought.  Those occasions were routinely followed up by throwing in the towel, finding a good night's rest, and coming back at the problem with fresh eyes to immediately undo several hours of hard-fought progress that was deemed garbage.

git blame lets you find who's at fault for bad code.  Often enough, that person is you.

Today I pay a lot more attention to when my head drifts off, and I take a break.  If I've been at it for hours already, and one break doesn't restore my focus then that usually means it's time to wrap it up for the day.  Sometimes it's frustrating to call it quits when you feel you're close to a breakthrough, but the practice has ultimately made for a lot fewer refactors.  I often stress these experiences to members of my team that have yet to find their own tells.  It's especially difficult early in your career when quite a bit of your day is moving between different problems you feel like you're stuck on for unreasonable amounts of time.  I don't have a one-size-fits-all answer for this or I would be selling my own book by now, but here are a few examples I've given to newbies.

If you're a former smoker and you find yourself craving a cigarette then it's time for a coffee break.
If you're having a cramp in your leg from tapping your foot under your desk then it's time for a coffee break.
If you've been drifting between the same block of code and the best parts of what you recently binged on Netflix then it's time for a coffee break.
If you're still stuck on it after your coffee break then perhaps it's time to call it a day or at least work on something else for a while.

The other thing that 2012 taught me is that you cannot be perpetually overworked without eventually finding blame in yourself.  If week after week there are just not enough hours to get through your workload then you need to make adjustments.  Maybe you can manage your time a bit more wisely, or you can prioritize items to another time.  Perhaps there are things that you can delegate instead of doing yourself.  It might be that you need to be asking for more resources to help with the workload.  If none of that applies then it might just be time to move on.  That is ultimately what I decided towards the end of that year.  I wasn't stimulated enough with the projects I had at my 9-to-5 and it became obviously too much to be pursuing those interests on top of a full-time job.

Only one of these 500GB drives was worth buying.