Do you learn more working for yourself?
I just got this tubmail:
On building forumwarz the past 1-2 years, would you say that you’ve learned more about web technologies and web business than you would have if you were to work in a typical 9-5 IT company?
I liked the question a lot so I decided to post my answer here on the blog.
Yes. Absolutely yes.
First a bit of history for those unfamiliar, which I think qualifies me to answer this question. Feel free to skip to the next section if you just want to know my answer and don’t care about how we got to where we are.
From 2 years ago until now:
I have been working on Forumwarz for just over two years. I don’t have an exact date for when work begun, but I do remember telling Jalapeno Bootyhole and BINGEBOT 2015 that I had decided to quit my job at a Halloween party in October 2006. At that point I had already been working on it in the evenings after my day job.
I gave my job a lot of notice, and started working full time on Forumwarz in January of 2007. We decided in early October 2007 that we had a pretty good first Episode done, so we launched that to the Something Awful goons on October 31st. About 1,000 people took part in that beta, so if you got in then, consider yourself an old timer!
When we launched Episode 1 there was really no end-game to play. Once you’d finished the storyline there was nothing at all to do! So we took a few ideas we had and built them out. First we built support for Klans. Then we created the Brownie Point upgrades system. Then we created ForumBuildr v2.0 BETA. Then we created Forumwarz Domination. Once we had that set of features, we decided to take off the beta label, and launch properly. This was in February 2008.
We were picked up by some major news sites online (the difficulty of sparking that could honestly be a whole blog post in itself), and we jumped from about 2,000 to 45,000 users in a month! To say we had some growing pains is a huge understatement. We focused on improving our architecture. There were many software upgrades and even a few hardware upgrades.
After that we built some more community features: Internet Delay Chat, INCIT, more brownie point options. We began season 2 of Domination and introduced a bunch of themes. At some point, I think around Spring, we started working on Episode 2 hard core. We’d had the storyline written for a long time already, but there was a lot that needed to be fleshed out in terms of the specifics of how it would play out.
We shifted gears and that’s what we’ve been doing since then, with the odd contest and small upgrade in between. We launched a closed Beta of Episode 2 on Monday. We will be launching Episode 2 in early to mid-October. It’s really interesting to me that I decided to quit my job in October, we launched Episode 1 in October and we’ll be launching Episode 2 in October!
Okay, now I’ll actually answer your question:
In my experience, most of the web developer positions in the Toronto area are either Java, PHP or .NET. There are definitely jobs for those who do Ruby or Python or Perl, but they are much harder to come by.
If you’re lucky enough to have a good employer, they might allow you to experiment a little with a technology that branches off your own. Generally though, in my experience most companies want to stick with the technologies they’ve already figured out (and more importantly, invested in) how to support. If your company has a huge Java application that runs on Weblogic and Oracle, then you come up and say “Hey, for the reporting component, why don’t we try Ruby on Rails or Django”, you’re probably about to face an uphill battle.
When you work on your own, there is no such resistance. You are free to do whatever you want. You can try out new things like I did and gain a lot of experience in the process. That’s not to say there isn’t a lot to learn in the Java or .NET world, but by virtue of doing it all yourself you’re going to have to learn it.
Even if you don’t take a chance on a new programming language or framework like I did, you will still end up learning things.
A good example is the IT side of a project. I was just remarking the other day that I hated setting up servers in the past. I would do it out of necessity but I would complain incessantly while doing it. When deploying Forumwarz, I had no choice but to configure them myself. I had help from friends, but I did the majority of it myself. And then, at some point recently while configuring an EC2 image for Amazon, I realized that I was actually enjoying it.
I now know how to set up a cluster of ruby instances, how to set up Apache and Nginx, mail servers, software firewalls, databases, dynamic DNS and I love it! I was forced to learn those aspects of deploying out of necessity, but I am much stronger for it. I never would have done that if I was working for another organization. I would have just thrown my code over to the IT guys.
Finally, there is the long amount of hours you inevitably end up working when you run a start up. Even if you promise yourself you’re only going to work 9 to 5 (And nobody I know with a startup does that), things will pop up when you least want them to. Your site will go down in the middle of the night. You will get calls while sick and in bed and have to crawl out to fix them. These are amongst the worst aspects of working for yourself on a startup, but also the ones that teach you to work under pressure. They also teach you how to work when you desperately don’t want to.
In the end, even if Forumwarz fails and I have to go back to the corporate world, I’m sure the skills I’ve learned have will only push me forward career-wise. And that’s saying nothing of the thousands of awesome people I have met, and the industry contacts I have made in the process.
I have made huge sacrifices in my personal life for this project, but you’ll rarely hear me complaining about it: I love what I do, I’ve learned a hell of a lot, and I’m sure no matter what happens with the project from this point on, my career will be better for it.