Google's Tech Stack (6 internal tools revealed)

Ғылым және технология

Google's internal tech stack is mostly public and we talk about 6 of the most influential infrastructure tools used at google, either currently or in the past.
🚀 neetcode.io/ - A better way to prepare for coding interviews
📝 neetcode.io/courses/lessons/d... - KZread Skeleton Design Doc
MongoDB Cheat sheet: neetcode.io/courses/lessons/m...
MongoDB Atlas - tinyurl.com/kae79pew
Tools mentioned are from this Github repo: github.com/jhuangtw/xg2xg
Checkout my second Channel: / @neetcodeio
🥷 Discord: / discord
🧑‍💼 LinkedIn: / navdeep-singh-3aaa14161
🐦 Twitter: / neetcode1
📷 Instagram: / neetcodeio
🎵 TikTok: / neetcode.io
#google #techstack #neetcode

Пікірлер: 177

  • @jamesarthurkimbell
    @jamesarthurkimbell11 ай бұрын

    "No one uses hadoop anymore, we use flume" Why are they all named like Nickelodeon substances

  • @NeetCode

    @NeetCode

    11 ай бұрын

    Wdym, who doesn't want a little 'Goops' in their tech stack?

  • @dave7244

    @dave7244

    11 ай бұрын

    Because many of these people never grew up.

  • @ejaz787

    @ejaz787

    11 ай бұрын

    ​@@dave7244haha what

  • @lucasjames8281

    @lucasjames8281

    11 ай бұрын

    To distract you from the horrendous things the technology will ultimately be used for

  • @dave7244

    @dave7244

    11 ай бұрын

    ​@@ejaz787 I've worked plenty of places where the place is kitted out like college / sixth form common room. Many of the people act like teenagers / children. One woman I worked with like the colour purple so everyone her desk was purple, her phone was purple etc. I recently had a retro where it was "Barbie" themed because that is . It is cringe meant to appease a child like mind.

  • @amitrajitcodes
    @amitrajitcodes11 ай бұрын

    You should start teaching system design ASAP, top notch explaination

  • @hseinb

    @hseinb

    11 ай бұрын

    Wanted to ask for any recommended system design courses. Would definitely enroll in one from NeetCode

  • @sayaksengupta4335

    @sayaksengupta4335

    11 ай бұрын

    Agreed. ❤

  • @parthokr

    @parthokr

    11 ай бұрын

    no i

  • @gustavokmu5515

    @gustavokmu5515

    10 ай бұрын

    he is lol

  • @SASA_maxillo
    @SASA_maxillo11 ай бұрын

    "so what did you understand?" "Nothing :)" 😂😂

  • @vaisakhkm783

    @vaisakhkm783

    11 ай бұрын

    Everything... that i don't see in my lifetime

  • @shashankemani1609
    @shashankemani160911 ай бұрын

    This is just a fantastic explanation of Google's internal implementation. Please start a system design series too that would be great.

  • @XEQUTE

    @XEQUTE

    8 ай бұрын

    thiss

  • @nokiaairtel5311
    @nokiaairtel531111 ай бұрын

    Didn't understand a single thing.. but enjoyed it 😂

  • @patelvivekshirinbhai5241

    @patelvivekshirinbhai5241

    11 ай бұрын

    True 😂

  • @wilbertfundira9407
    @wilbertfundira940711 ай бұрын

    Stubby/RPC looks complicated but it’s really easy and convenient to use

  • @monad_tcp

    @monad_tcp

    11 ай бұрын

    Choosing things due to convenience is not a very engineer way, ironically

  • @ezikhoyo

    @ezikhoyo

    11 ай бұрын

    ​@@monad_tcp Than you are a bad engineer. gRPC and Protobuf has so many advantages above REST, some include version safety (including backwards compatibilty when you e.g. add fields to a message), type safety obviously, being much slimmer in bytes (because it's binary and not sending field names with it like JSON does) but also speed wise, as it's using HTTP2, therefore reusing connections. You open a connection to a gRPC service and then can burst hundreds of requests, without always having to open a new request which takes heaps of time. Apart from that, it also supports things that are hard to impossible with rest, like bidirectional streaming. A rpc defined in the service keyword can either (or both) be set as stream. That means, you could call a gRPC method, say "UpdateStatus", and every time something changes, you send a new message, but it's still the same request. Or you can get auto completion results as you type (every type results in a new message and the server is also streaming and sending requests as fast as it can). Or you have a batch processing scenario where you send mulitple messages, like chunks or files or whatever, and as soon as a message is done processing, you sent one back. But it's not coupled, so one streaming message from the client does not require a 1:1 response, you can also have the client stream however many it wants and when it's done, the server sends one single response, like "ok done, I processed all your 100 messages, bye now". But the video also depicted proto pretty bad. Javascript is probably the worst example for proto, because 1) the lang itself has no type safety and b) (i have never written proto in js, but) it looks kinda weird what he did in the code, like reading the .proto file and going from there.. because usually, in proto, proto compiles classes/objects for whatever language you are targetting. That means, you don't have to write the server and especically not the client yourself, you're only plugging the business logic. For java or go or whatever lang with type safety, proto generates messages in the language of choice and server/client stubs. For server, it basically creates an interface which you have to implement (which would contain all methods like UpdateStatus, etc. which you need to fill your business logic in, like querying from a database and then returning) and then call a method to create a new proto server with this interface. And you're done. Client even simpler, just create new instance of the generated client classes/structs, supply an IP/Port, and you're good to go. The object would then have all methods and handle the HTTP in the background. So no, using REST over gRPC in 2023 is nothing but being lazy. For new systems there is absolutely no excuse. Especically because proto can easily do REST (with grpc-gateway) as well. You can write options in each message (and rpc method) saying "this specific method would be a GET, this a POST and for that message, the name field should be in the path, etc., etc." and then it'll serve a REST API along to use. But gRPC was also made to be used for internal communication between microservices. So not having direct browser support is a feature, so to speak. Again, with grpc-gateway that is not an issue, but still, grpc is not really suited for it, as there is usually no authentication in microservices and opening them up for web is kinda.. not good.

  • @jamesvoynow3559
    @jamesvoynow35599 ай бұрын

    My favorite one of your videos so far - wow great job!

  • @bryan_truong
    @bryan_truong11 ай бұрын

    Great video! I knew gRPC/stubby would be on here, learned some new stuff too. I did a gRPC video for IBM a few years ago and very few people at IBM know about it lol

  • @thetechwindow
    @thetechwindow10 ай бұрын

    Excellent explanation of Google's internal tools and their corresponding Open source equivalents or Competitors. You are too good at teaching these things...Thanks for posting these and please keep posting such interesting stuff..!!

  • @NimTheHuman
    @NimTheHuman10 ай бұрын

    4:58 To answer your question about why Google doesn't migrate to the open-source variants of Google-internal tools (e.g., why Google doesn't migrate from Borg to Kubernetes), I believe it's because: 1. The cost of migration is not worth it - given how much infrastructure and other Google assets (existing SWE knowledge, additional tooling, integrations with other Google-internal tools, etc.) are built on top of the old, Google-internal tool. 2. Open-source tool roadmaps are steered/influenced by other companies (e.g., Google doesn't have 100% control over what new features Kubernetes will support in the coming years). My guess is that 1 is the main reason - since some Google products DO use open-source tools (i.e., some Google products use Kubernetes). (That said, it's hard to make general statements about Google, since Google is so big and each team is actually quite different.) Great video, BTW. I learned a ton!

  • @DavidJohnsonFromSeattle
    @DavidJohnsonFromSeattle11 ай бұрын

    "Spanner is the crackhead database that uses GPS and atomic clocks to literally break CAP theorem." YEAH! It is f'in crazy and hard to use correctly. I've actually never seen an implementation that didn't have contention issues. But there is absolutely nothing that scales better. Everyone doesn't know how lucky they are to not have to use borgcfg. Kubernetes FTW!

  • @DavidJohnsonFromSeattle

    @DavidJohnsonFromSeattle

    11 ай бұрын

    Hahahahaha! You're cute.

  • @user-mr5qr1jf4u
    @user-mr5qr1jf4u11 ай бұрын

    Hi, NeetCode! As I'm going through an interview preparation, I've noticed that it would be very nice if you implement the following feature to your website: when searching a particular task tell a user the topic of this task

  • @satwiktatikonda764
    @satwiktatikonda76411 ай бұрын

    These Time stamps are legendary 😂

  • @sparkle3024

    @sparkle3024

    11 ай бұрын

    💀💀

  • @NeetCode

    @NeetCode

    11 ай бұрын

    lol, this is what 500 lc problems does to a mfer

  • @dylanoh3425
    @dylanoh342511 ай бұрын

    I really love this kind of videos 😊 Please make more of them ❤

  • @Jakefromstatefarm56503
    @Jakefromstatefarm5650310 ай бұрын

    Crazy that I was looking up Sergey Brin today and skimming through his paper he wrote introducing Google and in the same day I find this video simply going to your page because I know how influential you are in tech. I forget why I looked up Sergey but I do remember why I looked up your channel because I have to start practicing for tech interviews like yesterday.

  • @Hal-yc7dc
    @Hal-yc7dc11 ай бұрын

    I loved your leetcode journey - but can you explain your journey of how you're 'fluent' in all these tech stacks? Looks like a huge leap from doing X# of leetcode problems to all these academic tech stacks. I've come across some of these, but I don't think I'd be very good if my day job required me to understand all of this.

  • @friction5001

    @friction5001

    11 ай бұрын

    to become fluent at these techstacks you'll most likely be reading documentations or getting help from seniors at google to guide you

  • @coherentpanda7115

    @coherentpanda7115

    11 ай бұрын

    You likely don't often interact with these special tools at Google except in higher level Senior positions. These tools are already built, likely already integrated in the stack and automated. You may only need to ever interact with one of those tools in your project, and documentation is thorough enough to get you started.

  • @tejeshreddy6252

    @tejeshreddy6252

    11 ай бұрын

    I'm pretty sure he is not fluent in any of these. It's easy to read on these to get a surface level understanding especially after working at Google for a few months. Don't be deceived by the tone, he is not an expert at actual engineering tools.

  • @sohaibeboss
    @sohaibeboss11 ай бұрын

    long time no see, very glad you're back

  • @thecommondude
    @thecommondude11 ай бұрын

    Love the kevin fang style videos. Keep it up!

  • @dellta2357
    @dellta235711 ай бұрын

    Sounds so interesting, thanks a lot for making this!

  • @khalilbessaad5553
    @khalilbessaad555311 ай бұрын

    more design architecture stuff PLEASE!!!

  • @tohlenforst
    @tohlenforst11 ай бұрын

    lmctfy isn't really esoteric, it's just an acronym for "Let Me Contain That For You"

  • @blackboxbs8642
    @blackboxbs864211 ай бұрын

    everything went top of my head

  • @sumitsharma6738

    @sumitsharma6738

    11 ай бұрын

    same

  • @Dominik-K
    @Dominik-K11 ай бұрын

    Great video, liking this a lot

  • @yang5843
    @yang584311 ай бұрын

    I got kubernetes right (pats back) Other than that, i understood nothing in this video. On a serious note, thank you for compressing so much information in this short video.

  • @tyson6036
    @tyson603611 ай бұрын

    How are you doing the transitions between the old/new code?

  • @kalahari8295
    @kalahari829511 ай бұрын

    Shit just increased my love for Backend Engineering. I'm curious to know what role you worked as at Google. Backend Engineer? System design something?

  • @sparkle3024
    @sparkle302411 ай бұрын

    I am very glad you are back

  • @csy897
    @csy89711 ай бұрын

    If you're as rich as google just have everything in house and force your engineers to write every single line of code you want to use so that it gets refactored and maintained properly and so that you don't write code you don't need AND so that you don't have to deal with external deprecation that may pose security issues

  • @joaodiasconde
    @joaodiasconde11 ай бұрын

    Excellent video and info!

  • @GaneshPrasadgnsp
    @GaneshPrasadgnsp10 ай бұрын

    Funny that this video doesn't mention memegen as the top tool built at Google😂

  • @HelplessFangirl
    @HelplessFangirl11 ай бұрын

    One of the few programming channels I trust, I’m so tired of grifters lol

  • @jessepinkman144

    @jessepinkman144

    11 ай бұрын

    Can you share the other channels name? Because I’m new to programming, so I want to follow them too, thank you!

  • @HelplessFangirl

    @HelplessFangirl

    11 ай бұрын

    @@jessepinkman144 Corey Schafer is another good one for Python. I also really like fireship’s quick and dirty explanations. Generally I’m usually very sketchy of people who plaster their face all over their videos or try to sell you something. TechwithTim I think happens to give good advice tho

  • @Speak4Yourself2
    @Speak4Yourself211 ай бұрын

    Excellent video. Thanks a lot!

  • @IvanRandomDude
    @IvanRandomDude11 ай бұрын

    7:32 Why is that?. Vast majority of the courses/tutorials are really FE focused. Even the ones that are supposed to be "Full Stack:" are just using some BaaS to avoid work on the backend.

  • @NeetCode

    @NeetCode

    11 ай бұрын

    My guess is because it's easier for self taught people. Backend isn't crazy either, but it requires a bit more foundational knowledge, so a CS degree helps.

  • @chinmayghule8272
    @chinmayghule827211 ай бұрын

    Most of this just went over my head.

  • @sitikantapanigrahi8621
    @sitikantapanigrahi862111 ай бұрын

    I think many tech companies have their own internal tools for everything. Like in amazon there is a internal tool for every kind of work related to software development.

  • @muraliprasanthd
    @muraliprasanthd4 ай бұрын

    Thank you for this video. Very informative.

  • @maxrush206
    @maxrush20611 ай бұрын

    what anime is that in the beginning?

  • @sepideh_a93
    @sepideh_a9311 ай бұрын

    Love the sense of humor! 😆

  • @viniciusgajo1884
    @viniciusgajo18847 ай бұрын

    Great video!

  • @nmdra
    @nmdra11 ай бұрын

    0:09 Heavenly Delusion Season 01 🌝

  • @nourmikhael7120
    @nourmikhael712011 ай бұрын

    Hello, Google intern here. This feels illegal to watch 😂

  • @asktostranger8296

    @asktostranger8296

    11 ай бұрын

    California?

  • @a55tech

    @a55tech

    11 ай бұрын

    u musta missed the part about it being on github

  • @LinhNguyen-zg9kn

    @LinhNguyen-zg9kn

    11 ай бұрын

    Hello, Google intern here. This feels illegal to watch 😂

  • @sudipkumardey8791

    @sudipkumardey8791

    11 ай бұрын

    Hello, Google User here. This feels meaningless to watch 😂

  • @pirateg3cko
    @pirateg3cko11 ай бұрын

    Love your stuff, neetcode

  • @amritakesh
    @amritakesh11 ай бұрын

    whhhyyy did you change the ui of neetcode?? I loved that it was divided upon topics

  • @NeetCode

    @NeetCode

    11 ай бұрын

    It should still be divided by topics. There's a button in the toolbar of the practice page that lets you toggle from list view to grouped view

  • @tinymurky7329
    @tinymurky732911 ай бұрын

    the king is back in town!

  • @potodds_trading
    @potodds_trading11 ай бұрын

    lol, thought I was in a fireship video for a moment.

  • @ehza

    @ehza

    11 ай бұрын

    Hahaha. Yeah It felt to me like that too! less robotic, and a little slower pace imo

  • @polycrylate

    @polycrylate

    11 ай бұрын

    yeah the thumbnail and title baited me i thought i was clicking on fireship 💀

  • @anirbanc88
    @anirbanc8811 ай бұрын

    this was awesome!

  • @cjjb
    @cjjb11 ай бұрын

    I believe Borg mon (Borgmon?) is another one. The open source equivalent is Prometheus. Don't quote me on that though!

  • @cerio3237
    @cerio323711 ай бұрын

    In what software do you animate your code?

  • @biochem6

    @biochem6

    10 ай бұрын

    MS Paint

  • @ThePacemaker45
    @ThePacemaker4511 ай бұрын

    Lmfao at that thumbnail 😂😂

  • @jhoanmartinezsilva2609
    @jhoanmartinezsilva260911 ай бұрын

    Will be cool about languages

  • @seuntaiwo8735
    @seuntaiwo873511 ай бұрын

    didn't understand a word. Can anyone point to some resources on learning about the above?

  • @agcodes
    @agcodes11 ай бұрын

    Nothing understood, but enjoyed.

  • @zerodev6691
    @zerodev669111 ай бұрын

    beautiful just beautiful, i dont understand it but dammit it is beautiful

  • @BennduR
    @BennduR11 ай бұрын

    Typo @ 2:48 - "Intermadiate" KV PAirs

  • @jamalwest1653
    @jamalwest165311 ай бұрын

    God bless you brother

  • @jotasenator
    @jotasenator11 ай бұрын

    I don t know by what I was hit but I am subscribed and ready to learn-suffer more

  • @FatihAltnok
    @FatihAltnok11 ай бұрын

    I heard borg was also superseded but I don’t remember the name.

  • @PoojaDutt
    @PoojaDutt11 ай бұрын

    Bring on the “ultra secret google tech” 😅 jk, great video!

  • @NeetCode

    @NeetCode

    11 ай бұрын

    Thanks Pooja 🙂

  • @christineeee96
    @christineeee9611 ай бұрын

    aaaah finally neetcode revealing his faceeee , always wondered how u look like...

  • @shahiyankhan
    @shahiyankhan11 ай бұрын

    What your views on flutter

  • @tinymurky7329
    @tinymurky732911 ай бұрын

    My brain is so small I can't understand any of these tools.

  • @namankeshari7332
    @namankeshari733211 ай бұрын

    It's so fun to watch your videos!

  • @mprasanth18
    @mprasanth1811 ай бұрын

    I don’t understand what he explained while explaining about how the data is stored at 6:56. Is everyone else able to understand it that easily?

  • @anicolaspp

    @anicolaspp

    11 ай бұрын

    Yes

  • @varunramurs8715
    @varunramurs871511 ай бұрын

    Heavenly Delusion insert

  • @mattkins99
    @mattkins9911 ай бұрын

    Where are you going next?

  • @anmolsharma4049
    @anmolsharma404911 ай бұрын

    Names sounds like straight out of Rick and morty. Hey morty let's build a new project with good ol Stubby and Goops and add in a bit of hadoop

  • @rahulsahay19
    @rahulsahay1911 ай бұрын

    These stuffs are already known and talked by many already. There is no secret sauce here. But, anyways thanks for summarising these.

  • @abhisheksubba7691
    @abhisheksubba769111 ай бұрын

    So you learned all of these tech at your time in Google? No wonder they hire the very best of engineers.

  • @DavidJohnsonFromSeattle

    @DavidJohnsonFromSeattle

    11 ай бұрын

    They teach pretty much all of them in the first week.

  • @a55tech

    @a55tech

    11 ай бұрын

    pay attention bro as he said he never really learned the build tool scratching the surface is easy but they all have depth that most will never need and thus never reach

  • @tpower1912

    @tpower1912

    11 ай бұрын

    All sounds similar to stuff I use. I'm sure the APIs and details are different but nothing too extreme

  • @jswlprtk
    @jswlprtk11 ай бұрын

    I expected Gira

  • @mltyblnd
    @mltyblnd11 ай бұрын

    source 0:10 ?

  • @thereactdev
    @thereactdev5 ай бұрын

    me watching this in 4 am: "I like your funny words, magic man"

  • @rohitpal7836
    @rohitpal783611 ай бұрын

    For a moment I thought this was Fireship's channel, wait now on his channel I will mistake him with you

  • @hemanth850
    @hemanth85011 ай бұрын

    Here before google takes this down

  • @NeetCode

    @NeetCode

    11 ай бұрын

    Here before google fires me.. oh wait

  • @brogrammer8783

    @brogrammer8783

    11 ай бұрын

    @@NeetCode they been cracking down on leakers, wouldn't be surprised if you got a legal notice email from Chris Rackow

  • @jurgis5190
    @jurgis519011 ай бұрын

    badass video

  • @hellowill
    @hellowill9 ай бұрын

    This is the problem with Google IMO. They don't even use their own technology (I mean the open source/GCP version of it). Unlike Amazon which is literally a customer of AWS. So they don't understand customer pain points.

  • @basilfeitknecht6430
    @basilfeitknecht643011 ай бұрын

    sauce at 00:12?

  • @Yougottacryforthis
    @Yougottacryforthis11 ай бұрын

    distinguished comp sci. undergrad and i understood nothin lmfao

  • @genie9262
    @genie926211 ай бұрын

    Yp ... still a lot to learn😢

  • @sumitsharma6738
    @sumitsharma673811 ай бұрын

    Ultra Secret xD

  • @PavanKumar-bd7he
    @PavanKumar-bd7he11 ай бұрын

    Abseil is not so popular eh?

  • @TheStruders
    @TheStruders11 ай бұрын

    When a culture promotes on delivery instead of results.. what a mess

  • @itznukeey
    @itznukeey11 ай бұрын

    I wonder if they use PyTorch for ml 😂

  • @anicolaspp

    @anicolaspp

    11 ай бұрын

    We do indeed

  • @SASA_maxillo
    @SASA_maxillo11 ай бұрын

    don't tell me if i want to be a backend engineer at google i have to understand all of this?? 😭😭

  • @NeetCode

    @NeetCode

    11 ай бұрын

    Most engineers at google are just updating config files, so don't worry about it dog

  • @mdmurtaza8321

    @mdmurtaza8321

    11 ай бұрын

    @@NeetCode 😀😀

  • @SASA_maxillo

    @SASA_maxillo

    11 ай бұрын

    ​@@NeetCode thank god, thank you for letting me sleep tonight 😂😂

  • @mammocas

    @mammocas

    11 ай бұрын

    @@SASA_maxillo Hope you realize that was a joke, in fact there's a lot more to learn to understand Google's backend :)

  • @graju2000

    @graju2000

    11 ай бұрын

    @@mammocastbh, he isnt joking that is the actual truth.

  • @tacowilco7515
    @tacowilco75158 ай бұрын

    Bazel is a nightmare. You're lucky that you didn't have to use it.

  • @Rajdweep
    @Rajdweep11 ай бұрын

    didn't understand shit, bt it was nice

  • @Babbili
    @Babbili11 ай бұрын

    bro these kinda titles could get you in trouble with them

  • @Decoy22x
    @Decoy22x11 ай бұрын

    Why people always want to join Google then ditch them once they in lol

  • @NeetCode

    @NeetCode

    11 ай бұрын

    Boredom

  • @abaan404
    @abaan40411 ай бұрын

    ok but sauce for the intro?

  • @one_step_sideways

    @one_step_sideways

    11 ай бұрын

    jhuangtw/xg2xg

  • @Ved3sten
    @Ved3sten11 ай бұрын

    You forgot Spanner

  • @acecool1715
    @acecool17158 ай бұрын

    My brain

  • @c0deHD
    @c0deHD11 ай бұрын

    so what's next after quitting google?

  • @kartikeyrana3736
    @kartikeyrana373611 ай бұрын

    i thought you were never gonna return

  • @ashmitsharma9096
    @ashmitsharma909611 ай бұрын

    0:10 sauce ?

  • @that1boii969

    @that1boii969

    11 ай бұрын

    Heavenly Delusion

  • @vaisakhkm783

    @vaisakhkm783

    11 ай бұрын

    @@that1boii969 XD thanks...

  • @jeeeeeb
    @jeeeeeb11 ай бұрын

    Couldn't continue watching this after seeing KZread mentioned as one of the ways google revolutionized the internet.

  • @NeetCode

    @NeetCode

    11 ай бұрын

    While they did aquire KZread, they did so early on. Google is the reason KZread became the juggernaut it is today, especially on the infra side. I don't think that's debatable.

  • @bogdan-ii
    @bogdan-ii11 ай бұрын

    Piper :Waz:

  • @suryaprasath904
    @suryaprasath90411 ай бұрын

  • @hellowill
    @hellowill9 ай бұрын

    The people that came up with this shit are genius (real computer scientists). Us software engineers just copy paste lmao.

  • @alonewolf7682
    @alonewolf768211 ай бұрын

    LOL timestamps

  • @sortof3337
    @sortof333711 ай бұрын

    lol, google has no ideas what developer platform is. :|

  • @datguy4104
    @datguy410411 ай бұрын

    And they do ALL of that to display the same 4-5 websites...

Келесі