Sep 27 2012

I’m often asked the question, “How do you find the time?” Mostly, it’s around open source, sometimes it’s about books, and occasionally, on other things. I’ve generally deflected the question with something like “I don’t know, man, I just do it.” But that answer isn’t very helpful. And I’ve been wondering if I can do even better. So I’ve done some reflection this week, and here’s how I find the time:


player’s handbook

I have this personality type that is an asset to any competitive gamer: Dungeons and Dragons nerds call it “min/maxing”. The basic idea is this: you try to minimize the things that are bad, and maximize those that are good. This sounds super obvious, but there are many times when maximizing ‘winning’ isn’t what you’re going for. One great example is ‘pretending to be a fantasy adventurer.’ If you’re not shooting for strictly winning, then min/maxing doesn’t make any sense. But if you’re looking to compete, it’s incredibly important.

Speaking of competition, you should really read this book:

playing to win

“Playing to Win” is an excellent book by one of the best Street Fighter players in the world. It is a must-read for anyone who wishes to compete in any way.

In it, he develops the theory of “Players” and “Scrubs”:

A scrub is a player who is handicapped by self-imposed rules that the game knows nothing about.

A great tell of someone being a scrub is when they mention ‘fairness.’ A game is an impartial, closed system. There are rules to the system that constrains the players. Simply, the more rules, the harder it is for you to achieve your win condition. If you invent extra rules, you handicap yourself. Games are not ‘fair.’ Players don’t handicap themselves in this way:

A player should use any tournament legal move available to him that maximizes his chances of winning the game.

If a move is legal, then it’s fair game. Good games are written in such a way that bad moves don’t exist. Use all the tools at your disposal, and use them ruthlessly.

Here’s the thing about the scrub mindset: it’s easy to do accidentally. Extra rules can be self-imposed, but they can also happen due to a poor analysis of what the rules actually are. For example, the biggest time I scrubbed out in my entire life was a choice that I made almost a decade ago: going to college. Every adult in my life told me that going to college was a good idea. They all said it was needed to get a job as a programmer. I didn’t bother to challenge them, and went along with it. Now I have a useless piece of paper and $70,000 in debt. College wasn’t all bad, but it certainly wasn’t worth the debt. I cherish the friendships I made, but not much else. This mistake was made because of my apathy towards the systems governing my life, and it’s one I try not to repeat.

Anyway, these two principles are the backdrop for everything else: properly analyze your situation, maximize the outcomes you want, and minimize the ones you don’t.


“So what do you want out of life, Steve?”

“I want to teach, I want to work on open source, and I want to travel.”

“I think we can work something out.”

If you work a 9-5 job, you spend 40 hours a week at work. Let’s add a one hour commute in there too, which puts you up to 50 hours. And as Ruby will tell you…

1.9.3-p194 :001 > 24 * 7
 => 168 
1.9.3-p194 :002 > 50 / 168.0
 => 0.297619047619048 

30% of your life. Let’s analyze this like a pro gamer, shall we? Here’s the situation we’re trying to maximize: “I want to live a full life.” In order to maximize this, we need to discover the constraints. The biggest one, of course, is your time on this Earth. For now, at least, we all will die someday. The primary resource that we all have to work with is time. You should guard your time more closely than any other thing you have. You can’t ever get it back. Every single thing you do consumes this most precious of resources.

When you enter into an employment agreement, you are literally selling your most precious thing in order to acquire other resources. Don’t forget that.

So, 9-5 job. 30% of your life. Is it worth it? Maybe! I can’t tell you. But in order to maximize your outcomes, you need proper analysis. Employment is a tricky thing, in that regard. Capitalism forces us to interact with the market in order to gain our subsistence, so we have to enter into this transaction somehow. What to do?

Quick, startup crowd: what’s the first rule of pricing? If you say “do it value-based, not cost-based,” then you win a patio11 sticker. You’ll never get anywhere selling yourself on an hourly basis, you have to sell yourself on value. That’s another topic for another time. Point is, don’t just assume the rules: truly analyze your situation.

Anyway, that’s neither here nor there. On a day-to-day basis, the only reason that I can do what I do is because Jeff is a stand-up guy, and working with Jumpstart Lab is awesome. We do the best Ruby and Rails classes in the world, and I mean that. I don’t want to get into the details of my employment, but basically, teaching classes, contributing to open source, and speaking at conferences are all part of my job. You can see how that directly maps to my statement above.

So, if you appreciate

then you should consider hiring us over at Jumpstart. If I had to do normal consulting to pay my bills, I would have much less time for all of this stuff.

But I don’t work at Jumpstart!

So, you’re not me. You work a 9-5 job. So you’re screwed, right?

No way! Analyze your situation. Figure out how to maximize it. Before I did software development, I did this. About 30 hours a week while at high school, and 40 hours a week through college. I still managed to put in open source time. How?

The thing is, working on open source is something I truly love to do. For me, it’s not ‘work.’ That does not mean that it’s always roses. Sometimes it’s hard. Sometimes, it really, really sucks. Hard. However, I truly love it, so I stick it out through the hard times, and it ends up being good again. Once, I suffered a really bad break-up. My mom told me this maxim that her grandmother always told her:

What bone you were meant to have, no dog will drag away.

Grandmas. They’re so opaque! The point is, contributions to Open Source is something that’s a part of me, no matter what. So I’ll always find a way to do it. I don’t give up on it easily. When I first took over Shoes, it took me six months to figure out how to compile it. Six months. No compilation. That sucked. But I stuck it out.

Eighty percent of success is showing up.Woody Allen


Having a full life means interacting with other people. Don’t let some productivity fetish negatively affect relationships. I mean that in a broad sense, both romantic and bromantic. ;) Make time for stuff that’s not ‘ZOMG MUST GET WORK DONE’ in your schedule too. I make sure to talk to significant others at least once or twice a day, for example. Assuming they want me to. Tonight, I’m gonna go for a bike ride on the beach. I still play StarCraft from time to time. Every Saturday, my friends and I used to get together in the computer lab and hack.

If you spend all of your time working, and none of your life living, you’ve failed at life. Open source is fun, but go outside, dammit. Or read a book. Or something. But if you only program computers, you’ve failed at being a human.


Listen to awesome music while you work. I first discovered this while mowing my parent’s’ lawn: when I listened to Metallica, that grass got cut way quicker. So, while I work, I listen to shitty pop music. Here’s my Pandora station. I find that upbeat, happy music makes me upbeat and happy. I’m over being embarrassed about my love for Ke$ha. I just bob my head and write more code.


I actually cannot be productive without doing six different things at once. This is related to “Structured Procrastination”. I do a little bit of work on a bunch of different things, and cycle between them quickly. One day, it’s Rails, another, it’s Resque, another is training, then back to Rails, then Hackety…

I’ve been trying out Lift lately, and I really like it. You can build habits with some light social interaction. You might find it useful.

Cut distractions.

That’s a bunch of things I do to maximize good outcomes, but what about minimizing bad ones? In the interest of minimalization, I won’t dwell on them too much, but here are some things that I’ve cut down or cut out in some way:

I still indulge in some of these from time to time, but I’ve cut them out of the ‘every day’ loop. My life is better off for it. Figure out what you don’t actually need, and stop it.