It's actually pretty hard to get on to the most interesting projects in large companies. Your first project is a roll of the dice, and you usually have to do well on that first one to get an upgrade on your second.

Yes, there's cutting-edge work going on at Fortune 500 tech companies. It's about 5% of the workload, and it's competitive to get onto these projects. You're competing against PhDs who have been with the company for 10+ years, have major internal accomplishments to their name, and are objectively more qualified than most of us are.

This doesn't mean you shouldn't try. There are other benefits to working at these large companies (high salaries, good benefits, and work that, even if unglamorous, is a part of something successful people care about). I do think, however, that the idea that a 25-year-old can walk into Intel and Oracle and expect to be allocated to cutting-edge work because of raw talent, is patently absurd.

Most large software companies have 6 de facto tiers which may not correspond to job titles: Freshman, Junior, Senior, Lead, Senior Lead, and Fellow. The type of work you get depends largely on this tier:

Freshman: low-impact but "fun" projects, "bait" work designed to ease you into the company. This is what people get straight out of school.

Junior: mid-priority but grungy projects, maintenance of others' architectures. Keep in mind adverse selection: the good architects generally want to assist in the maintenance load for their creations, while the bad ones tend to run like hell.

Senior: mid-priority but more interesting and autonomous projects. Opportunities for junior-level IC (individual contribution) on high-priority projects. This is where most people are expected to plateau.

Lead: leadership roles on low- and mid-priority projects, plus encouragement toward IC on high-priority work. Good point from which to move into middle management if one hits a technical plateau.

Senior Lead: leadership roles on mid- and high-priority projects, plus expectation of IC on high-priority work. Fun but low-priority work is generally not accepted (it won't get you fired, but you'll stop advancing and your peers will think you're wasting your time.) Most SL are trying to get into lower-upper management (yes, large companies have a de facto lower-upper, mid-upper, and upper-upper management) because so few people make it to the next technical tier.

Fellow: complete autonomy, high degree of influence, implicit trust. Ability to flit between high-priority and low-priority projects based on what one wants to do.

To get interesting technical work and enough income to raise children in NYC or SF without an awful commute, you generally need to make it into the Fellow tier, which is much harder than moving into management. At Lead, you have enough autonomy and status to take on whatever project you want, but having real influence (or high income) requires going higher, and going higher requires spending a substantial portion of your time (40+ hpw) on grungy work because that's what Senior Leads do.

The bitchiest tiers are Junior and Senior Lead. Juniors have something to lose (3-4 years' career investment) and are skilled enough to take the worst of the work (middling priority maintenance, both unglamorous and underappreciated). Senior Leads are the one you see on-call at 11:30pm despite having two kids. And if you think working on a mid-priority, grungy project is bad, imagine what it's like to manage that project and have to deal with people quitting, transferring, or getting fired at a rate of 2-3/year.