Monday, November 12, 2012

Startup vs. Big Company: What's "Freedom"?

I was talking with a talented young PhD student today about his career ambitions, and the conversation turned to whether it would be better to do a startup after finishing school rather than joining a big company, like Google, to get some "real world" experience first. I asked him what was so appealing about doing a startup, and he said that it would mean having tremendous freedom to choose what to work on and how you pursue problems. That is true, in a sense, but I question how much "freedom" you really have when starting a new company. Doing a startup is also highly constraining, there are real advantages to being at a larger company where you have more resources and a broader set of problems you can work on.

(Caveat emptor: Note that the last time I tried to talk someone out of doing a startup, it was Mark Zuckerberg, and we all know how that turned out -- so perhaps this post should be taken with a grain of salt.)

It seems to me that many startups these days are working on low-hanging-fruit problems: Things that a few guys in a garage can put together with EC2, Ruby on Rails, and XCode. Yes, you can build amazing products this way, but you're not necessarily doing rocket science. There are limits to what one can build with a small team and limited resources, and this means that most startups are constrained in the set of problems they can reasonably tackle.

Also, startups tend to focus on problems that one can build a standalone business around, something that can be monetized or build value in some direct way, in order to make investors happy. For example, it would be difficult to do a startup around a new programming language, since it's not clear how you sell it, although it might form a component of a larger product.

My point is that not all interesting problems are good startup fodder. This is where larger companies come in. One of the reasons I personally like working at Google is because I can work on problems at a scale that most startups would never achieve. Running jobs on terabytes of data on many thousands of cores is routine. For me, this is where the really interesting problems lie: Not in designing another sepia-tone photo filter app, but in solving fundamental problems of computer science that only emerge at the scale and complexity that I can work on here.

Being at a larger company means I am "free" to work on unsexy problems -- problems a venture capitalist wouldn't touch with a ten foot pole. Network protocol optimization, performance measurement, and infrastructure building may not be everyone's idea of fun, but I really enjoy doing this kind of core systems work that can have huge impact over the long run.

This is not to say that all problems at Google are unsexy. I just tend to gravitate towards infrastructure and networking since that's my background. And damned if I can program JavaScript.

The other side of being at a large company is that you have the freedom to fail. Money is not about to run out in a few weeks, and you don't have to make deals you wish you hadn't in order to keep the cash flowing. You can take your time to try different things, get it wrong, and make big bets that don't pan out. It's unlikely you'll lose your job for doing so, and there are always more cool problems to tackle just around the corner.

On the flip side, doing a startup while you are young and untethered might be exactly the right career move. In some ways I wish I had not sat out the dot-com boom doing a PhD, but taken a risk to join PurpleYogi or one of the other dozen or so startups (including Google) that tried to recruit me back when I was 22, unmarried, childless, and already used to living in a small apartment and eating ramen noodles for dinner. Who knows, maybe I would have learned JavaScript after all.







