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.