-What tech skills sets do you have? Do you need a MS/PhD at your level? If not, does it help?
In school we learn the standard algorithms/data structures material, but I want to expand my horizons and begin learning what is applicable to industry.
I am very curious to learn what someone at your level has skills in. I'd like to pick up something not taught in school and begin hacking away on a project that will help me... which leads to my next question
-What are good beginner resources/tutorials you recommend to learn these skill sets? Are there any good projects you can point me to?
-Just curious. Does "550k with a roughly 55/45 equity/cash split" mean you make ~247,000 base + ~302,500 in stock options? I am not too familiar with how compensation is broken down.
The algorithms stuff is useful. More useful than it seems. It comes up often in many engineering jobs. Perhaps more importantly at your stage in life, it will get you an internship.
Do internships. If you miss the one you really want, think hard about why, then try again. Internships are the best place to start into my next piece of advice.
Specialize in something valuable while you're in school or once you start into your career. Jobs I might look for if I were entering the work force today:
- Image processing or other noisy data handling.
- Robotics, especially something requiring interdisciplinary skills like control theory.
- Deep learning techniques are all the rage; you'll be much more useful if you understand how they work and can build novel topologies. Being taken seriously here will likely require a portfolio (maybe graduate work).
- Systems programming is an unending hellscape of horrible problems. Some people seem to enjoy it.
- If you have a knack for it, security. It takes a certain deviousness to think of new ways to misuse things. It takes a wizard to do something like Meltdown and Spectre.
It doesn't really matter what you become a domain expert in as long as it's valuable. It does matter that you don't treat "domain expert" as a fixed target.
In terms of extracurricular work, find an open source project that's got engagement from companies with lots of senior people (Kubernetes would be a good example, it has many very talented people working on it). Fix open bugs. Fix the onboarding experience. Start with trivial things and go from there. Don't get dismayed when you end up with hundreds of review comments, that's how you learn.
Regarding compensation, the split is approximate. The cash is both salary and an annual bonus paid out in January. The stock is actual stock, not options, so every month some number of Google shares show up in my brokerage.
It provides exposure to embedded systems, likely involves caring about communication protocols, sensors, etc. It might involve hard real-time constraints, and if you're really lucky it will also involve dealing with noisy data and maybe even a taste of applied machine learning.
That said, I could believe that all of the fun work is being tackled above the entry level.
At what level do most engineers plateau at Google (meaning most people are unable to go past it)?
Senior (one level below Staff) is deemed "career level," and if you just want to build stuff it's a good place to stop. Staff involves a much more substantial leadership and coordination component, and that requires both the skill and desire to take on that sort of work.
The difference is that senior engineers do something resembling engineering. When not attending meetings, I turn coffee into emails and Google docs.
I like you.
Total 2018 comp will be around 550k with a roughly 55/45 equity/cash split if GOOG shares remain constant. Historically they have typically gone up meaningfully over the course of any given year.
The cash component includes base salary and bonus.