I could direct some snark at each bullet point, but they're sufficiently ridiculous that instead I'll give my reasons for not regretting my four years and two days of being a blue badge:
* Brand names are useful: when you're interviewing for your second job, no one will have ever heard of fribble.com (or whatever), but they'll know Microsoft, Amazon, Google, Apple, Facebook, etc.
* I met a huge number of people in a very short amount of time. The connections I made at Microsoft are still paying off today in terms of friendship, jobs, and intros.
* Relocation benefits are awesome. I grew up and went to school in Minnesota, and when I was hired by Microsoft, they paid for all of my relocation expenses. The odds of finding a startup that can/will do this are probably low.
* You'll be able to appreciate just how green the grass on the other side really is. Seriously: the amount of bureaucracy and political infighting can be stultifying. Understanding what you don't want out of the rest of your career is just as important as knowing what you want, in my opinion.
* "Our career paths provide clear steps for success" is silly, but the odds are that you'll never have a manager in a small company who is invested in growing your skills. Having some structure for a couple years to get this was useful for me.
Edit: one more:
* "Microsoft is getting ready to launch some of the most exciting products you’ve seen yet" is also silly, since the odds of you working on one of the 'cool' projects is incredibly low, but there is a lot to be said for the fact that millions of people will use the software you help create. My work on Visual Studio impacted every single user every day, which is ridiculously cool and humbling.
My Microsoft friends are A LOT happier -- they have a much more balanced schedule, are not expected to be available on a moments notice and feel much more relaxed at their job. The friends I know at Amazon are very rarely off at a normal time, have a lot more pressure from the higher ups and have to regularly take high quantities of "on call" work.
As far as I know, this isn't as bad as everyone tends to think. I kind of accept it along with the engineering culture- I prefer to be responsible for my projects rather than wait til 9am to put out fires. But I may be biased as a young, single, and so very poor student considering working for Amazon. If anyone has a better idea of the work/life balance at Amazon, I'd be grateful to hear more.
aaronbrethorst hit the nail on the head- there is a definite benefit to starting at a large software company. For me and my friends whom are looking for our first FTE positions, startups are daunting due to impostor syndrome. In my case, I don't know if I am skilled enough to jump right into a niche startup and be relied upon so heavily to ship. Amazon, Microsoft, etc provide a great place to learn from very intelligent people in the industry.
I think as my specific social circle is reaching the twilight of our 20s, those environments are less and less appealing for a lot of us but a few wouldn't trade it for the world.
"On the other hand, choosing Microsoft to launch your career provides nothing but upside.
Don’t believe the hype. I admit I’m biased, but for tech jobs, Microsoft is your best bet."
But it omits Kevin's six reasons why it's nothing but upside, in between these two paras. Good practice would be to show via ellipsis that something was omitted. Better would be to give a more honest argument.
If you want to have an impact on the company, startup is a good bet.
If you want to be sure the company will be around long enough to pay off your student loans, a publicly traded company is a good bet.
If you want to work on something thousands will use, a big company is a good bet.
If you want to explore in a design space, a big company is a good bet.
If you have a vision you want to make real, a startup is a good bet.
If you want to learn what it takes to build a business around a technology a startup is a good bet.
If you want to meet a spouse who is in a similar type of job, a big company is a good bet.
There are so many different things you might consider.
I've spent some time at Microsoft, and have only good things to say about my experience.
My qualm isn't with the company, but rather, the content, approach and flippant tone of Kevin's post. Having previously worked there, that's not something I'd expect from the company, which is disappointing.
(cross posted this back to http://blog.derrickko.com/microsoft-and-startups)
If your priorities are to grow yourself as fast as humanly possible (remember Derek Sivers and "There is no speed limit.") for a certain planned period of time and you're ok with all of the sacrifices that the choice will entail (no free time, no weekends, infinitesimal personal life, continuous ups and downs), then I believe you're better off on your own, surrounded by very smart people working in very smart and fast-paced teams. I do believe that the overhead of working at a large firm where as a new developer you might spend 50% of your schedule in meetings is absolutely devastating to your career, unless your career is to steadily climb the management chain, in which case you'll probably do fine and don't need this kind of advice. I've had a very similar experience to aaronbrethorst at MS and definitely gained a lot from the ride.
There are certainly happy people working at startups, and happy people working at large companies like Microsoft. Certainly Microsoft's JobsBlog is going to promote the benefits of working at Microsoft. It's up to you to decide if his points resonate with you.
It's worth going to the original post and reading the six bullet points. They're not dishonest, and they don't misrepresent the company.
If "you will launch code on day 1" is more important to you than "our benefits are the best in the business", you may want to work for a startup. For many 22 year olds, this is the case.
But I did spend a lot of time hiring, coaching, and observing junior engineers of all stripes.
At junior levels, I don't think it's about MS v Startup as much as "Big Company v Startup". As Steve Blank says, startups aren't minified big companies, they are a different species.
On balance, I still believe a bigger company is a better place for a first job than a startup. This is not a rule, but a preference.
My main reason for this is that the number one goal of a new engineer is learning to be a better engineer. On balance, this happens faster when you're in the presence of more senior folks to mentor and challenge you.
If you're doing a startup with a bunch of folks with similar experience levels, you'll learn plenty but you'll also bake in some bad habits.
A corallary, as noted here, is that a larger company pays you and let you focus on your core job role, versus "wearing many hats", which is great for someone who's got some things down pat, and not so great for n00bs.
This is a vast generalization and frankly there are some caveats here with MS in particular (and maybe others, n=1) that might get in the way, but in general I think structure is good until you're really equipped to make a run.
My first job was at a startup and I came to this conclusion when I left there 1996, and nothing in between has changed my mind.
Furthermore, I am very (very) thankful that I did not start my career at Microsoft, but rather at small startups. The primary drawbacks I see for starting at Microsoft are:
* You do not really learn from your mistakes- there are sooo many code reviews, design reviews, test reviews, etc that it's essentially waterfall planning and you have very little chance to experiment and fail. Which I think is critical for starting out. You're surrounded by very experienced people, but at first what you really need to do is to learn on your own (in a production environment).
* There is a certain lack of energy on many teams at Microsoft (not all, but a large majority). You're young, you have nothing to lose, may as well learn what it feels like to work on a small team and crank out features like your company is going to go bankrupt in 3 months.
* At Microsoft, you learn to code. At smaller companies, you learn everything. A bit of customer support, business models, ux design, etc. A small company gives you a great broad base of experience from which you can build on in any direction. Microsoft for the most part, is more of a specialist (one person who just works on installers, one person just working on build system, etc).
Microsoft is an excellent company to start your career at if you have a limited educational background and little which distinguishes yourself, but you are willing to put in the work to overcome this.
Salary and pay for graduates from tier 1 schools is higher across the board for new graduates. But with 1-2 years at Microsoft, many recruiters and businessmen will put you on par with anyone else in the industry of similar education and background. Microsoft is a chance to replace your local liberal arts school CS degree beneath a solid pedigree.
Also, during those 1-2 years you will be given a great education in the industry. In my experience, Microsoft provides plenty of interesting problems and it also provides its new hires with the time to solve them. If have gaps in your education, the people at Microsoft will provide you the chance to fill them. A startup will provide a more feet to the fire experience, which may not be compatible with your disposition.
Finally, Microsoft provides you safe entrance into the industry. If you have a family, if you are writing on the side, if you are unsure that you've chosen the right path Microsoft will provide you a solid paycheck and free relocation. A startup will provide very little free time in comparison.