
Ask HN: What Is the Google 'Software Engineer, Machine Learning' Interview Like? - neuralFatigue
Is it any different from the normal SE interview ? Also how is that role different from normal SE, if at all ?
======
geofft
I attended a Google interview coaching session yesterday (if you get in touch
with a recruiter, they'll send you an link to RSVP for one in session, and I
think they're all recorded). It was led by, if I remember correctly, a fairly
senior manager whose team was working on machine learning for recruiting, so
he had some fairly specific experience with this.

Two things he mentioned that stand out for your question: first, Google
attempts to hire generalists, or at least "fungible specialists". Three of
your five SE interviews will be general CS algorithms questions; the other two
are likely to be specialized if you're interviewing for a specialized role. I
don't think that it's likely to be different from the other "Software
Engineer, Foo" interviews (e.g., "Software Engineer, Front End" or "Software
Engineer, Mobile"), where at least one of the remaining two interviews will
probably be specific to Foo.

Second, he specifically complained about people who show up and say "I want to
do machine learning" and then say they have no machine learning experience /
background. There are apparently a very small number of teams who will train a
bright person how to do ML, but in general you're expected to have some
background with it.

This seems like the sort of thing you should ask your recruiter (after getting
in touch with one) and perhaps ask at a coaching session, if there's one in
your city. I am a little genuinely confused that they seem to think their
interviews need a coaching session, but hey, at least it's progress.

~~~
seanmcdirmid
I wonder why if Google aims to hire generalists, then why do they go after so
many PhDs, who, by definition, are specialists?

~~~
zeroxfe
Just because you specialize in a field doesn't mean that you can't be a good
generalist.

~~~
seanmcdirmid
But it usually means you don't want to be a generalist. Otherwise, why waste 8
years going deep on something?

~~~
geofft
I've heard it said that the point of a Ph.D. is less about the specific thesis
topic than the fact that you _can_ spend 8 years going deep on some arbitrary
thing and come out successful. If someone needs a problem solved that takes 8
years of focus to do, a Ph.D. is a pretty good indicator that you can do it
reliably. If you're the sort of person who enjoys taking (up to) 8 years to
make a contribution to the world, a Ph.D. is a good way to do it, and also to
prove to others you can do it.

Most of my college professors, I believe, had thesis topics that are only
loosely related to their current field of research. To pick a random example,
Ron Rivest's thesis was on searching large files or something, which is
somewhat related to one of his most famous publications (the algorithms
textbook), completely unrelated to the other (the RSA algorithm), and mostly,
I think, unrelated to his current research (secure electronic voting).

~~~
seanmcdirmid
I disagree that is the point of a PhD is some kind of struggle to get through,
I honestly enjoyed mine and don't think the topics are so interchangeable.

Research topics drift over time, but the starting point is still significant.

------
eggie5
I interviewed at all the big bay companies (and the seattle one) for machine
learning earlier this year and few of the questions were classical machine
learning questions. Most of the questions were programming an computation.

~~~
notyourwork
Would love examples if you have any.

~~~
eggie5
Each company does the 5 interview format and some of them, an Apple data
science group for example, ask or a presentation of your research.

Random people from the team, group or larger org will interview you, seemingly
to remove any bias. Consequently, you get a large variety of interviewers w/
different backgrounds. On average I would say only 1 out of 5 five
interviewers had machine learning background and asked those questions. Most
of the interviews were traditional software engineers (or Data Engineers) and
asked the typical "Cracking the coding interview" questions. Sad state of
affairs :(

------
onewland
Not an employee, but I'm pretty sure that the interview is the same for all
engineering roles, unless you're very senior/specialized. I doubt that your
interviewers will even know that you're up for a ML position specifically.

~~~
petters
The interviewer could look at the candidates resume and ask an ML question if
they want to. The type of position is also available to them.

------
cableshaft
They put a bunch of machines in a room and ask you to stand in front of them
and teach them something on the whiteboard.

So pretty much no difference from a standard Google interview.

~~~
praneshp
Good shot, but this doesn't really add anything to the post, does it?

~~~
gberger
It humorously states that it is no different than a standard Google interview,
which does add value to the post.

~~~
cableshaft
More seriously, I was brought in for an iOS app development job interview and
I was asked all algorithm questions and nothing about iOS.

I also tried doing the whiteboard questions in my strongest language at the
time, Objective-C, which in hindsight was a huge mistake (Objective-C is
ridiculously wordy, I kept running out of space on the whiteboard). A couple
of the interviewers said they weren't too familiar with Objective-C either, so
I clearly wasn't getting interviewed by their iOS teams.

If I were to do it again I'd probably use a much more terse language like
Python.

~~~
geofft
Google has apparently very recently rolled out Chromebooks as an alternative
to the whiteboard format. The devices don't compile anything or run test cases
for you, but they've got an editor with syntax highlighting that projects on
the screen. (They reportedly care a bit about clear variable names, which I
_never_ do on a whiteboard for wordiness, so even in Python I'm inclined to
opt for the Chromebook.)

Another thing that surprised me is that the interviewer records your actual
whiteboard code (by transcribing it into their notebook by hand) or your
Chromebook code (by clicking a button), and the hiring committee sees it and
evaluates it. And it seems the hiring committee has the ability to re-evaluate
the result of the interview and second-guess the interviewer in the room, if
they feel that it's necessary. It's entirely possible that your code was seen
by folks who did know Objective-C well, although yeah, it seems like it would
have gotten them more signal if they put people who knew Objective-C in the
room with you....

~~~
cableshaft
That's good to know.

But that wasn't the only reason I wasn't hired, I'm sure. I was only given a
week and a half to prepare, while working a stressful job at the same time,
where the Google recruiter basically gave me ten links (including a long
TopCoder algorithms link I think) and said "Prepare by doing and reading
everything on these links")

During the interview, I struggled with a couple of the problems in particular,
and I was late to the first interview because I under-estimated just how bad
the traffic would be and how lost I'd get on Google's campus.

Google's gotten in touch since, and I basically just have to tell this one
recruiter to set me up for another interview if I wanted one, but I've been
hesitant to go through that again and I'm no longer sure if I want to move out
to SV (I'm from Chicago).

------
aparvinash
I might be wrong but

3 General White board coding rounds by SWEs(with some emphasis on data
processing appropriate data structures, computations etc)

1 or 2 rounds specific to machine learning with some one working in that
research area ( 1 or 2 based on the level you are coming in probably)

But as someone in the comments thread pointed out recruiter would be the best
source

------
praneshp
From what I've seen with friends, the recruiter is very helpful pre-interview,
so might make sense to ask them.

~~~
theDoug
Yes, your recruitment manager is your #1 resource and a coach of sorts.
Absolutely bring up questions with them and make sure you are clear on what
may come up in the interview.

Don't bring perceptions of joke answers online into your real job interview!

(Google Cloud Employee)

~~~
kcorbitt
Eh, when I interviewed my recruiter was definitely friendly and willing to
answer questions, but didn't really have any actionable information about what
to expect in the interview. Answers on Quora/blog posts were actually a lot
more useful. However, later on in the process during team matching and
negotiating an offer the recruiter was much more helpful.

------
bitL
You get one TopCoder problem and the automated DeepCoder robot with q=0 is
your first opponent. Once you beat it, they increase q to 1. You have 6 rounds
with 1 hour lunch break where they tweak DeepCoder to respond to your thinking
better. Once you beat all DeepCoder levels, they hire you and your task is to
improve DeepCoder so that it beats you every single time.

------
acconrad
Given they've acquired Kaggle, I would imagine if you can solve Kaggle
questions you're getting a solid preview of the ML-specific questions they
might ask you in addition to the standard data structure/algo and unix
questions they'll ask you.

------
MarkMMullin
Purely by inference based on ML/MV interactions with various bits of teh
Googz, it will depend very much who is asking these questions - the closer you
get to the tensor processing unit and its enclosing code, the more you're
going to have to really know your stuff - further away in some of the ex-moon
shots struggling to survive, I'd personally be surprised if the staff runs a
reliable enough A* alg in their own heads to actually get to the room you're
seated in - in short, googz is big - closer you get to the core the more hard
core I would expect it to be, conversely as you move to the fringes, well that
might be what you get :-)

------
kelvin0
The ideal scenario:

They give you an assignment to complete at your pace for a few days, and
review your solutions and implementation with a group of your (future?) peers.
This takes the form a small Q&A presentation and allows to assess your
technical and communication skills.

Then, you spend another week as a paid 'freelancer' to do some actual work and
interact with your team. At the end of the week you are assessed by your peers
and are presented with an offer, in case all went 'well'.

The reality is certainly much grimmer (to me anyways).

Good luck!

~~~
marssaxman
_Ideal_ scenario? Are you seriously suggesting that it should be reasonable
for a potential employer to expect you to burn a week's worth of vacation time
on the _possibility_ of going to work for them? No way!

~~~
p1esk
Compared to the current situation, where you have to study for a month to
answer "Cracking the coding interview" questions, yes, this would be a much
better scenario.

~~~
khedoros1
I spend a few minutes a day reading through some problems for a week or two
before an interview that I suspect will be challenging. Less if I've been
interviewing a lot lately. Who the heck studies for a month for an interview??

~~~
kelvin0
I have 3 friends who now work at Google. They've put it in at least a couple
of months each into studying.

You are in a special category if all it takes you is a 'few minutes a day
reading through some problems'?

~~~
khedoros1
I'm exaggerating. My point is that doing some studying spread out over periods
of free time is more practical than using a more concentrated chunk of time
where I already have commitments.

I'd also argue that your friends are in a "special category" of their own, if
they're willing to devote months of study time into getting a specific job.

~~~
p1esk
Getting a job at Google means two major changes for 90% of programmers in US:

1\. Doubling the salary

2\. Working with very smart people on very interesting problems

Each one is worth a couple of months of extra hard work, if you ask me. But if
given a choice of doing a cool project for a week, I'd choose that over
drilling on red-black trees.

~~~
khedoros1
Sure, it's worth the time if it pays off with a decent chance of a job. What
percentage of programmers in the U.S. who aren't already working there have a
decent chance, would you estimate?

~~~
p1esk
A better question: given that it takes a month of preparation, and given my
current experience/knowledge, do I have a decent chance of getting an offer
from Google?

I don't really care what are the chances for an average US programmer. If I
believe I have a decent chance, I will go through it, because it's worth it
for me.

------
jlarocco
Why don't you just ask them?

~~~
JabavuAdams
This is not an unreasonable suggestion. Google seems to have taken the Yegge
stuff and Cracking the Coding Interview to heart and published a lot of info
on the interview experience.

~~~
BrandonY
We have. In addition, some offices offer interview coaching sessions for
candidates who are scheduled for an on-site, which are basically rehashes of
the material we publish plus some Q&A time with an interviewer.

I would encourage OP to ask their recruiter about them, if they think it'd be
helpful.

~~~
longhairedhippy
Purely a personal anecdote and single data point, however I would not
recommend going to the coaching sessions in order to gauge the type/difficulty
of the questions you will be asked in the interview. I've done this before and
it was not representative whatsoever. If anything, it gave me a false sense of
confidence because the questions were so simplistic.

------
Pica_soO
We lost control(reliability of the Algo, understand-ability of the Algo,
reproduce-ability of the Algo) on the P in Input Processing Output. Can you
write Data filters and Automated Tests to Abstract that problem away?

~~~
jj12345
As someone going into the field, can you explain what this means?
Specifically, I'd assume we're trying to isolate some outliers that are
causing a funky bias in the learner. In what way would you automate their
discovery (what does it mean to "discover" the outliers in this scenario?)?

Just looking for clarification because I feel like I should know this. Trying
to couch the problem in terms I'm more familiar with.

~~~
meric
The machine learning generates the algorithm so we don't know what it is. Now
how do we test it.

I think that's what he means. I'm not in machine learning either.

------
brianwawok
i would hope it has a few questions about Machine Learning.

~~~
eggie5
in my experience only 1/5 of the interviews will touch on ML

------
throwaway9475
They ask you to reverse a linked list then politely ask if you have any
questions when you don't do it to their liking.

~~~
cheeze
If you can't study to reverse a linked list efficiently... You're gonna have a
bad time...

I ask 'reverse a linked list' when the interview is going so poorly that there
is no chance the candidate will be able to answer my 'normal' questions.

~~~
pavement
Funny, because whenever I get asked questions like that, I just start nesting
for loops to an arbitrary depth, until that trolls my way out of the
interview.

Then I wrap the outer-most closure in an exception that swallows the error,
and bid good afternoon.

