After last year's 10% rise and bonus-structure change, Google's salary is very high now. Counting salary and bonus, not counting equity-grant, Google perhaps pays the highest in the software industry now.
If counting cash + equity, adjusting for risk, only a few companies (FB etc.) now can beat Google in terms of expected income.
So if your only concern is money, you can still try to see how Google could offer.
Coding questions are often not the toughest interview questions.
Tough questions could be some "soft" non-coding questions like: design questions (how to design a class hierarchy for a blog), behaviour questions (if your boss is wrong, what to do?), experience questions (why did you use tool X in your previous project Y? I think tool Z is better.)
Those questions are tough because your performance on those questions are very subjective. It depends highly on if the interviewer likes you or not.
Coding questions can be tough, but they are much more objective. Google's engineering interview mostly asks coding questions. Questions can be difficult, but at least, if you write great code, you will pass the interview.
In this sense, Google is not a very tough company for job interview.
In general, the degree of interview toughness depends on the job supply/demand ratio. When many people apply for positions at company X, the company has to apply a high-rejection rate, based on whatever (sometime very random) criteria.
To continue coding in your spare time, you must have a real exciting project to work on: to learn a new technology, or to build something you really love. Without that passion, you won't have the extra energy to do that and it won't necessary to be beneficial.
So try follow your passion. If your passion is to write a novel, play guitar, do that. If your passion is to build a new web app, do that. Don't code just for the sake of coding. You cannot lie to yourself.
One issue with "Forward exercise" tough: by forward-exercising and converting to "Restricted Stock Unit", you avoid the high tax risk, but you also need to pay a substantial amount of cash in advance and bet on the future value of the company. Let's say you get $10k options at strike price $20, you basically need to pay $200K in advance to forward exercise. If the company dies in the future without anexit, you basically lose your $200k.
So perhaps the best strategy is to:
1) Forward exercise in several batches as you are gaining confidence of the company (but before the world has much confidence of the company...yet), and try to exercise before the next valuation increase.
2) Delay exercise as late as possible (closer to exit or IPO). But this usually works only if you join a late-stage startup, whose fate is more predictable.
If you are a startup, try issue Restricted Stock Units, rather than Stock Options to poor and hard-working employees. That will make your company more employee-friendly.
If you are looking for a startup to join, prefer those who issue Stock Units (e.g. Facebook, Twitter, which are not necessarily startups anymore though).
The highest-paid programmers usually become rich via:
1) Founding a business or startup.
2) Becoming an early employee of an averagely successful startup, or a per-IPO employee of hugely successful startups (Facebook, Google).
3) Becoming an IT manager or quants/traders at IB or Hedge funds
4) Becoming world-leader in open-source technologies (e.g. Scala, Hadoop, JQuery).
5) Writing books, giving lectures: teaching others how to become great programmers.
The stories of Google, Facebook, and Twitter show that VC has values. We want more investments to start-ups, rather than the opposite. Let the market decide itself: the money will flow where the value is, eventually. I think success is hard either way: faming or mining, it is better than not trying.
This article argues for potential. But for Twitter to be as high-valued as Facebook, it has to prove it can be adopted by average internet users.
Twitter has such a potential, yet Facebook has already been achieved that.
When I recommend Twitter to my friends, it usually goes like this:
Me: Try Twitter, it is interesting.
Friend: What can you get from it?
Me: a lot of interesting updates from your favorite people and topics
Friend: I already have enough internet updates. I shall pass...
The point is that average user only has several web sites on their minds. There much be a good reason for them to use one more web site.
Two major difference of a trading firm from a software firm:
1) Large amount of trading capital is needed to make a sizable profit.
2) Math, finance and trading skills.
A trading firm needs above 2 items in addition to technical skills to succeed. A team of good people with all 3 above items (capital, trading, tech) have a good chance to succeed.
In fact, Citadel (one of the largest quant hedge funds) was started by one person (Ken Griffin) when he was a undergraduate from a Harvard dormitory. It is pretty much a startup success story.
There is a major culture difference: trading is the key activity; coding is only secondary. This may explain why trading firms usually have a typical wall-street tough culture, and don't feel like a typical silicon-valley startup.
Just like a technical firm needs to iterate on the products and infrastructures. A trading firm needs to iterate on the algorithms and infrastructures to stay competitive.
Market changes constantly. Many trading algorithms are essentially market-data driven and need to adapt to the market or lose.
Please read my original comment, which was comparing Google with other software companies.