14 comments:

  1. Great essay, as always. My view is that the type of work shouldn't be the determining factor in deciding startup vs. established company, though everything you said about that factor is true. I think people should go the startup route if they want exposure to entrepreneurship, non-technical stuff like sales and marketing and finance (yes that may sound dreadful, but a lot of people, even geeks, like to dabble in that stuff), and/or be able to experience a faster prototype/release cycle than at an established company. Then there is the question of impact -- at a company like Google, it is not hard to have impact, but compared to many other companies, even a semi-successful startup can have more impact. Just because something is built on simple technology (e.g. RoR/EC2) doesn't mean it can't have significant impact.

    ReplyDelete
  2. Interesting post. I agree that most startups out there are quite uninteresting (to me anyway). I condescendingly call them ziggys, since they all end up sounding like ziggy.com. Most web2.0 companies end up building stuff that I consider completely useless -- but that enough folks out there are somehow willing to pay for. The fact is, I can't see myself dedicated to those kinds of startups. That said, if the problem is big enough and interesting enough, and can be tackled in pieces, then a startup might not be a bad idea. One example might be energy efficiency (although that's another particularly difficult market to crack). But another thing to remember is that when you do a startup, you spend a considerable amount of time NOT hacking. You spend them in meetings to get funding, sell the product, arrange EVERYTHING -- from office space rental to buying equipment to flights to clients...it's very exhausting and most of the time doesn't feel like you're really getting anything done. Particularly if you really enjoy sitting down and hacking, like many of us do.

    ReplyDelete
  3. Anon and Jorge: There are certainly pros and cons of the startup model. I think both of you have hit on the tradeoff of building a business versus building technology. These are not the same thing, and there are great opportunities in both career paths. Personally I prefer to build technology as I have very little interest in business - but I can see how raising money, building a brand, starting from scratch could be really exciting to a lot of people.

    ReplyDelete
  4. Good points all, both in the main article and the comments!

    Its definitely worth reiterating that most startups are not terribly interesting, they're businesses with a web site. :-)

    That said, there are MANY small tech companies creating really fascinating businesses while doing some really wonderfully interesting tech building. (strictly speaking they are a small fraction of all "startups", but there are many all the same).

    Having spent a lot of time in recent memory talking with many of these technically interesting startups, I have to say its wonderfully exciting and rewarding to find out about all the cool problems that demand a blend of theory and engineering pragmatics that pop out of many many different interesting business endeavours.

    I should also admit that I fancy myself to be working on a startup in the latter category, with the intent of building tools /products initially targeting other companies in said space of having interesting technical challenges.

    :)

    ReplyDelete
  5. I'm not opposed to the business side of things, actually. Although I enjoy hacking, learning new things (technical and non technical) can be quite fun and enjoyable. It can be difficult to balance the two in a startup and one definitely needs a certain level of excitement and energy to pursue a startup -- but you hit the nail on the head with respect to age. I think startups are better fit for either younger or older people. It's quite hard to start a family (i.e. have young children) and start a company, simultaneously. Although the perception is that most startup founders are young, the reality is they're not. Most are older, and actually older entrepreneurs tend to be most successful (up to 40 -- http://techcrunch.com/2011/05/28/peak-age-entrepreneurship/).

    It might be worth it for this student to spend some time at a larger company or two, maybe even try an established startup or two, and then go off and do his/her own thing. Then again, if they have a bright new idea that could take the world by storm (the next google/facebook/ms?)...well, then obviously doing the startup now would be the right move. The former is safer and increases their probability of success, but takes longer. The latter...well, as they say: Go big or go home.

    ReplyDelete
  6. Great essay.

    "Being at a larger company means I am "free" to work on unsexy problems".

    I think it's the same for people that work in academia. Isn't it?

    ReplyDelete
  7. Great blog post! I really love the part about "I just tend to gravitate towards infrastructure and networking since that's my background. And damned if I can program JavaScript." - there is nothing I could agree with more ;).

    ReplyDelete
  8. Like jortiz and Carter said, nowadays there are two kinds of startups: the sort of thing that used to be called a startup in the 80's and 90's (there are still plenty of these), and the "throw ten kids in a room and have them make an iphone app" nonsense spewing out of places like y-combinator. These are as different from each other as either is from a place like Google.

    I just wish so many people (particularly outside the tech world) didn't associate the word "startup" with the latter kind -- or that we had a word to distinguish the former kind.

    ReplyDelete
  9. In a large company like Google when do new-grad hires work on the really challenging problems and get responsibility? Isn't a new grad going to get lost in the ocean of projects and people and is essentially competing with people who have been optimizing a product for a decade? A smaller company or a start up sounds better as a newbie can grasp a good chunk of the landscape and build something, dont you think?

    ReplyDelete
  10. Re: new grad: It depends on many factors, not least of which what project you land on. Someone coming in on a project that is fairly mature may not have as much opportunity for immediate impact, although that is true if you're at a startup or a large company. Coming in on a new project where you have a chance to shape the design from an early stage is a tremendous opportunity, as is if you come in on a mature project which is going through a major design revision.

    The other factor is this: At a startup you have to build a lot of infrastructure and machinery from scratch which a large company like Google has already figured out. For example, I don't need to think about the massive infrastructure we have for logging, data analysis, unit testing, continuous builds, production pushes, or performance monitoring - I get all of that for free, so I get to spend my time working on the interesting (to me) problems :-)

    ReplyDelete
  11. How about: work in a large company once, but leave before it makes you too soft, work in a startup once but leave before it makes you too hard. Then make your pick?

    ReplyDelete
  12. regarding technique perspective, it is absolutely better to work in a large company like Google. You can learn a lot from the peers, proved world-class code base, a lot of fun projects..etc

    But Startup can provides you sth big corporation can not. You need to do/learn everything, you may be lost, you may strive, there is never "cash burn" time for you, you may lost jobs...it create a much tougher environment and you need to fight everywhere. That experience can quickly enhance your ability in different level.

    ReplyDelete
  13. Matt:

    I've been reading your blog for long and I'm happy that for the first time in my life, I'm referred to as "a talented young PhD student", although I know I'm far from it :)

    Although at this point I'm still not sure which path to take as my future career after getting Ph.D., I understand the differences in different paths and the pros/cons better with your help. Life is like a journey, and a minor difference in choices now could result in significant differences in a few years or in longer term. I will try my best to give myself more choices for now.

    Thanks again for sharing the great thoughts in your blog, I enjoy reading them as always!

    Best,
    Junxian

    ReplyDelete
  14. Matt, may be one of the factor would be if that bigger company is like HP - which case it may be better to try promising start up that could become next Google or Akamai?

    ReplyDelete