Dare Obasanjo has a post about the culture at big companies vs. small companies, and links to Auren Hoffman's post which claims that it's hard for large companies to attract 'A' talent.
I've worked at a startup, a small company and a couple of large companies.
Each of those companies afforded me fantastic learning opportunities and I can't believe that any was intrinsically better than another type of company. It's not a question of startup vs. big company: it's a question of particular company 'A' vs. particular company 'B'.
I had excellent and in retrospect superhumanly patient mentors at Timeslips, who taught me everything from how to use source control to how to do pointer arithmetic in Pascal and how to debug 8086 assembler code. Not to mention what it means to actually develop software products, instead of just programming.
When I got to Microsoft in 1994 I was like a kid in a candy store. Literally, I guess, if you count endless free Coke as "candy" and 22 years old as a kid.
My lead for the first couple of years was a guy who went on to be Office's director of development. He managed a large-ish team of developers (7 or so?) and knew in intimate detail what each of us was doing, to the degree that he'd answer random questions with a precision that made me think he'd already implemented the feature I was working on and was just letting me do it as an exercise. I was surrounded by other people whose accomplishments and abilities simultaneously inspired me and made me feel like a complete schlub: I worked with one of the guys who wrote Excel for the Mac back in '83, before anyone outside of Apple and a select few outside even knew the Mac existed. I worked with graduates of Harvard and MIT, I worked with people who worked on the original version of Word. And that was just in my hallway: I could wander around campus and bump into the original authors of Windows and those toiling away on Windows 95 or NT4 (the new hotness, which we all developed on, and was at the time super-secret); I could walk over to the original buildings and see Bill's office or occasionally the man himself.
This environment, for someone who hadn't even gone to college, was heaven. Beyond the obvious (getting paid lots of money to code!), the immersion in geek culture was awesome. Suddenly I got to be one of the Cool Kids, more or less (though by saying that I'm gonna get a bunch of comments from my co-workers saying, dude, no you weren't, we just let you hang out out of sympathy).
The downside of the immersion was a monoculture of ideas and software; when you work at a company that makes everything you need, it's easy to lose track of what's going on outside your bubble.
Working at Recipezaar got me out of that bubble. I learned to use Linux and it took me back to the early days of working on the command line in CP/M on my dad's VT180, but it was so fast and so powerful. The immediacy of development in this environment was matched by the immediacy of "shipping" -- the freedom and excitement of writing a feature and shipping it the next day was staggering. Brainstorming ideas in a 3-person team was fun and fast, generally, and being involved in every aspect of running a business from fixing the code at 3am to answering customer support questions to going on business trips and making presentations was the perfect antidote to Microsoft's hyper-specialization of roles. Beyond that, there was the possibility of making lots of money, or at least making enough money to let me live where I wanted and work from home and work on a product I wanted to work on.
Unfortunately I hit the downside of a startup: risk. After 18 months without a salary, no big deals on the horizon, and the ad market depressed, I went back to Microsoft for a steady paycheck. At this point I was a canonical example of someone who wants to work at a big company for the wrong reasons: I craved the steady paycheck and would be a mercenary and write software as a means to an end -- rather than out of love -- if necessary. Probably because of this, I got exposed to many negatives of working at a big, mature company: politics, at which it turns out I am a complete retard; stultifying drudgery and bureaucracy; the need for self-promotion, and etc. Despite this, I ended up having some fun; I eventually ended up on the MSN Desktop Search team where once again I was surrounded by people way smarter than me -- the best environment for learning. Like no other team I'd ever been on, this team emphasized the beauty of the Hack: want to embed search results in Outlook? OK, figure out how to co-opt their HWNDs. Want to make that crusty old Windows Indexer work right? Go to it, 15 years of code be damned, just make it work.
But then I got an offer from Google and after a little bit of waffling (I was having much fun with the hackers) I started there back in January.
And holy shit I hope I can convey to you what sort of geek heaven I'm in now.
Above I talked about NT4 being the "new hotness" back in '94 -- the guys who made it that way sit right next to me. In the same office. And that sort of expertise is everywhere here... it seems like every office is occupied by at least a couple of industry leaders, guys whose names you'd recognize if you're even a casual observer of geek culture.
Google's culture values independence and transparency of communication in ways I didn't think were possible at a large company. We've of course got our 20% time, but beyond that there's a sense that everyone here is competent enough and trustworthy enough to be clued in to many parts of the business -- not just engineering -- which would typically be hidden. That trust nets huge gains in loyalty and excitement.
There aren't many places in the world where you could can come up with the idea for a feature or product, implement it, and launch it to an audience of millions, with the infrastructure to support it. Yes, you can do it at a startup or on your own, but getting eyeballs and servers is non-trivial. For every YouTube there are hundreds of sites nobody's heard of.
Certainly startups have their benefits, but so do some big companies. As cliche as it is, your co-workers are going to make the biggest difference in your satisfaction and learning; find a place with excellent mentors (no matter how much experience you have) and you will do well, whether that place is a start-up or a large established company or something in between.
Wednesday, November 29, 2006
Subscribe to:
Post Comments (Atom)

12 comments:
You nailed it Mo!
For someone like me, who is embarking on a career this post is very insightful!
Yep, that just makes my desire to go to google someday even stronger...
It was nice reading about google and microsoft. You are right...it's better to be a mediocre guy in the company of smart people, than to be a smart guy in the company of mediocre guys.
Oh, no college for you too? Hey, we are a big tribe -- non-Colleged programmers.
You batted it right on the gob, Moishe.
I work among hackers. It's a tiny (no, let's say micro) company. There are these guys that so awe me, I am ashamed to concede that I keep hoping to hit a hard wall and run at 'em. It's bordering on worship. Esoteric technologies only make it feel like being in a mystical shrine of sorts.
And, yes, this is hacker heaven. I mean, I have Clisp here ...
I was wondering why I never saw a link to this in my referrer logs. It seems the link to my blog is incorrect.
Link fixed.
Nice post! I've often said that I'd rather be the dumbest person in the room than the smartest, and that's why I've loved working on the team I do (originally at a medium-sized software company, now at the much larger one that bought it). The larger company means a bit more bureaucracy, but it also means a heck of a lot more support -- and I still get to work with the same fantastic bunch of people.
I agree with you, as long as we're talking about software companies. If we expand "companies" to include "IT departments at non-tech companies", which is where most of us shlubbos work, then it's a whole different ball game.
Hi Mo.
I'd be interested to hear how you came to work for Microsoft and Google since you have not been to college. I consider to go to college to be able to even get a job in the business and "sleep" my way up to companies like Google or Microsoft.
I'd be glad to hear about that.
I wonder if you would rather create or work in a company like YouTube or slave it until you can pay your mortgage and your kids education in companies like Google. Working for someone else's share profits can only give you a few dimes compared to the massive payouts that startups can offer. Even if it means that you might fail 100 times before you succeed once.
seriously dude its awesome to learn frm peers , its so often tat u bump into ppl n say .. WOW these ppl r so damn good .. n u try to be as good or even better thab them , that u end up learning something new in the process
Post a Comment