Hacker News new | ask | show | jobs
by socratic 5147 days ago
Is there a better signal than high-pay for choosing a technical internship? Looking at Alexey's list, with the exception of hedge funds, Google, Facebook, Twitter, Dropbox would be my top choices for where to do a technical internship, and they're also the highest paying. I suspect this is because a good engineering culture leads to engineers that cost more and get better equipment which eventually filters down to interns. (Obviously, there are exceptions, though.)

More broadly, is interning at a startup a good place to learn technical skills (rather than marketing, networking, funding, etc.)? Most of the information on running common web stacks, for example (nginx, rails, django, node.js, varnish, postgres, mysql, redis, etc.), is either freely available on the web or even can be bought as a service (heroku, app engine, aws). By contrast, the only way to find out how engineers have solved problems (web serving, analytics, etc.) at truly huge scale (e.g., 10+% of the human population) is to actually see the solutions at a big company (though sometimes companies will publish details of 3+ year old infrastructure). Big companies also tend to have stricter code review cultures, while small companies tend to just need code written now. All of this seems to point to learning significantly more at a (technically excellent) big company, even though the "output" of the intern might appear to be less.

In fact, doing a startup seems like it might be more like resume stuffing than working at Google or Facebook these days. Working at a small startup, you get to talk about your impact, how you built a mission critical piece of infrastructure, whereas at a big company you're probably only trusted to write some small features that are not in the critical path of full time engineers. What's more, you get to say that you worked at a startup, which everyone pretty much respects around California, even if the startup dies or wasn't very technically interesting. But the potential for learning quality engineering through code review and understanding the existing infrastructure seems a lot higher at the big company.

2 comments

Startups vary. Just because the majority of startups on HN are making web apps at medium scales does not mean everybody is.

I've looked around at a bunch of internship and the most technically interesting ones have all been at startups. Now, I have to admit that the majority of startup internships I've seen have been in the bland web-based software category. And, perhaps, larger companies have more technically challenging internships on average.

However, average is not what you should be interested in. And the exceptional startups I've seen are more exceptional than what you would do at a bigger company. This makes sense--there are more startups, they are more varied and less conservative than bigger companies and they cover more niches, so the variance in technical difficulty is going to be greater. Bigger companies also have more friction: existing processes, gigantic code bases, very specific requirements, large investments in existing tools...

Also, it's much easier to find startups in your particular field of interest. I've talked to companies doing interesting work in machine learning, bioinformatics, robotics and even type systems (I haven't seen any interesting work with type systems at big companies at all). And these are just things that happen to interest me in particular: there are probably interesting startups in whatever field happens to interest you as well.

So I think startups are actually rather good for doing something cool and novel, especially if it's something off the beaten path. You just have to find the particular awesome startup that interests you rather than joining another web/mobile-based company.

Now, there are some advantages to seeing how a bigger company operates as well. Understanding how to organize hundreds of programmers, maintain gigantic code-bases, use significant resources efficiently and survive in a larger corporate setting are all very important.

Spending at least one summer at a bigger company would be is useful if only for these, just like spending time at even a technically boring startup is great for the non-technical reasons you listed. But for learning technical skills, especially more specialized and advanced ones, I think a startup (but not just any startup) is a great choice.

I've talked to companies doing interesting work in machine learning, bioinformatics, robotics and even type systems (I haven't seen any interesting work with type systems at big companies at all).

What start-up is doing work in type theory?

I talked to somebody from the Ashima group[1] about their gloc prsoject which they just released a version of. Having thought about it, I suspect there are some other companies working on it as well, like maybe Typesafe.

[1]: http://blog.ashimagroup.net/category/ashimaarts/

Note that Google Summer of Code is probably "better" than the amount it pays would indicate.
Is this true? It's good resume filler, but you won't "meet" many people through it; your mentor, although probably a member of a big corp (most OS stuff has corp sponsors), is just one person.

So the networking opportunities are limited, a lot of the work is the "easier" (less-critical) stuff for projects (although on the other hand - maybe the more interesting projects).

It will definitely look good on your CV, but any better than getting a good internship elsewhere?

Nitpick: GSoC is not just OS related stuff. One of the areas that they are funding (exciting to me personally) is development of CGAL which is the most popular and powerful open-source library for computational geometry (http://www.cgal.org/gsoc/2012.html)