My brother hires for a consulting firm and he was talking about how there really is a shortage of talent out there. That's true, but in an earlier era, companies would hire a bunch of people out of college and spend resources training them. I know there are a lot of intelligent people out there who would be more than capable of performing if the entry bar wasn't set so high. Unfortunately, I guess that model doesn't work in the era of job hopping.
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 along who was willing to take at or below market rate.
It's so many distributed databases around there, no one is better than one good PostgreSQL for the majority of uses cases.
Actually, I'd probably do the same.
Huh? Google thinks it's valuable for their SREs to be hand-writing databases in place of industry standards? SREs specifically?
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 question I had.
Edit: Note that there were SRE's working on these things as well, infrastructure teams are often mixes of SWE's and SRE's and their roles overlap somewhat, sometimes SRE's builds entire things themselves because they understand the production environment better.
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)
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.
The interviewer probably saw my use of technology as a cop-out and wanted to challenge it. When I told him why I chose it he probably just took it as unwillingness to change my position.
It is very possible that I poorly communicated the fact that my position was completely mutable.
EDIT: the magic datacenter was the interviewer removing that as a constraint. I did not indicate that _I_ had a magic datacenter and I kept challenging the limits of networking, which was handwaved away.
Also, I heard that I have only two remaining attempts of on-site at Google
LOL WAT.
This is a good enough reason for me to stay away tbh. I did not hear this from my recruiter.
The first interview put me in contact with a recruiter who would basically be my guide throughout the process, at first he asked me some basic questions to feel out where I was weak and then told me to prepare those weaknesses for the next round.
The next round was 2 phone interviews, lasting about an hour each and over different days, one focused on my programming skills (of which, I have little because sysadmins don't typically do anything relating to data structures) and the second one was surrounding linux internals and debugging (which I was very strong on).
I spent roughly 2 working days worth of time preparing for them.
Preparing for the on-site was pleasant, I was put in touch with another google recruiter who ensured I knew where I was going and what I was doing, they told me that I'd be there the whole day and while they couldn't tell me what I would be asked/who I would meet/what to prepare; they gave me an approximation of the _kind_ of questions, very broadly.
I spent roughly 18 working days preparing in my weak areas, including leetcode/data structures and reading comp-sci papers (paxos and ilk).
On the day, I went through about 5, 1-hour long interviews that focused on various aspects of SRE (one of them being 'googliness'), some were about distributed systems (where the interviewer got hung up on the fact that I said I would use postgres instead of making my own database) and others were heavily programmer focused (linux internals was more about knowing the implementation of 'ls', scripting was all about the kinds of questions you get on leetcode).
I'm not going to lie, it was gruelling, and I'm typically pretty comfortable interviewing;
I thought I'd be fine with these interviews because I'm considered to be "shit hot" in sysadmin/writing glue by my peers, but I guess not, as I'm not a Google-SRE. :)
(sidenote: everything in TFA rings true, including the tips, google recruiters are quite transparent about your process. But they also said that the last stage is not the interview, it's roughly 5 hiring committees that are looking at your application "package" through different lenses)