With my decision to leave Google to work for Twitter, I am now officially unemployed for the first time in four years, and will be for slightly over one week. I have named this week Freedom Week.
Like Shark Week, Freedom Week will be free as in beer (as in I will be drinking some). Unlike Shark Week, Freedom Week will be free as in freedom, meaning that for once in my life, I have full control over copyright and licensing for any code I manage to create. Naturally, I’m reminded of the best description of a summer break, ever:
It's the beginning of the summer and I'm standing in the lobby of a thousand-story grand hotel, where a bank of elevators a mile long and an endless row of monkey attendants in gold braid wait to carry me up, up, up through the suites of moguls, of spies, and of starlets, to rush me straight to the zeppelin mooring at the art deco summit, where they keep the huge dirigible of August tied up and bobbing in the high winds. On my way to the shining needle at the top I will wear a lot of neckties, I will buy five or six works of genius on 45 rpm, and perhaps too many times I will find myself looking at the snapped spine of a lemon wedge at the bottom of a drink. I said, "I anticipate a coming season of dilated time and of women all in disarray."
It would be a shame to squander such an opportunity, so I’ve come up with some principles to adhere to:
For once I actually have nothing on my plate, so I should pick things which interest me and look like they’d be fun to do. Watching Notch program an entire game in 48 hours last week was amazing not only because he got so much done, but because he seemed to be having so much fun doing it. Ultimately he spent more time adding features rather than infrastructure, which, while bad for a long term project, seems like the most effective use of time for writing code in a short time span.
Write something useful
Given #1, I also want to write something that could be useful to others. I intend to open source everything under Apache 2, and I will try to write at least one client library for Twitter, which brings me to…
Learn something new
I shouldn’t be afraid to spend time learning things which will help me in the future. I don’t know enough of the Twitter APIs, so writing a client library will help me explore them. I’m also considering writing a better blog backend, since posting right now has too much overhead.
Additionally, I’ve got a few books lying around that I’ve been meaning to poke around in. The most fun looks to be Real-Time Rendering since I’ve just started playing around with WebGL and want to learn how to do things like shadows or crazy glowy effects.
Don’t get bored
I only have one week, yet tons of ideas and dream projects. So one thing I don’t have the luxury of doing is getting bored and deciding to play Mass Effect or watch movies on Netflix instead. I need to be able to dump a project which is becoming a bore in favor of something which satisfies principle #1 better.