I admit, I'm a bit of a workaholic.
I find something I enjoy and, like a dog with a bone, I don't let go. I hack on code late into the night. I wake up early (ok, I don't really go to sleep) and start hacking again before breakfast. I invest extra effort in making sure the project I'm working on is both stunning and built to a high standard of quality.
And I get paid to do it.
Unfortunately, the way I work isn't necessarily healthy. I frequently spend more hours in a day "working" than I actually log as work hours.[ref]Sometimes, when I'm stuck on a particularly difficult problem I take a walk to the park to help internalize and digest the issue. This is refreshing for me as it gives me a change of scenery and some fresh air. Usually, I return to my desk with some sort of a solution or at least an idea of the right track; it's just always felt odd to bill for "time walking to the park to clear my head."
I know. I'm doing it wrong.[/ref] As a result, while I often bill far more than my 40 hours for a week, I'm usually putting in even more time than that. It's great because I get things done. It's awful because I do so at considerable personal expense.
The Cost of Failure
Once, I was told "if you do what you love, you'll never work a day in your life." I'm very proud that I've found a job where I get to do what I love every day. Unfortunately, tying my income to one of the things I love doing the most has some negative consequences.
When coding was a hobby, getting stuck on a problem was frustrating. I'd stay up all night chewing on a problem and, sometimes, realize that I was just completely incapable of solving it. I'd take a few days off the hobby project, shelve some code, and move on to something else.
If I failed at a hobby, I was able to shrug things off and move on.
When my hobby became my job, though, everything changed. I still work on similar problems. I still get stuck on issues that should be solvable. I still work late into the night trying to figure out issues.[ref]Working on a server configuration issue this past week led directly to my coding until 2am because I couldn't sleep until I fixed a bug. A good thing, this is not.[/ref] Sometimes, though thankfully it's rare, I come across a problem I'm completely incapable of solving.
But moving on - failing at the task - means I've spent hours of client/company billable work on a project/problem/product that won't ship or will eventually ship but at a much higher cost than expected. I can't just lick my wounds and move on.
If I fail in my job, I've failed my team.
The idea of letting someone down is my own personal hell. It's the one thing that can, in an instant, take the best moment of a day and turn it into the worst of my life. Unfortunately, the risk of experiencing this moment is the one I shoulder by turning my hobby into my job.
Find Your Happy
Coding makes me happy. Solving problems makes me happy. Building things that impress and inspire makes me happy. But I can't limit my happiness to that one thing. The source of my happiness in life can't just be the work I do in my job.
I admit I spend far too many hours at a computer writing code; I do this because the code I write makes me happy. But it can't be the only thing, otherwise the code that fails, falls flat, or simply doesn't pan out to a shippable project continues to eat at my life and suck more joy out of my existence.
I'm working daily to rediscover the other parts of my life that bring me happiness and working to define my mood, self worth, and identity by them rather than just my job. This includes family, friends, the outdoors, other hobbies, and the like. They're just as important to my long-term well-being as my job - perhaps even more so.
How do you define your happiness? How diverse is that definition? Who controls it?