I interviewed at Google once. The interview process was…grueling in more ways than one. This was at their Manhattan office and five years ago; I don’t know if it’s different elsewhere or now.
The interview was all day, which I suppose is fine, but tiring. The grueling part was the endless stream of “gotcha” questions. They seem to be big fans of letting you talk for as long as you will, but it got irritating after a while. For example:
Interviewer: How would you measure the latency between two systems?
Me: I’m assuming you know that I know what ping is, so I’m guessing you want more accuracy?
Me: Well, you could take lots of pings over an interval and then average the response times, or do other analysis if you’re worried about peaks or something. That would work for the most part, leaving only system-introduced latency.
I: How would I detect that, the system-introduced latency?
M: Well, you’d have to instrument your tools, and eventually even the kernel and the network driver and all sorts of stuff that probably isn’t worth it, since the statistical method above would catch essentially everything you’d want to know.
fifteen more minutes of asking me to explain in further and further detail
I: The answer, by the way, was “ping”.
Imagine that for eight hours. Another one was me troubleshooting why Linux wouldn’t let me umount a disk (in conversation, not sitting in front of a machine). The obvious ones (file open, etc) were fine, but eventually it got to “/bin is its own mount on this external drive so it loads but then fails because the umount binary itself is open” which…again is fine, but “cute” riddles get really tiresome after a while.
Again that would’ve been fine, but for the position in question, they couldn’t even really tell me how it would be interesting. “It’s more than just regular coding!” “How?” “It just…is.” It just was, apparently, because it’s Google. That’s great, but if you can’t actually give me an example, you’re not helping your case.
There was also the not-so-subtle evidence that they wanted you at Google’s office for the vast majority of your waking life. On-site gym, dry cleaning, etc, etc. That’s all great, but I can get my work done in eight hours. I got the impression there would be immense pressure to be there for more than eight hours a day.
At the end of the day, the money they offered was great but, given the cost of living difference between NYC and here, it would have ended up being a pay cut. That plus the…arrogance isn’t really the right word, but I can’t think of a better one for “you should want to work here because of who we are, regardless of what the job is”…was enough for me to politely decline.
To quote a friend who worked there: “they serve breakfast, lunch and dinner and look at you weird if you prefer to take one of those at home with your family instead”.
On the other hand, he really enjoyed the job and wanted to convince me to work there. They were also incredibly good sports when I passed on an offer by them for an internship because I didn’t want to work at their Munich office, but go abroad instead.
But Munich is abroad. ;)
You’re right, that’s true for any place outside the city boundary. I wanted do work on my french instead of learning bavarian and SAP offering half a year on the Cote d'Azur was just perfect for that :).
Truth be told, nobody really speaks bavarian in Munich, it’s not a good place to go to learn it.
i think that depends a lot on your particular team’s culture. i’ve been pretty lucky in that i’ve never felt the slightest pressure to work late hours; in fact my boss has occasionally offered to reschedule an evening meeting so that i can catch my regular bus and not have to wait for the next one. it helps that a lot of us are on the older side, and several have kids they want to go home to.
Yeah, in any larger corporation, you will find it like this and like that. As I said, that person was very happy with the company.
I can also imagine that the offers the company makes there interact badly with Germanys “presence culture”, where the numbers you clock in the office are the most important performance number.
My team just doesn’t have meetings after 5. How often does yours?
never, but we occasionally have informal (typically 2-5 person) meetings at 4:30
How did they explain that?
Your memory must be failing you at least somewhat; the Google office in NYC didn’t even have a gym until last year and it still doesn’t have dry-cleaning ;-p
To be fair, I only saw the cafeteria (which was nice), and just added in the gym/dry-cleaning thing because I thought they would have it since they talk about it at the SF offices. I got caught up in the moment of complaining. :)
Apparently my google recruiter profile has me pigeon holed as devops due to my openbsd association. Which is kind of funny, because I’m uniquely unsuited for the position. I hand edit all configs, no tooling, no control. Nevertheless, every email I get is “personalized” to mention my skills in this area.
OpenBSD? Oh, you mean that firewall OS!
No, you mean the desktop OS 
I phone interviewed for TSE at Google a couple of weeks ago.
They setup TSE interviews with Hangouts. It doesn’t work, because the invitation they sent is unique to an email address an account for which doesn’t exist. At the time they were setting it up, the “requirements” webpage itself didn’t work, either; but my system doesn’t meet their requirements either way. I informed the recruiter; she informed me that Hangouts is mandatory for TSE; we both ignored our communication on the matter.
They sent you a Google Drive link for a Google Doc. It, likewise, doesn’t work for the same reasons of a missing account. (Most departments make a scratch-pad link accessible regardless of an auth account to avoid this exact sort of bullshit, but not Google’s TSE!) Interviewer tries changing permissions to make it open for everyone; apparently, that only works if you have the Google Doc link, not if the link is from Google Drive — you still get no access if the link you see is a Google Drive one, whereas the interviewer has a Google Doc link. E.g., we had to reshare the link on the proper service during the interview. (Permissions couldn’t be changed because the recruiter setting it up went on a holiday; and, apparently, the other recruiters don’t have the permissions to fix the permission.)
Writing code in Google Docs, where none of the keyboard buttons work properly (couldn’t go to the start of the line etc), and all code gets capitalised as if it’s an English sentence… Is horribly unsatisfying.
I’m expecting a rejection phone call tomorrow, probably because I am a “jerk” as I didn’t feel like playing their politics and registering my preferred email address as a new Google Account, nor going out of my way to have Hangouts ready on my own dime, especially considering that one of my prior jobs included building an XMPP server, and the proprietary Hangouts killing XMPP isn’t something I’m too happy about.
Sure, it’s TSE, but the whole process felt like they were more interested in selling me their half-baked products with a NIH attitude than hiring me to provide technical solutions for their customers (and, yes, on a completely separate set of products, I gather).
What is a TSE here? I tried googling but found nothing related
I think it’s Technical Solutions Engineer or Test Support Engineer.
I’m probably unusual in that I don’t mind hard technical interviews. I hate take-home exercises because they’re a waste of time for the most part– you’re not going to jump from SWE 3 to Principal Architect because you spend 8 hours to ace a code test; you can only go down– but I enjoy challenging math/CS problems.
What I find worth noting, in a bad way, is that very few of these jobs actually require those cognitive skills. If you’re going to fill a role on AlphaGo or Facebook’s core AI group, then a hard interview is in order. But setting the interview difficulty at 7-8+, when most of what you need to fill is 4-6 work, just screws everyone. The people who would be happy to do that work can’t get in, and the people who pass the interview are severely over-leveled and get bored.
I think the dark truth behind it is that there’s a lot of nostalgia in the software industry. There may be a lot of flunkies for whom business-driven development and Scrum are appropriate, but there are also a lot of us who were academic high-achievers lured in by a (transient?) salary swell and Paul Graham’s eloquent (if bloviating) Make Startups Great Again essays in the mid-2000s. Or, to put it more bluntly, many of us are bitter ex-academics who never believed that intellectual atrophy could set in so fast, and are disgusted by our having become just corporate managers/peons instead of what we thought we could become while in school.
Because of this nostalgia, there’s a sense that many of us have that “if only” we could bring on a few really smart people (the 7-8+) we’d have enough presence in “our” tribe that we could accomplish something worth talking about. I’m guilty of this, too. I’ve fought, quixotically and ultimately unsuccessfully, for technical excellence in companies that (now that I’m older) I’m embarrassed to have worked for. Denial is a powerful force, so people who end up in Corporate refuse to admit that they’ve permanently left that idealized world– of course, in practice, that world has its own problems– of intellectual rigor and honesty. So they try to hire ex-academics when their employers, if they looked honestly at the work that needed to be done, would just want mid-grade meat (Scrum programmers) for the grinder.
This gets worse in large companies with strong reputations, because those companies develop an ability to believe their own bullshit and this makes it even easier for people to self-deceive about the quality of people needed to fill positions.
One thing that has happened at some point between the 80-90s and today is that 95% of the research level problems in programming are effectively solved for the majority of use cases that are interesting from a business standpoint. The fact that HashTables and databases (usually backed by B-Trees) have become so ubiquitous and relatively easy to apply across different domains is evidence of this. How many programmers even have to think of linked lists, or making sure trees are balanced, or are required to meet FPS budgets?
This isn’t to say that programming isn’t difficult work, or that there aren’t core improvements to be made and to keep making. But few of those improvements are going to change the fundamental nature of most business software development, which I’ve personally joked can be conceptually like plumbing. Today we have enough memory and I/O that caching and job queues allow languages like Ruby and Python to be competitive for websites, which shift the focus away from the academic algorithms heavy developments of yore, or the highly constrained environments where getting anything done was impressive.
There is still challenging programming being done, in infrastructure projects like databases, web browsers, and video game engines, and in all the distributed systems that have been falling out of Google in some fashion (MapReduce -> Spark, Spanner -> CockroachDB), but it is never in the majority.
John Cook has pointed out that good organizational skills are more important than being an algorithms wizard for the majority of work, and I think this only gets truer over time. Outside of reinventing the wheel, most programming is usually fairly mundane after a few weeks into a project. Not to say that such work is bad, just that programmers are more often employed on work that is closer to either car maintenance or doctoral GP type work than the academic or “revolutionary” work we’d like to be doing at times. (Not to say that such work is bad or unnecessary, though lack of skill can make it so), but I wonder how long it will take for the realization of mundanity to become more acknowledged in the workforce.
Today we have enough memory and I/O that caching and job queues allow languages like Ruby and Python to be competitive for websites, which shift the focus away from the academic algorithms heavy developments of yore, or the highly constrained environments where getting anything done was impressive.
I still feel like we’re operating at a small percentage of our potential, as an industry. We can improve quality and aesthetics of code, or we can increase automation, or we can make better products than the current slopware that is the norm in this industry. We don’t all have to be doing “academic algorithms”. Some of us want to be doing AI, some want to be doing graphics, others want to work on embedded systems, and some want to be improving languages and programmer tools. That’s a good thing, that we all want different things.
None of us should have to deal with business-driven development and “complete these user stories by Friday”, though. Not only is that stuff insulting and boring, but it’s not even rewarded because you’re just doing work that a trained monkey can do and the only way to distinguish yourself is to do it faster (and sloppier).
I wonder how long it will take for the realization of mundanity to become more acknowledged in the workforce.
The bad guys have already figured it out. That’s why they’re replacing anyone talented or experienced with inexperienced, mediocre “Agile Scrum” programmers.
What we (“we” meaning private-sector programmers, although I’m increasingly aware that I won’t be one for much longer if I have anything to do with it) need to do is recognize it on our end and organize. We should be willing to do mundane line-of-business work, if adequately compensated for the lack of career progress and the general awfulness of the work. But we need to organize and we need to drive out the horde of mediocre replacements who can just-barely-and-in-fact-not-really do the work.
Right now, we have a world in which software gets built extremely poorly, but the people at managerial levels know that if they have half-decent social skills, they’ll be promoted away from whatever they build before it starts falling apart. Meanwhile, the job of a programmer is mostly correcting for the fact that things weren’t done properly in the first place, not because of novelty (which can be archeologically interesting, at least) but because of management-level negligence and implementation-level mediocrity.
job is the wrong tab for this - use culture or practices
When I get interviewed on algorithms trivia I just interpret it as “we have no skill or knowledge requirements for this position but will never admit that.”
At my last job I got the standard languages/algorithms trick spotting questions in my interviews. They were “hard” because I would have failed if I didn’t spot the solutions fast enough or if I forgot my first year computer science material. The first thing I did after I got hired was attend training on standard libraries for three months, and then after that I got to write python and send GitHub enterprise support tickets, which made me wonder why they bothered interviewing me at all.
I asked Google to put me on their ‘do not contact list’ after the third email hunting for fresh meat for their SRE canning factory.
Recently, five years later, they contacted me but for a managerial role instead so I guess it is a different set of recruiters.
Anyway, now back in the ‘do not contact’s list. They honour it well and I do have to give them the thumbs up for having it in the first place.
Thanks for your email. I’m very interested indeed. I have nothing against an interview. However, there is one condition: I have to be interviewed by the person I will be working for. By my future direct manager.
The recruiter who gets this reply never gets back to me.
I’m not surprised. You’re dictating to them how you want the interview process should work. The majority of companies have a definitive interview process for vetting candidates that is tailored for their business, why would you expect them to make an exception just for you?
That being said, a good recruiter will send you a positive response highlighting at what part of the process you will get to meet with the hiring manager and clarify why they follow a specific process.
why would you expect them to make an exception just for you?
I understand that most companies have a normal process but they are approaching him saying that they need him. If he truly has some skill or talent that the company needs to survive, he has the upper hand. He would hold the fate of the company in his hand and they would bend over backwards to get him aboard. His email response is just a litmus test.
They doesn’t expect an exception. It’s merely the only acceptable terms under which they’ll interview.