Rather than be a code monkey for either Microsoft or Google, I would suggest taking the following steps to a highly profitable software engineering career. This is so common in Silicon Valley, particularly in the chip CAD software industry, that it's practically the local pastime.
1.) Get a Master's or (preferably) a Ph.D. in computer science and/or engineering
2.) Make a tiny start-up with a handful of people (people who you'd want to have in your lifeboat if you were a passenger on the Titanic)
3.) Design a brief business plan that centers on being bought out
4.) Develop a piece of software around some interesting idea, perhaps a slightly improved placement heuristic for example
5.) Get bought out
6.) Rinse and repeat 2-6
This may seem outlandish to those not in the know, but it's actually a very common career path for many people in Silicon Valley who make more money in two or three years than the best code monkey makes in 10 years at Microsoft or Google. Importantly, rather than being escorted out of any building by security, you will be handed a check worth a small fortune to give away your start-up's IP.