Only slightly related. Since many google employees will be here: How can I plan to land a job with google in 2 years if I have a physics masters and 1.5 years of web development + little exp. with other software stacks? I am trying to figure out a strategy to make it happen and I am willing to do anything, even go back to school.

* How can I get an interview? It seems simply sending my resume through the online portal will not work because I don't have a stellar academic record or much experience.

* How can I figure out what to apply for? I have experience in UI but does google even do that? I want to work at google because I want to work with the people there who are just the smartest people around. But I don't really care what I work on.

* How and how long should I prepare for the interview? I am working through the Cormen's algorithms book but I don't really have a solid CS education. And I hear that they just want you to know everything. So should I just go back to school?

* I have heard that one way is to participate and excel in coding competitions. Should I then focus my entire energy on this front? Or will this be misguided?

Start here: https://github.com/jwasham/coding-interview-university

I wouldn't recommend going back to school. You already have a Master's in Physics, which should give you all the math background you need to understand CS algos. I'd even encourage you to start to "translate" your Physics knowledge into code.

Google, FB, Microsoft, et. al. are more concerned with your ability to explain CS concepts at a whiteboard than your degrees.

Have you considered SpaceX? http://www.spacex.com/careers/list

They are usually very interested in cross discipline candidates.