Nice. I feel you almost sold yourself short making this about "considering a startup", because you have some great general advice on how people should choose the best working environment for them, period.
"You become the people you spend time with...Here's a heuristic to keep yourself honest: if you were competing with a somebody for a job, would you be scared? If so, you want them as a co-worker."
IMO, framing the question of "where should I work?" from the perspective of "what will develop me into a better engineer/person in general?" is a really good idea. The time you spend at your job should be an investment in becoming more knowledgeable/thoughtful/capable, so you can better pursue your professional goals in the long run.
Thanks for the comments! Yeah, some of the heuristics apply to non-startups, but some of them (like looking at investors in the top quartile) were very particular to the technology startup world.
Very good post. I think times have changed quite a bit. Similar to you, coming out of a CS undergrad I only considered huge (20,000+?) firms. Most of my peers were similar. 1 or 2 went to the 50 person shops, and were considered visionaries. What's changed is people realize that bigger firms don't like to change, so you get locked in to old technologies. They also offer less career alternatives - the top spots are all filled. So there's much less downside to joining a firm that may go out of business. (Look at Blackberry as the counter-example)
There's just one thing that you missed - mentorship. The first job does disproportionately put someone on a career trajectory based on how they learn to operate. 10 years later, your first boss will have a higher impact on your career than your undergrad degree. This means that it is more important to pick the right first manager at a startup, then getting the firm right. Finding a boss whom you respect, that will give you time is the most important thing for a new grad.
That's a great heuristic. Reminds me of Keith Rabois's advice: select an early stage startup by evaluating who your manager will be.
"If your manager is stellar, at a minimum, you will learn and stretch your abilities. Moreover, if your manager is an outstanding engineer or director of something or first-class entrepreneur, he will have many exciting opportunities in next 1–10 years and if you are talented and display an outstanding work ethic he will be begging you to join him at his next endeavor."
That's exactly it. Learning is what's most important that early in a career. Long term career earnings dwarf year 1 or year 2 salary. It's also rare for an undergrad to make retirement money in short term options right out of school. It happens, but it shouldn't be banked on.
I have a friend who works at a company called Readyforce. You should check them out. They help students find work, and have almost 500 startups looking to hire.
"You become the people you spend time with...Here's a heuristic to keep yourself honest: if you were competing with a somebody for a job, would you be scared? If so, you want them as a co-worker."
IMO, framing the question of "where should I work?" from the perspective of "what will develop me into a better engineer/person in general?" is a really good idea. The time you spend at your job should be an investment in becoming more knowledgeable/thoughtful/capable, so you can better pursue your professional goals in the long run.