Ask HN: What Is the Google 'Software Engineer, Machine Learning' Interview Like? Is it any different from the normal SE interview ? Also how is that role different from normal SE, if at all ? |
Ask HN: What Is the Google 'Software Engineer, Machine Learning' Interview Like? Is it any different from the normal SE interview ? Also how is that role different from normal SE, if at all ? |
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.
> "Engineers are permitted to spend up to 20% of their time working on any project of their choice, without needing approval from their manager or anyone else"
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 :(
So pretty much no difference from a standard Google interview.
You could also consider it a wry social comment on the Rise of the Robots.
(I notice your comment has been downvoted. I will up vote it -- I disagree with it, but it's also reasonable question as questioning the standards and practices of the group are a way to converge on good practice. Every team should be doing that).
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
Don't bring perceptions of joke answers online into your real job interview!
(Google Cloud Employee)
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!
I would encourage OP to ask their recruiter about them, if they think it'd be helpful.
Just looking for clarification because I feel like I should know this. Trying to couch the problem in terms I'm more familiar with.
I think that's what he means. I'm not in machine learning either.
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.
Then I wrap the outer-most closure in an exception that swallows the error, and bid good afternoon.
If you have to study for an interview, the interview is most likely not representative of real work one would find on the job.
Let's face it. "Big Co" interviewing is about passing an arbitrary bar that they have set. It's not representative of the actual work post hire.
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).
Research topics drift over time, but the starting point is still significant.
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.
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....
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).
> 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.
Google's onboarding process is such an enigma to me. I went through a few of the remote interviews for SWE a few years back (I didn't commit to an on-site one in mountain view though). It seemed very odd to me that, near as I could tell, they don't really give an indication about what you would be working on until after you are hired and oriented.
This is way better IMO to the reverse which is applying to ten different interesting positions at another big tech company and having to speak to individual hiring managers for each position.
You are in a special category if all it takes you is a 'few minutes a day reading through some problems'?
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.
We are talking about solid knowledge of algorithms and data structures. If you haven't just gotten an A in that class you will need a while to really hammer it down.
Generalists tend not to live in algorithm and data structure quiz land most days, and it's probably not their strong suit. It's not mine, at least.
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.
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.
While HN isn't perfect, I think overall it's extremely well moderated. Although I have to admit (and I have other accounts which are much older, so I'm not new here), it does seem to be slowly slipping in the wrong direction as it becomes more popular.
The reason I made another account after that is this account specifically seems to have its comments automatically moved down the list. It's easy to find examples where upvoted comments sit below grayed out comments, and oftentimes when I post a new comment it immediately starts at the bottom of the pile.