News for hackers. Stuff that matters.
Re:Acing the technical interview by bogomipz on Thursday March 16, 2017 @03:00PM (#13887976)
>"and seem to have followed the type of curated success-seeking golden path that used to be reserved for finance."

I am curious what you meant by this. Would you mind elaborating?

Re:Acing the technical interview by majormajor on Thursday March 16, 2017 @03:48PM (#13888514)
For getting a job at Google/Facebook/Amazon/X cool startup, it's a lot more important to do some narrow-minded rote-memorization of algorithms and data structures and hone the skills talked about in a small set of books like Cracking the Coding Interview than to learn something really interesting, or become good at a certain thing, or build some cool shit.

Most interviewers aren't really interested in figuring out "is it worthwhile that you built this thing / did you do it right / why do you think this was something worth learning?" when it's so much easier to evaluate your whiteboard code on a narrow problem against some ideal standard solution.

You can tell them about how you were able to learn enough about a particular database in a couple weeks to be able to cut 90% of the runtime out of a hot query in your first few months at a job, since that was an area that wasn't scaling well and it was something your boss asked if you could take a look at, and they'll be like "ok that's nice, now implement a trie." What's the point of even having experience building and running real systems if that's the process?

If you'd rather be building than practicing whiteboard questions, your best path to success is probably going to be a less predictable one where you need to come across one of the right companies willing to work harder at interviewing because they have to find the best candidates who fall through the cracks at the places with the name recognition.

Re:Acing the technical interview by peter422 on Thursday March 16, 2017 @04:06PM (#13888674)
People lie, people embellish.

If you are a good developer who sucks at whiteboard interviews, write open source code that everybody can see.

Otherwise there is no reason an interviewer can or should trust whatever story you tell of past successes.

Re:Acing the technical interview by GuiA on Thursday March 16, 2017 @04:16PM (#13888768)
> If you are a good developer who sucks at whiteboard interviews, write open source code that everybody can see.

It's been done, still doesn't get you a job.

https://twitter.com/mxcl/status/608682016205344768

Re:Acing the technical interview by peter422 on Thursday March 16, 2017 @04:39PM (#13888958)
That is one case. I've specifically hired somebody before who was so/so in the interviews but was the main contributor to a wonderfully written open source project. And was and is a great developer and great hire.

So there is a conflicting case.

No company is going to be perfect at hiring just the same way as no person is going to perfectly crush every interview. But there is no world where having contributed quality code to an open source project will hurt your chances.

Re:Acing the technical interview by kafkaesq on Thursday March 16, 2017 @05:48PM (#13889518)
There isn't data available on the general case, of course. But data from personal experience indicates: (1) many companies -- I'd say at least half of 'em-- still never look at portfolio code† (which -- even it's just a small personal project or two -- should provide plenty of conversational material for a perfectly decent and rigorous phone screen), or (2) if they do give you a take-home, they never attempt to use that as discussion fodder, either.††

Instead it's usually "Huh, you seem like you just might not be a complete dullard. Would you mind proving it to us by taking this 3-hour HackerRank test? 'Coz we know you've got nothing but time. And you'll go through just about any number of hoops to get us to pay attention to you."

† Even the ones who ask for it.

†† Even when we patiently and politely point out the gaps and ambiguities, sometimes quite glaring, in their cute little "challenge" problems. Which, again, many to occur in at least around half of these exercises.

Re:Acing the technical interview by dominotw on Thursday March 16, 2017 @08:25PM (#13890361)
Are you still hiring by any chance? I am looking for a new gig and I have bunch of open source work but no one is actually looking at it all, one interviewer even admitted 'oh we don't look at that much, maybe towards the end'. Even though they asked for it in their hiring page. You are definitely an exception.

Would be interesting to see which companies actually look at your github profile like they claim they do.

Re:Acing the technical interview by Apocryphon on Thursday March 16, 2017 @05:20PM (#13889300)
Problem is when that company becomes the industry standard at determining how interviews are done.
Re:Acing the technical interview by umanwizard on Thursday March 16, 2017 @11:25PM (#13891178)
Was Homebrew actually particularly hard to write or an example of particularly competent engineering? Package managers are a dime a dozen.
Re:Acing the technical interview by dasil003 on Friday March 17, 2017 @12:05PM (#13895050)
I'm not involved in any package manager development, but this strikes me as extremely arrogant. Successful package managers are most definitely not a dime a dozen, and the skills required to make one and maintain it over years are something which the majority of engineers at Google (or anywhere) do not possess. There's a lot more to software engineering than working on the hardest of the hard tech problems, and being very successful on the social side is a huge asset that no company should discount based on the theoretical difficulty of the problem being solved.
Re:Acing the technical interview by peruvian on Friday March 17, 2017 @08:38AM (#13893457)
Yeah right. Most developers wouldn't be able to even start writing a package manager, let alone maintain it for years as it becomes the most used one for a particular platform.
Re:Acing the technical interview by umanwizard on Friday March 17, 2017 @11:00AM (#13894430)
"Most developers" isn't the same thing as "most developers at Google"
Re:Acing the technical interview by sdm on Friday March 17, 2017 @05:30PM (#13898164)
While that was true 10 years ago; I don't think it still holds. Google is more big generic enterprise now with all trouble innovating that comes with that. Hence, why they must buy to be able to push innovation forward. This is just part of the natural life cycle of a company as it gets big and successful.
Re:Acing the technical interview by eli_gottlieb on Thursday March 16, 2017 @05:18PM (#13889273)
Isn't it standard nowadays to write a homework assignment and then have to whiteboard?
Re:Acing the technical interview by majormajor on Thursday March 16, 2017 @04:38PM (#13888952)
That's why the interviewer needs to be competent enough to be able to sniff out BS. Falling back on algorithm questions instead is a form of laziness. That's what the "curated golden path" comment is all about - there's a known standard way to get a job at one of these companies, and following it is not a very intellectually interesting exercise.

It doesn't sound like you fully disagree, because writing OSS isn't that curated path, but sadly none of the devs I know who focus heavily on algorithmic whiteboard question performance look at open source projects. And they could justify this with the same one you give: people lie, people copy/paste code...

I've pushed my team quite a bit away from where they were when they hired me in terms of whiteboarding focus, and we're better able to hire senior candidates now than they were back then. The BS detection is a big part of this: ok, you were on a team that did [really cool sounding thing]. What part of it did you do? What specifically did you learn from it? Even in aggressively paced interviewer loops you probably have at least 45 minutes to get them to answer those questions, if they're ducking and dodging, or answer back with wrong information, or with stuff that makes it clear they used the wrong tool for the job and didn't know how to find the right one, then there you go.

It's easy to present code, but it's also easy to copy or memorize code. Some of the most impressive candidates I've seen are the ones where the "let me ask you this stuff about your past experience" discussion expands to fill the whole time slot and we never actually look at any code, because we're too busy talking about how you took a service from a single database to a multi-master geo-distributed easy-failover alerted and monitored system, or how your random side project to look for Hidden Markov Models in baseball player's batting results went (how'd you store the data? what libraries did you use? did you implement your own versions of algorithms? what made it hard to draw conclusions? etc).

Re:Acing the technical interview by gregmac on Thursday March 16, 2017 @06:01PM (#13889607)
> ok, you were on a team that did [really cool sounding thing]. What part of it did you do? What specifically did you learn from it?

Exactly this.

The memorable example for me was someone that worked on a military helicopter training simulator, and specifically, they worked on connecting the physical radios (used for internal communications between the crew) to the simulator. Sounds cool, involved network experience that was entirely applicable to what we were hiring for, and personally, I have a fascination with and have done a lot of interfacing of physical human-interface hardware to software.

However, the candidate was unable to explain details. What type of I/O hardware was used? Did you have to poll or did it push/stream changes? Did you run into anything weird with bad signals or missed state changes or restarts that posed a big challenge? No answers to this, because apparently they "just worked on the protocol".. but then couldn't remember anything about the details of the protocol (HTTP or something custom? Text-based or binary? TCP or UDP?). It was frustrating, because I remember otherwise liking this person.

They had similar responses for their most recent job (that they were at literally a few weeks prior).

I have a terrible memory, but even I can remember some of the biggest challenge highlights of my career. If I start talking about them, especially when asked probing questions, I will remember all the little details and could go on for hours.

I don't get it. Were they just coasting in the background, not really contributing anything meaningful, doing just enough to not be fired? Did the interview make them so anxious that they literally couldn't remember any details (it didn't seem that way)? Were they outright lying about what they did?

Re:Acing the technical interview by busterarm on Thursday March 16, 2017 @09:21PM (#13890591)
There's a trap that some small subset of seniors fall into where there's a lot of projects going on and their role becomes to play architect, provided minimal directions and manage expectations. Nobody tells them they're a manager and everyone thinks they're responsible for the development work that gets completed. Nobody else wants to manage the developers (the good ones ask tough questions about spec. they're "hard to manage"), but nobody respects this guy enough to treat him like a real manager.

(S)he spends so much time playing translator that there's no time to sweat the details. That falls to the team.

Re:Acing the technical interview by y2kenny on Thursday March 16, 2017 @10:35PM (#13890916)
Exactly. Making a good hire is a management skill. Is it acceptable for managers to measure the productivity of their team by counting the # of line of code the team produce? or # of bugs the team fix? If not, why is whiteboarding with algorithm questions acceptable?
Re:Acing the technical interview by pcsanwald on Thursday March 16, 2017 @04:14PM (#13888751)
Eh, I disagree. A good interviewer can dig into past experiences and pretty quickly get a sense of a candidate. Interviewing is a skill that can be acquired and developed.

Problem is, the skills you need to be a good interviewer don't necessarily overlap so well with the skill set of a good software engineer. It's much easier to get people to ask about what they know, irrespective of whether or not that will be an accurate indicator of technical skill.

Re:Acing the technical interview by JDiculous on Thursday March 16, 2017 @11:29PM (#13891200)
For most software engineering jobs, the implementation of tries and whatnot is completely divorced from the actual day-to-day work, work that's generally on a much higher level of abstraction to the interview questions. It's the equivalent of interviewing a chemist based on his knowledge of physics.

If you're a Google or HFT firm working on massive scale or optimizing super low latency systems, sure it very well may be critical knowledge. If you're some random company with a CRUD app, this kind of hiring process isn't going to optimize for the most qualified candidates for the job.

Re:Acing the technical interview by unoti on Thursday March 16, 2017 @10:05PM (#13890790)
> If you are a good developer who sucks at whiteboard interviews, write open source code that everybody can see.

Not good enough for me. My engineers need to be able to collaborate with customers, management, and each other. They need to come up with ideas and explain them, advocate for their ideas. They need to be able to think, code, and collaborate.

Writing code is the easiest part of software engineering. In the environment I work, our engineers can't sit in isolation and submit pull requests. So while open source contributions are nice, being able to interview successfully is still required.

Re:Acing the technical interview by Datenstrom on Friday March 17, 2017 @12:36AM (#13891524)
I completely agree that this is sometimes the case.

The hardest project I've worked on so far was a CubeSat project where I had to collaborate with Electrical/Computer and Mechanical engineers with specialized knowledge (orbital mechanics, the design of the custom boards, etc.) to develop the software. I had to communicate why certain hardware elements are absolutely needed in their design, why certain elements of the Attitude Determination and Control System need to be optimized, and so on. As well as why we needed many of software engineerings best practices, which when you step back and look at them from the outside some do seem fairly odd.

But on the other hand, it is not always needed. Also, I'm confident I could prove my capability without a whiteboard because I could probably talk about the problems and collaboration to resolve them on that project for well over 30 minutes.

Re:Acing the technical interview by kelvin0 on Thursday March 16, 2017 @04:18PM (#13888788)
How do they know you wrote that so called 'open-source' code anyone can see? It's just as easy to fake it there, wouldn't you agree?
Re:Acing the technical interview by bogomipz on Thursday March 16, 2017 @06:59PM (#13889931)
>"Otherwise there is no reason an interviewer can or should trust whatever story you tell of past successes."

Except that its pretty easy to see if someone is telling the truth about their area of expertise with a few open ended questions.

Re:Acing the technical interview by saenns on Thursday March 16, 2017 @04:43PM (#13888991)
Have you tried it? You might be surprised at how easy to tell when someone is lying, once you learn to ask the right follow-up questions. It's difficult to fabricate experience for an entire 8 hour interview loop.
Re:Acing the technical interview by aangjie on Friday March 17, 2017 @01:50AM (#13891836)
Err.. I'm not a prolific developer or something, but most of my interviewers refuse/don't look at the github profile links I put in my resume. Instead they want me to spend time on whatever custom problem they've pre-decided and solve it (and worse not put it public..duh..)
Re:Acing the technical interview by bluebknight on Thursday March 16, 2017 @04:14PM (#13888745)
Then, these supposedly "good" developers complain how they have a life and a family so they don't have free time for open source.
Re:Acing the technical interview by peter422 on Thursday March 16, 2017 @04:33PM (#13888916)
I'm not saying you have to write open source code on your own time.

I'm saying that you can't complain that an interview doesn't show you are good coder if there is no other way for somebody to look at a project you've done.

Saying you did X/Y/Z at your last company but can't share the code since it belongs to them isn't a valid excuse for why you have no code out in the world to show off.

Re:Acing the technical interview by busterarm on Thursday March 16, 2017 @09:28PM (#13890625)
Maybe in California, where contract terms around owning your products outside work aren't honored, but in most of the rest of the US and the world, this is still a valid excuse.

Can't exactly contribute to open source if my contract says my employer owns everything that I do, and even if you think that can get tossed out, you'd better have a good legal fund.

Re:Acing the technical interview by loup-vaillant on Thursday March 16, 2017 @08:07PM (#13890275)
In other words, you have to have written code on your own time.
Re:Acing the technical interview by unoti on Thursday March 16, 2017 @11:53PM (#13891328)
Yeah, you do. You can't rely on your employer to continuously retrain you through your whole career. Show me an engineer with 10+ years of experience who refuses to ever learn anything away from work, and I'll show you somebody working on old tech.
Re:Acing the technical interview by vonmoltke on Friday March 17, 2017 @07:26AM (#13893113)
There is a difference between learning things away from work and having open-source projects.

Also, some people have enough flexibility to learn new languages, technologies, frameworks, and such within the context of their day jobs.

Re:Acing the technical interview by FT_intern on Thursday March 16, 2017 @04:24PM (#13888837)
That kind of evaluation can't be standardized and is very prone to personal biases and opinions though
Re:Acing the technical interview by majormajor on Thursday March 16, 2017 @05:23PM (#13889335)
"Can't be standardized" is something of a red-herring, as I've encountered a huge variety in how even algorithmic questions are presented and judged.

[More] prone to biases and opinions? Let's assume this is true (I'm not convinced that it's such a slam dunk - someone who wants to say no to a candidate can find a way, especially if they aren't being shadowed or recorded (which would feel pretty draconian for the interviewee too)). Isn't it still just a way of making a lazy complaint, "but that's harder!" You as hiring manager are responsible for knowing yourself, knowing your interviewers, knowing their strengths and weaknesses, and knowing your own.

That makes it hard to assembly-line interview fresh graduates, but maybe you should have a separate process there anyway because they won't have much in the way of useful experience yet anyway.

Re:Acing the technical interview by dominotw on Thursday March 16, 2017 @03:09PM (#13888088)
I met a young guy at the hotel diner where I was staying for google interview( there were like 50 of us in that hotel). He told me he has been practising algorithm questions on a whiteboard every day for past 4 months for tech interviews. He had a degree from a top school ( don't remember which one ), did an internship at some other top tech company in the valley. needless to say, that didn't help my confidence in the interview that morning :D.
Re:Acing the technical interview by caconym_ on Thursday March 16, 2017 @03:55PM (#13888581)
I don't understand people who don't do prep for interviews. I'm a self-taught software engineer with a mostly irrelevant degree but I for sure work through practice problems before interviews and I've had success with some of the "big 5" or whatever they're called. If I hadn't done the practice, I doubt I would have had any success at all.

It's a bit of a slog but it's not that hard if you're motivated to get a new job. My girlfriend has gone back to school for nursing and she works a shit load harder than me all the time, while I just do a month or so of ~ten hours a week of prep for every round of interviews I do.

Re:Acing the technical interview by shados on Thursday March 16, 2017 @04:09PM (#13888703)
unless you're interviewing at one of the big companies with a known interview process, you'd basically be wasting your time.

I've done hundreds of tech interviews over my career, and especially in recent years (now that companies are trying new things), it's completely random.

Some will do "Cracking the coding interview" type shit, some will do code reviews, some will give you a take home thing you have to present, some will do pair coding. Some do algorithms only, some do design discussions only, and so on and so forth.

So any prep I do will be a shot in the dark and 99% of the time I'll have to do something I did not prep for. So I don't bother trying.

Notable exception is my current job, which is a big tech co with a semi well known interview process (not as infamous as google or facebook, but still), and they gave me a fair amount of info up front. I also -really really really- wanted to work there because the team I wanted to work for did things no one else does. So i bit the bullet and studied/practice.

That was literally the first time (and probably last) time I did.

Re:Acing the technical interview by caconym_ on Thursday March 16, 2017 @04:15PM (#13888762)
I guess I just think of it as limbering up the brain, even if what I "studied" isn't directly useful. I'm going to be a lot more effective at basically all the things you mentioned if I've been solving tricky problems in my spare time for a few weeks.

I totally agree that it's a shot in the dark, though.

Re:Acing the technical interview by lj3 on Thursday March 16, 2017 @06:28PM (#13889756)
Just out of curiosity, are you relatively young? Memorizing the same material for four months every time you switch jobs gets tedious after a 15 year long career.
Re:Acing the technical interview by caconym_ on Thursday March 16, 2017 @07:28PM (#13890079)
I've been in the industry for about 10 years. Like I said, it's more about limbering up my brain. I have a good time with it, and usually learn some new things. Memorization is pointless, so I try to solve new and interesting problems rather than re-implementing the same old data structures and algorithms every time.

To be sure, some people take it too far. The "four months" figure does not come from me.

Re:Acing the technical interview by dominotw on Thursday March 16, 2017 @10:02PM (#13890778)
> so I try to solve new and interesting problems

Curious if you have any examples. I have really hard time motivating myself to study same old ds and algorithms too .

Re:Acing the technical interview by bquinlan on Thursday March 16, 2017 @11:16PM (#13891133)
I wanted to learn Rust but didn't have a good project in mind. So I solved a bunch of interview problems: https://github.com/brianquinlan/learn-rust

Solving those problems gave me a reason to touch lots of parts of the language and was also intellectually interesting. See, for example: https://github.com/brianquinlan/learn-rust/tree/master/i18n

Re:Acing the technical interview by dominotw on Friday March 17, 2017 @09:34AM (#13893785)
This is awesome. Learning Rust is also one of my goals. This is pretty great for comparing my solutions.
Re:Acing the technical interview by collyw on Friday March 17, 2017 @06:35AM (#13892912)
Especially when you have hardly ever had to use it in your 15 years career.
Re:Acing the technical interview by umanwizard on Thursday March 16, 2017 @11:29PM (#13891203)
In my life I have interviewed at Amazon, Facebook, Google, 1Energy, and Redfin. 100% of them did standard coding interviews, including the last two. Claiming that preparing for whitebord algorithms interviews is a waste of time outside the big N is a gross exaggeration at best.
Re:Acing the technical interview by jkubicek on Thursday March 16, 2017 @08:46PM (#13890438)
You make a good point, but:

> Some will do "Cracking the coding interview" type shit, some will do code reviews, some will give you a take home thing you have to present, some will do pair coding. Some do algorithms only, some do design discussions only, and so on and so forth.

"Cracking the Coding Interview" and algorithms are the only things you mention that you don't spend all day doing at your day job. Spending time studying algorithm questions will be hugely beneficial for some interviews. For others, they'll quiz you on stuff you (should) already know.

Re:Acing the technical interview by JDiculous on Thursday March 16, 2017 @11:42PM (#13891280)
It makes complete sense for your first job and when you're unemployed, but as someone with a couple jobs under his belt already, I have no interest in interview prep anymore unless it's relevant to my work and there's a clear ROI.

The way I see it, no experienced candidate should have to do "interview prep" because the work that he/she does on the job should be more relevant to his/her ability to do the job than any form of interview prep.

To make an extreme example, John Carmack's work time is probably better allocated actually doing work than brushing up on "Cracking the Coding Interview" problems. In an ideal world a software engineer's candidacy for a job would be based strictly on his ability to do the job, not academic trivia questions.

Re:Acing the technical interview by smcl on Friday March 17, 2017 @06:25AM (#13892877)
This got me thinking. Since John Carmack is a person we can probably all agree is a talented programmer and all round smart guy ... I'm curious how he would fare if he was handed a standard set of Google/FB interview questions
Re:Acing the technical interview by ZanyProgrammer on Thursday March 16, 2017 @06:37PM (#13889804)
I have a hard enough time trying to fit my own personal projects into my schedule, much less doing mind numbing memorization. It's funny that unless you teach CS, none of our jobs actually prepare for an interview.
Re:Acing the technical interview by caconym_ on Thursday March 16, 2017 @07:32PM (#13890107)
If you're memorizing, you're doing it wrong (IMO, in general).

I think that if you are working on some moderately challenging and varied personal projects, that's probably also a great way to prepare.

Re:Acing the technical interview by WalterSear on Thursday March 16, 2017 @09:12PM (#13890557)
I used to think so, but I've found that small amounts of memorization alongside actually working with topics is so much more effective that I have started doing it outside of interview crams - such as when I am trying to get to grips with a new library's API.
Re:Acing the technical interview by Cofike on Thursday March 16, 2017 @03:38PM (#13888414)
It's really at the point where you need to prepare/review for the technical interviews at most companies. If people are going to review coding interview questions/books/strategy then to compete we'll have to do the same.

I myself have been working through cracking the coding interview in an attempt to migrate from upstate new york to the bay area. Maybe I wouldn't bother with positions that demanded white boarding if I already had a position over there and could be selective but maybe not. It kind of feels like it's all part of the game at this point.

Re:Acing the technical interview by unoti on Friday March 17, 2017 @12:06AM (#13891383)
Good for you. If you want to work at the circus, you've gotta jump through some hoops. It's true that for most jobs, most day-to-day work doesn't involve knowing standard algorithms and data structures. But being willing to crack open a book and learn something new shows you're willing to prepare when it counts, and that you're capable of learning. Plus you get to learn some cool things along the way, some of which may even be useful some day!
Re:Acing the technical interview by collyw on Friday March 17, 2017 @09:59AM (#13894001)
Or it shows a lack of critical thinking.
Re:Acing the technical interview by Cofike on Saturday March 18, 2017 @03:26PM (#13903040)
Accepted criticism. At times I wonder if it's worth it or not but I think the preparation is warranted considering how I have to just kind of commit to this whole thing if I play on moving cross country with my fiancee.
Re:Acing the technical interview by JCDenton2052 on Thursday March 16, 2017 @03:23PM (#13888236)
Was he hired?
Re:Acing the technical interview by kornish on Thursday March 16, 2017 @03:29PM (#13888317)
Probably.
Re:Acing the technical interview by cheez on Thursday March 16, 2017 @03:08PM (#13888074)
Breeding from good stock