Long Term Goals

In my interviews at Mozilla Mike Morgan asked me what my long term goals are. This is a topic I’ve visited once before. Here I am about a year later. My life has changed quite a bit, but I’m finding it hard to list any long term goals I’ve achieved.

I told him one of my reasons for joining Mozilla, which is learning how to deal with scaling projects to the extremes that they’ve had to. Another is to someday reach the level of Kenneth Reitz and others like him in the open source world.

Goals are hard to achieve if there is no quantifiable metric for progress and success. Goals that are more abstract, like learning to scale software projects, are much more difficult. The best I can do is reflect periodically and make sure I am learning the skills I’d like to. The same goes for becoming a better citizen of the open source world.

Goals have different natures as well. For instance, I have the goal of becoming a consistent blogger, so I decided to blog at least once a week for a year. I can tell if I am doing well by how many weeks I’ve done it and how many I’ve missed. Another type of goal is like my goal of getting into Master league in StarCraft 2 which has an end condition, and even some intermediary goals of getting to Platinum and Diamond leagues.

I’m going to take the next week to really consider my goals and try to come up with a list of 1, 2, 5, and 10 year goals. Of course the longer the goal the more abstract it’ll likely be, but I can at least use it to guide myself.

Initial SC2 Goals

These are the things I’m working on for the next month:

Consistent Macro.
Problem: Once I have to micro at all, I have a hard time catching back up on my resources. Also my probe production has a pretty steep drop off after I have a few buildings to look after, especially once I have taken my natural.

Solution: I plan on working on this by tracking my average unspent resources and aiming to lower it to a reasonable level. I need initial stats before I can say where I want it in a month

Keeping my calm under early pressure.Problem: Cheese gets me worse than it should. Even if I can repel it, I’ve taken a huge hit to my economy because I spent time on micro and forgot to macro. Not only that, but I don’t make units to defend as often as I can which leads to it being distracting for longer. Together the two make it so cheese eventually destroys me.

Solution: I plan on working on this while laddering and during my Saturday night practice sessions with my friends.

Both are things I can continually improve on, they are fundamentals. But as fundamentals, I need them to be at least not weak before I can start to worry about other things.

StarCraft 2 and eSports

I’ve recently found camaraderie with some fellow software developers who play StarCraft 2. Not only that but they get excited to stay up late and watch the big league matches. Note these are people with solid careers, some of them even with a significant other and children. These are not the living in mom’s basement, unemployed or working a dead end job and the other general stereotypes of people who get really into video games.

I’d been considering whether I wanted to start taking my SC2 playing a bit more seriously and try to push myself into being halfway decent at the game. I waffled back and forth until I watched Day[9]’s #100 Daily. I challenge anyone to watch this and not get (at various points) choked up, excited, happy, and finally no longer ashamed of their love of video games.

I’ve been a gamer most of my life, but I play that card close to my chest. Tell someone that not only do you play a game 4-5 hours a week, you don’t just call it playing it is practicing and training. You’ll probably not enjoy the reaction. Especially since if you are willing to spend time practicing, you have likely become pretty passionate about it.

The above video and Revenge of the Nerds both have something in common. Nerding out on something can be great, especially if it is something that makes you happy. Programming is that way for me, which has led to some great opportunities and friendships, perhaps SC2 will be the same.

I have no delusions of becoming a pro gamer, I’ll be taking it more serious but not that seriously. My goal is to make it into Master league, meaning top 2% of players in my region (North America). I’m currently Gold league so I still have a long way to go. If you play SC2, add me on Battle.net: Wraithan + 968.

An Exciting Update

Sometimes when you are waiting for something, time goes by very slowly. But because you are so focused on that one thing, everything else in life moves really fast. I’ve been unemployed since the end of January. During that time I made ZenIRCBot significantly better, I wrote a simple site for tracking your workout stats, I attended two conferences, PyCon and Barcamp Portland. I visited two states that I’d never been to. Flew for the first time and took my longest train ride.

Basically I’ve done a ton in this time. But it feels like it has been a really long time because I’ve been so focused on getting my resume put together with Mozilla in mind. Then once I finally had that to a point that I was happy, I started showing it to friends for them to review and that took forever. Then I handed it off to my friend Jason to apply and write a letter of recommendation for me.

Then I waited another eternity (it felt like at least) to hear back, be flown down and get an offer from them. I was so focused on that, that everything else flew by me and I may not have gotten the most out of things. Which is fine because I’ll be starting at Mozilla on the 29th of May. Working on http://addons.mozilla.org and related sites with the WebDev team.

What that should really read as, is that I am incredibly lucky to be getting the chance to work at a company that I’d only really dreamt of working at before. I’m going to be working with some awesomely brilliant people, for a company who’s mission is to make the web a better place, while working on some really interesting and difficult engineering, doing it in a language I love (Python) with a framework I love (Django). If you know me, then you know how much I love working on interesting hard problems.

I’m writing this mostly as a stream of consciousness because I don’t have a better way to put this stuff together. In the future I’m hoping to take some time, get some peer review for my posts before I put them up and talk about the awesome things I’m doing at Mozilla and in my free time. If you want to be someone to helps me with my writing, let me know, I could use all the help I can get.


Weekly Training Site

I blogged last month about my goals and where I wanted them to be. In response to that I built a site that helps me track where I am for the 7 days trailing. That site can be found at http://training.wraithan.net/.

Users log into my site via Dailymile using OAuth2 since I need to get their API token in order to collect their workouts and display them. You can see my profile at http://training.wraithan.net/profile/Wraithan. At time of writing I am nearing my goal for biking but my running and hiking have suffered.

I built this site using Django, I did all the OAuth2 stuff myself because when I last surveyed the existing work with OAuth2 and Django, I found I would have to write my own. I turns out it is pretty simple, and because of the many drafts that exist, it would be pretty trying to have a more generic app for this. This will hopefully change when OAuth2 is finalized.

Dailymile’s API has some warts but it is usable and they were rather responsive when I had some requests for features and the one or two bugs I ran into. Plus their terms of service for their API are really reasonable. I can’t say the same about other workout tracking sites I looked into, either they had a horrible ToS or they plain didn’t have an API.