Live data from Hacker News

Google interviewing process for software developer role in 2020

habr.com

111–120 of 422 posts

Re: Google interviewing process for software developer role in 2020

#111
post #3

I'd be curious to know if this is typical. As someone that's never interviewed at Google but idly wondered at moments if I'd ever work there this sounds hellish. Not necessarily the exercises themselves (although they seem to have nothing to do with what any developer does day-to-day), but the sheer number of them and the amount of preparation required. I already have a full time job, I don't want to take on another…

All I can figure is that's by design. The process selects for some combination of IQ and how bad you want it, basically. If you can't or don't want to put in 10-15hrs a week prepping, for a few months, on top of your actual job (god knows nothing I actually do at work as a programmer helps me be better prepared for this kind of shit), to then subject yourself to a crushing marathon of a day, they don't want you. They…

Between everything I've read about it and my own experiences, I get the sense that Google's interview process is by design a mirror of grad school. If you aren't willing to spend weeks to months prepping for the test so you can impress a committee (that you will hear from three months later), you just don't want it enough.

I'm not sure this is a great way to hire engineers, but at the same time I'm sure it feels pretty familiar to people fresh from grad school.

Re: Google interviewing process for software developer role in 2020

#112

Earlier quoted context omitted.

To be really good at those interviews you have to practice to be really good at those interviews. It takes a tremendous amount of time to get good enough that you can't possibly fail (especially for people like me, who are incapable of thinking clearly when they're asked to perform in front of others). My brother hires for a consulting firm and he was talking about how there really is a shortage of talent out there.…

> My brother hires for a consulting firm and he was talking about how there really is a shortage of talent out there. Exceptional talent is rare. There's only a shortage if you're unreasonable. Lots of employers are some combination of apathetic, unreasonable, or plain ol' lazy. It costs them nothing to fish for talent for 6-12 months, accept hundreds of applications, and then complain when a unicorn didn't come alon…

On the contrary that sounds quite expensive

Re: Google interviewing process for software developer role in 2020

#113
Google just loves to waste your time. A close friend of mine interviewed there, was flown out to Mountain View, and one interviewer showed up to the interview over 30 minutes late, with only about 5-10 minutes to spare. He didn't get the job.

Seems like a lot of engineers there get the job after many months of (unpaid) preparation and years of interviewing many times. I can understand doing this for one's dream job, but my issue with the whole thing is that you don't even know what group you'll be placed in, which is in stark contrast with the interviews at most other companies. I'm not spending months practicing Leetcode questions and going through some hazing interview process only to potentially be placed in some boring group working on something super specific and uninteresting.

Re: Google interviewing process for software developer role in 2020

#114
post #86

Earlier quoted context omitted.

I would never dare to suggest writing a new database in a professional context, even less during an interview. Probably as a joke at the coffee machine because it's ridiculous but otherwise no. It's so many distributed databases around there, no one is better than one good PostgreSQL for the majority of uses cases.

Google's requirements differ. Also if the interview question was about distributed systems, "I'll just use Postgres" is not super constructive

Google has good in-house database software that fit their requirements. I wouldn't say that I can do better in an interview.

Re: Google interviewing process for software developer role in 2020

#115
post #105

Earlier quoted context omitted.

Postgres was just one part; I was describing a sharding solution that was using Postgres as long term storage underneath with a memory-based distributed message queue for ingestion and sharded cache layer for egress. Sure, PostgreSQL scales relatively nicely on single nodes but I chose it because it has a write-ahead log, strong transaction isolation and b-tree indexing, which would have been useful given the questio…

Did you put all the data in a single postgres? Since a million queries per second is more than postgres can handle. And if you don't put them all in one database then what is the point of postgres features like transactions or indexing? At least on the teams I saw people did these things in code, or they used a solution some other engineer at Google had written, I don't think there are any public databases which hand…

