i've been working at google as a software engineer since last year after i escaped unemployment and so far it's been a little disappointing i've reversed the zero linked list inverted zero binary trees and solved zero dynamic programming problems but at least i get to eat free food every day okay but in seriousness i'm going to give you my first impressions of working at google one from just like the overall employee experience just the culture and stuff like that and also from the technical side of course i'm not gonna leak anything but i think this will
give you a pretty good picture of what engineering is like at google to start with i have to say that the culture is pretty good in terms of just friendliness like people are very nice it's definitely not a toxic place at all i know that's kind of the rumor sometimes about fang companies that yeah you get paid a lot but they're really stressful now google definitely is not the case maybe there are other tech companies that do have a toxic culture with google everybody is super nice and maybe it's like a fake niceness who knows
but it's definitely better than dealing with people who are mean to you in terms of work-life balance i will say that from the rumors that i heard about online haven't been quite true some people make google out to be a place where you can just kind of sit on your hands and just like you know sit at the beach all day not do anything not have to work or anything like that that's definitely not been the case for me i mean there are there is work to be done there are deadlines all that kind of
stuff that said the work life balance is not crazy bad either i think i probably work about 40 to 45 hours a week i think that's probably about average in my team i'm sure there's teams that work a lot less there's probably some teams that work a lot more but i think this is a pretty fair range it's a little bit more than i expected to be working at google which is probably why i don't upload as frequently as i used to but at the same time i'm not going to complain it's a pretty good
job now i'm sure most people have heard about google's free food and yes the free food is pretty good i usually eat breakfast lunch and dinner at the office so i probably save a good amount of money on that which is nice because i'm pretty cheap but i will say that some of the offices are pretty inconsistent with the food like when i went to new york city the food there was tremendous it was like gourmet chefs cooking food and there were so many different options such high quality food but over at the seattle office
where i usually work it's definitely not as good as new york city it's not even half as good usually they have the same thing almost every single day for breakfast it gets kind of old after a while but i'm cheap so i eat it anyway but overall no complaints i mean there's free snacks free drinks and all that stuff so free food is something you're looking forward to i don't think you're gonna be disappointed in terms of the tech this is really the most interesting part for me and maybe for a lot of you especially
the engineers who are watching this google has a ton of internal tools libraries frameworks and all that stuff i don't think there's a single company a single tech company that has the amount of tools that google does and a lot of the tools that first started at google have become open source a lot of really interesting work has gone into distributed systems at google if you've heard of mapreduce and all the things that spun out from that and because of that a lot of the internal tools make things really really easy and that's kind of
the positive side of it there's definitely a negative side of it which i'm gonna mostly talk about now in my opinion there's a lot of abstraction and probably too much abstraction some of the internal tools are nothing like you would see in the open source world sometimes people refer to google as like a tech island because it's so different from everything else that's going on in the tech community in terms of open source and the downside of that is sometimes your prior knowledge about working with tools and frameworks does not apply at all like at
google there's tools that you would never see anywhere else and that makes it hard to work with if something goes wrong or if there's a bug or an issue that you have there's like 20 layers of abstraction and you don't even know what's going on under the hood anymore you don't know is it a bug with the tool that you're using or did you do something wrong it's really hard to figure this out and it makes it even harder that honestly the documentation the internal documentation at google is not amazing at all which was pretty
surprising to me more frequently you're better off just reading the source code you might have heard that google has like a mono repo which basically all the source code for google is in one single repository and it's actually a lot easier if you're having an issue with like a library or something just to read the source code just to see exactly what it's doing than to actually go and read the documentation because it's either out of date or just completely missing there's a few internal tools that google that i've used that i feel like now
i can't live without but at the same time i would probably prefer working at a company that uses like a public cloud or like more open source tools so i'd kind of know what's actually going on under the hood i think sometimes google abstracts a way too much so that you're not really learning what's going on but also if there's an issue the abstraction makes it hard to deal with you might know that google does have its public cloud google cloud platform but in many cases the internal tools that google has are actually superior to
the ones that are on google cloud platform which is also why most teams at google have not been using their public cloud that they sell to other people to actually use internal tools because they're usually more powerful and i guess people are just used to using the internal tools that's different than what amazon does at least from what i've heard most of the time at amazon you're actually using aws you're not using just a random internal tool but there's definitely trade-offs like one of the good things is that sometimes design questions are completely taken care
of like very few times are people at google asking oh what database should i use how should i design the database you know how should i scale it blah blah blah because google has a database called spanner which pretty much breaks cap theorem and it's pretty much the go-to database like do i need a scalable database that's consistent and highly available well let me just use spanner like it's not even a question people are just like okay just throw that in spanner who cares it takes care of like 99 of problems that you're ever gonna
need and the best way i can describe the internal tools the abstraction and the unintuitiveness that kind of comes with it sometimes is probably with an analogy you might already have some concepts of programming like for example writing functions right you can write a function then you can reuse that function by calling it in many different places sometimes there's internal tools at google that feel very different from anything you've used before it feels like i'm programming with a bag of m ms sometimes like okay i throw a bunch of m ms on a table i'm
you know doing something with them and something breaks for some reason and then i take the problem to a senior engineer i show them okay what am i doing wrong can you help me out here and then let's say they point to one of the brown m ms and say hey hey that's not an m m that's a reese's pieces that's a classic mistake to make and i'm just sitting there like okay i guess i wasn't supposed to do that like i don't even know what i'm doing anymore this doesn't even feel like programming that
i'm used to and that's kind of what it's like you really have to shift your mindset to do things like the google way there's a lot of like abstractions and you're not dealing with stuff that you're used to dealing with you're instead dealing with those google created abstractions which are meant to be helpful and usually they are but sometimes they just make things a lot more difficult so in case i sounded negative in this video i do want to say i can't imagine a corporate job being much better than working at google it really has
been an incredible experience so far i'm super grateful every day i wake up and i feel like i don't deserve to have such a good job i'm really enjoying it so far i wish i had more time to do youtube but i do still have a few tricks up my sleeve so please stay tuned we have some new stuff coming up not only on the youtube channel but also on neatcode.io so definitely stay tuned if you found this helpful please like and subscribe it really supports the channel a lot and hopefully i'll see you pretty
soon thanks for watching