Started my "dream job" at Google in January and fought through a very steep learning curve towards being a fullstack engineer there. I learned our team's frontend in AngularJS (despite no frontend experience nor any idea how different JS is written inside of Google), webserver in Java, backend in C++ and data pipeline in Go (with tangential previous experience in JS & Java and none in the other two). Add on that the…
As someone applying for a front-end position and made it all the way to the on-site, doing the on-site interview soon. Can you explain to me what you mean with js being "so different" inside of Google? Also that sounds like you learned A LOT. How does that affect your work/life balance?
- Strongly typed everything. I get it now, I really do, but I was resistant to compiled and strongly typed Javascript at first and didn't like writing JSDOCs all the time, I'd say 30-40% of my development / code review time came from those issues. - goog.struct.* instead of . There are a ton of internal libraries that improve on basic JS objects and have different APIs than the standard library. So you get used to using the internal version of Map/Array/Set etc., plus a lot of binding, etc. Basically the whole "Stack Overflow the question and adapt the answer" strategy doesn't work quite as well inside here. There's also a fragmentation of front end frameworks, so there isn't a lot of deep documentation or examples in any given framework. - Readability. Once you've gotten code review from your team members someone with "readability" has to approve your code as conforming to the Google style guide. If no one on your team has readability in the language you are working in (which happens) then you get bogged down in lengthy back and forths which can be stressful when you're under shipping deadlines. Definitely one of my least favorite parts since I prefer to hack a solution together and refine it afterwards.
The interview process is really bad at getting front end engineers, in my opinion. I think the best way to get hired as a front end engineer is to be really good at algorithms and data structures. I was essentially a data engineer on my last 3 jobs and picked all of the front end stuff up on the fly. It would have been much easier if I had known any framework before I came here and hit the ground running.
I think it was a lot to learn but it seems to be expected around here. Work/life balance has been a big struggle with me this year, the perks are insane and it makes it really easy to stay late. I think if you really want to get ahead and climb the ladder at Google you'd better be young, single, and unattached.
Best of luck on your interview, it's a wonderful and strange place.