- get past resume screening to the phone screen
- do well in your interviews
The first part can be done in a bunch of ways, including having interesting projects on your resume or getting a referred by a current employee.
The second question is largely things that are covered by the book "Cracking the Coding Interview". People report that studying this book and related online resources for a month or so is enough to do well in the interview process.
I don't really know how they review resumes, but you should apply to some jobs to see if you can get a phone interview; if you do, then all you really need is to do well in your interviews.
Also, if you are not getting through at the resume screening stage, but feel like you can crack the interviews, consider using a middleman like interviewing.io or TripleByte. Google doesn't seem to use these, but FB does, and a bunch of smaller high profile companies do, so that may be a useful path.
Also, consider that companies can be pretty stupid about their recruiting (because they do get so many resumes) and focus on things like the companies you've worked at before, so it may be useful to work at another respected company for a little bit and then try again.
If getting interviews isn't an issue: study up on CTCI, and depending on seniority "design interview" questions (which tend to be, how well do you know software end-to-end).
Also, don't get hung up on these companies, they're certainly good places to work, but they're not the only good places to work.