Wed, 03 Aug 2011
Three reasons to take (or not take) a job

Image credit: Spring! by (nc-sa) Martha Nelson.
Creative Commons needs someone good. If not me, then who? (2006)
At the end of 2006, graduation was looming. I had to find a job.
The Johns Hopkins CS jobs emails seemed to list two kinds of work in the Baltimore area: cutting-edge artificial intelligence research to build better killing machines for defense contractors, and mind-numbing Java development jobs that built expensive, hard-to-use websites for government agencies.
Faced with these options, I thought I'd ask Creative Commons if they wanted to hire a software engineer. (I had just interned there the summer of 2006.) To my glee and relief, they said, "Yes." In the blink of an eye, I said "Yes" back.
Then Google recruiters started emailing me. They suggested I apply to be a Site Reliability Engineer. They needed people who understood Linux-based performance issues and software architecture, could critique other engineers' designs before they took code to production, and be nimble system administrators. That sounded exactly like what I enjoyed doing. But I told them I already had plans.
While having lunch at Wegmans, I explained this to my parents.
"You could at least interview with them," pleaded my mother.
"No," I explained. "Google has enough resources to find someone who will help it achieve its goals. Creative Commons doesn't necessarily."
The day-to-day work at Google would have been more technically challenging, but my actions weren't going to make a net difference on the world. At CC, they would.
My own projects also need that push (2009)
In late April 2009, I was stunned to learn that Shotput Ventures funded a project Nelson, Raffi, and I applied to start. It's now called OpenHatch.
I had started working at Creative Commons because I wanted to push the world in that direction. I had enough self-confidence to think that if it wasn't me coding for them (and promoting them), it could be someone less effective.
In 2009, I realized that the same applied to my own projects. If there is a direction I want to push the world, it's not going that way unless I push it.
Thus was one more layer of humility removed.
This job will teach me skills I want -- on their time (2011)
Recently, I've considered other ways to spend my time: for example, building a system administration co-op to combat corporate cloud services with freedom-loving humans, or organizing urban kitchens for hungry yuppies to practice cooking during their lunch breaks.
To understand how to make the sysadmin co-op succeed, I needed to understand devops-style system automation tools. A few months ago, while working on Miro Community, I had the chance to redefine the service requirements using Puppet. Once I realized that it would help me plan my own future, I lept at the task.
This year, it struck me that if a job can teach me something I want to know in order to make my own projects succeed better, that could be a reason to take it. That includes future projects, and goals with a timeline of 5-10 years.
Until recently, I thought that jobs were devices for turning my time into some change in the world; I didn't realize I could retain some of the value in the transaction. In other words, I realized that I'm not an invisible worker pushing the world around. I'm a permanent fixture in my life.
Thus was removed one layer of self-effacement.
Conclusion
I'll conclude with some advice to myself:
Don't forget about yourself. Not just your vision of the world; things like, What skills are you gaining? How does this job help you succeed at what you'll be doing five years from now?
Posted by Another Waffle (alter ego) at Wed Aug 3 08:21:36 2011
It's not a hard-and-fast tradeoff (you learn things at most any job; you can modify the world to at least some degree even outside of work), but a real one nonetheless, I think.
Even better, we always have to make that tradeoff with imperfect information.
If you'll excuse my math, where
Gl = learning at Google
gp = "pushing the world" at Google
cl = learning at CC
Cp = "pushing the world" at CC
was Gl + gp <= cl + Cp? I have no idea.
Posted by Karen at Wed Aug 3 12:48:46 2011
I also think that it served as good practice in saying "No."
I also didn't have as solid of an idea about the magical sysadmin co-op replacement for the corporate cloud back then. So I wouldn't have been learning as much because I didn't have a direction to push what I was doing.
I'm pretty happy with saying No to Google in 2006. In 2010, though, the calculus is messy. In 2012, it's unknown. (-:
Posted by Asheesh Laroia at Wed Aug 3 13:18:38 2011