Best reason: going home at 6 o'clock and rarely getting called on nights and weekends unless you volunteer for it.<p><i>1. You learn an awful lot. You get to see the good, the bad and the ugly. You see lots of very good ideas (like proper source control) and some not so good ideas (like how not to motivate people).</i><p>For good ideas, I think this depends on what you mean by "large." A small company company that has been around for a long time, and possibly grown into a medium- or large-sized company during that time, acquires a high level of expertise in its particular problems. It's really an education to see the technical solutions that emerge from years of accumulated experience in that kind of environment. However, after companies get really large, they devolve back towards mediocrity, because the prevailing management mentality is that technical excellence does not scale. Executives four or five levels away from the front lines want to feel in control. If they aren't in control, nobody is in control. If nobody is control, the company drifts aimlessly. And the executives aren't in control unless the people on the front lines are predictable and interchangeable. There's a flaw in that logic, but it's natural for executives to feel that way. Technical excellence (except in the empty sense that everyone claims) also means that management can't solve technical problems by itself, because management's only methods for solving technical problems are managerial: ramp up hiring, hire contractors, outsource, etc. Empowering management means organizing the company around the most common technologies, the most common practices, and the most common quality of developer. From that point of view, technical mediocrity is a feature, not a bug. There's no need to learn mediocrity first-hand: you can learn it from books and blogs, and from there you will quickly match or exceed it.<p>For bad ideas, I'm probably in the minority here, but I don't think there's much benefit to seeing ideas fail. Some things are obviously good or bad, and some things you need to see play out in practice, but in my opinion, the non-obvious things you need to see play out in practice are usually sensitive to context and specifics. They might work poorly in a large company but well in a small company, or poorly in one large company and well in another large company. Scrum, for instance, turns out to be a poor fit (in my opinion) for the engineering department I work in. If I try to predict whether Scrum will or won't work in another situation, however, I will fall back on common sense unless there are particular parallels to the situation I observed.<p><i>2. You get to work with lots of clever people.</i><p>Surprisingly true, probably because of the exact reasons he stated. However, the better the tech economy, the more the best people feel confident leaving.<p><i>4. They have lots of perks. I do miss the canteen, the sports gym and the other 'extras'. And that week's 'training' in Amsterdam at the company's expense. That was a lot of fun!</i><p>Not always true. Many big companies have no perks at all, or insultingly crappy ones. Mine won't even provide decent coffee -- we have a bunch of coffee fiends who simply don't drink coffee at work. It's better to have a coffee house nearby than to have a company canteen. (Also keep in mind that if you're a lower-level resource, big companies may compensate for lax productivity standards by paying more attention to when you're in the office, which makes it a bad idea to go out for coffee on a regular basis.)<p>As for training, that depends, too. Sometimes big companies won't pay for any training except overpriced training in proprietary software, and then only one or two people get it. You can encounter cases where the company will only pay for (e.g.) introductory Oracle training, but will only pay for training for its most senior resources. The introductory training isn't offered to junior resources, and the company won't pay for advanced training for the senior resources, so nobody ever gets trained. (And you'll never know whether this is on purpose, or simply due to stupidity.) I was going to get flown to expensive official SAP training halfway across the country, but then (thank God) I managed to avoid working with SAP. Result? No training of any kind for me, even if it's half the price. Unless I want to get a Master's degree, that is, in which case I have a lot of leeway. It seems ridiculous that the company will pay for a Master's degree but won't shell out a thousand bucks for a conference, but apparently that's not unusual. The rules are often bizarre and counterproductive.