No I did not put all my data into a single postgres, even if the TX/s would have scaled (they wouldn't have) the data volume would have exceeded the limits of what a single server can provide.

My solution was dependent on splitting the data into sub-categories; for the bulk of the data I was going to use idempotent sharding based on a unique key, I said I would have implemented it as a SHA1 of a userID modulus'd by 512, with 512 being the upper bound on the number of shards/machines, (or a multiple of that; at the scale I was given it would have worked).

I then went into detail about how much a single machine would need to ingest and my own experience with postgresql performance, I also spoke at length about what the maximum theoretical volume of data was for a single DC (however, that was "not important" the recruiter indicated I had a magic datacenter that did not have problems with cross-connecting many, many hundreds of GB/s in a mesh).

Frankly, I already build global solutions in my day job, sure they're not google scale, but they're built to order, quite cost effective and what's more important: they function very well and are engineered to the point where we know beyond reasonable doubt that they will perform as needed on day 1. (I work with always-online video games, the first day is the worst day, scalability wise)

Re: Google interviewing process for software developer role in 2020

#116
post #108

Earlier quoted context omitted.

> will make you a millionare in a few years if you play it right. This is a pretty steep exaggeration.

No, it really isn't: https://danluu.com/startup-tradeoffs/

Ok let's say you make $300k/yr at a FAANG. Lose 40% to taxes and you're looking at $180k/yr.

Living in SV your expenses will roughly be at least $45k/yr.

So you save $135k/yr (180 - 45). That's great, but a far cry from being a millionaire in just a few years.

Of course as you get promoted your comp increases, hitting $500k gross at L5, but that takes more than a couple years to achieve.

Re: Google interviewing process for software developer role in 2020

#117
post #108

Earlier quoted context omitted.

No, it really isn't: https://danluu.com/startup-tradeoffs/

Ok let's say you make $300k/yr at a FAANG. Lose 40% to taxes and you're looking at $180k/yr. Living in SV your expenses will roughly be at least $45k/yr. So you save $135k/yr (180 - 45). That's great, but a far cry from being a millionaire in just a few years. Of course as you get promoted your comp increases, hitting $500k gross at L5, but that takes more than a couple years to achieve.

Yes, hence why I used "few" - doable in 7-10 years timeframe. Still something unthinkable for most professions.

Re: Google interviewing process for software developer role in 2020

#118
post #85

Earlier quoted context omitted.

I'm not aware of another industry that has interviews as awful as FAANG and their copycats. There may be something out there but I've not seen it. Try describing what they do to non-tech folks and watch the reactions. Incredulity and/or astonishment are typical, in my experience. But yes we do have tons of jobs and IME most places don't do this crap. So that's nice, compared with how other workers have it. Though you…

That's because other well paid industries have YEARS of this - called "college", "internships" and several other terms where you go through months and months of grueling hazing rituals to have a far shot of anything remotely as well paid as a FAANG job. Get some perspective, c'mon :(

> Get some perspective, c'mon :(

This isn't very compelling. Qualifications are a different bar. Perspective indeed.

Re: Google interviewing process for software developer role in 2020

#119

Bias alert: I work for Google. I enjoyed the write-up but I have a small correction to make about "Frustrating moment #2. You can pass every interview with A grades and still not get a job, because a senior Googler decides that you're the wrong person to be hired." The author is referring to hiring committees, whose job it is to take the feedback from every interview and make a hire/no-hire decision based on the blen…

I greatly enjoy the absurdity of this: Xoogler rejected own packet (while at msft, presumably)

https://news.ycombinator.com/item?id=22345234

Re: Google interviewing process for software developer role in 2020

#120
post #115

Earlier quoted context omitted.

Did you put all the data in a single postgres? Since a million queries per second is more than postgres can handle. And if you don't put them all in one database then what is the point of postgres features like transactions or indexing? At least on the teams I saw people did these things in code, or they used a solution some other engineer at Google had written, I don't think there are any public databases which hand…

No I did not put all my data into a single postgres, even if the TX/s would have scaled (they wouldn't have) the data volume would have exceeded the limits of what a single server can provide. My solution was dependent on splitting the data into sub-categories; for the bulk of the data I was going to use idempotent sharding based on a unique key, I said I would have implemented it as a SHA1 of a userID modulus'd by 5…

> the recruiter indicated I had a magic datacenter that did not have problems with cross-connecting many, many hundreds of GB/s in a mesh

Well, then this is different than your original description, I'd need to get more details about the problem but he is right that machine to machine connections in a data center doesn't scale very well. This might not be a problem at the scales you are used to but it is a problem at Google scale. This is a very common problem that is not obvious at first when you work with data centers, I guess he just assumed that you would know this. Knowing your background you would probably adapt to it quickly on the job, but I guess they just asked the same question to every experienced SRE they got?

Edit: Another problem with your solution is that you used a static sharding strategy and didn't consider that increasing demand in the future would force you to reshard the database. Downtime might be accepted in the video game industry, and there you most likely wont even get much more demand than day 1, but using sharding strategies which lets you reshard in real time without downtime is more or less a must on the projects I worked on.

Post reply on HN