top | item 9518659

Ask HN: Why are Silicon Valley interviews such a drag now?

66 points| algoal | 11 years ago | reply

2 people I know and I are in the process of looking for new jobs.

My first friend is almost 20 years my junior, but a fantastic coder. He is someone that every company would want. He's smart, curious, has initiative, and has a lot of wisdom behind the way he codes despite his youth. He's fluent in Java, Scala, Python and has built everything from simple web services to entire parsing engines and he does it because he's genuinely interested in the work he does.

My other friend is 10 years my junior, but also great. He's an official Apache committer, and has worked on some really great projects for some well-known companies. He also has worked on a lot of side projects that got picked up by his employers in various forms and he works his butt off every day.

My two friends are people that any company would be lucky to have. But all three of us are very reluctant to start interviewing because we all know how much interviewing really really SUCKS. Basically we are forced to write whiteboard code for 4-5 hours on topics that we may or may not know. If we don't know it, we're fucked and we might as well give up because everyone appears to want perfection. But the range of questions we can be asked on an interview is so wide, you can't expect someone to know EVERYTHING.

It seems to me that interviewing in Silicon Valley is really broken if my friends are reluctant to start interviewing, despite how great they are and how much of an asset they would be to ANY company.

Is there a site besides glassdoor that details or rates a company's interview process? It would be sad if we all end up choosing companies based on their interview process, but it's a lot better than wasting our time and PTO days going for interviews and then getting blown out of the water because one interviewer wants us to code a particular dynamic programming question the way they are picturing in their head.

108 comments

order
[+] luke_s|11 years ago|reply
If you are looking for a job, I cannot recommend giving technical presentations at user groups highly enough...

As you have pointed out the dynamic of interviews sucks. A potential employer will be seeing dozens of people for a position and comparing you to all of them. You will be talking on a topic decided by the employer which you may or may not know anything about.

Giving technical presentations inverts this dynamic beautifully. Instead of one position and many candidates, there is one of you and potentially dozens of people in the room looking to hire. Instead of doing white board problems in a domain you may not know about, you will be talking on a topic that you KNOW MORE ABOUT than anybody else in the room! Instead of speaking off the cuff in an interview, you can polish your presentation for weeks in advance.

I am a freelancer. Every time I have done a technical presentation at a users group I have picked up at least one job out of it. Many of the people at the users group are looking for employees. They are always disappointed to find out I'm not looking for a full time position.

[+] sbfeibish|11 years ago|reply
Writing a book is another way to raise your profile. Just don't expect to make a fortune from publishing the book. Making YouTube videos is along those same lines. See Derek Banas or SlideNerd on YouTube.
[+] RestlessMind|11 years ago|reply
How do you go around giving technical presentations? Where do you find the audience? Can you please share links to some of your presentations?
[+] bayonetz|11 years ago|reply
Can confirm! Have been offered several jobs this way.
[+] azakai|11 years ago|reply
> But all three of us are very reluctant to start interviewing because we all know how much interviewing really really SUCKS.

Have you interviewed much recently, or are you going on what you hear about bad things in the interview process? (The bad stuff tends to get more mentions.)

It might not be as bad as you think. Yes, some amount of whiteboard work is common. But it shouldn't be about "topics you may or may not know" - that sounds bizarre to me. You should be tested on a language you know, and on a problem that a reasonable person would be able to solve. Also, the focus is often on how you approach the problem, not if you write up a perfect solution or not.

Overall, what you describe sounds like a horror story ("one interviewer wants us to code a particular dynamic programming question the way they are picturing in their head"). I don't think that's as common as you appear to think.

It sounds like you are reluctant to even start interviewing. Why not try, and see how it goes?

[+] zerr|11 years ago|reply
> Also, the focus is often on how you approach the problem, not if you write up a perfect solution or not.

This is a common misconception. Unfortunately, most (read 99%) interviewers expect you to come up with exactly the same solution they have in mind (or in paper/screen in front of them). Even if your solution is correct but different, as soon as you start to diverge from their solution, you're red-flagged.

[+] algoal|11 years ago|reply
Collectively, the three of us have interviewed dozens of times over the last 3 years. The description is based on this, so it is not just hearsay.
[+] time_is_scary|11 years ago|reply
This is the biggest myth that you will hear from every recruiter. If you do not get the problem correct, you will not get an offer.

If you go through a 3 person loop and get 2 problems right and 1 wrong, you might get an offer, but I guarantee that the voting would be two "hire" votes from the questions you aced, and a "no-hire" vote from the one you failed.

There are a couple of reasons for this. The most obvious is that, given two candidates, the better choice will (at least appear) to be the candidate who got the most questions right.

The more common scenario that I have seen is that engineers simply work backwards. If you got the solution wrong (or didn't finish) their thinking will go something like: they got it wrong -> they went down the wrong path since they chose a hashmap instead of a tree -> they are weak in data structures -> no hire

I am at one of the bigger tech companies, and it really is a roll of the dice on if you get a question on a topic you have studied. Especially if you have been out of school for awhile.

The worst part is that bigger tech companies force hiring on the engineers. Hiring candidates becomes part of your own career advancement. If it is a big company, you will go to a day of training and suddenly be a professional interviewer. It is even worse since my opinion (that this system is awful) seems to be the minority. All of my colleagues think they are great at hiring, pontificate over lunch on what makes a good candidate, and discuss their favorite questions (well, their favorite questions from the standard set of questions from the company bank. This is science here, obviously we use standardized questions.)

Of course, if you fail in the interview, you can always come back. It's not like I've ever heard a colleague say, "sigh I am not looking forward to this interview; We've already turned them down once."

[+] santoriv|11 years ago|reply
I periodically see posts about how hard it is to get a job as a computer programmer on this forum. I think I have a different point of view on this one.

I previously worked as a classical orchestral musician.

In the entire United States, there are a maybe about 10 full time jobs open per year for any given instrument (excepting strings). For most instruments, there are thousands of music performance majors who graduate from colleges around the US each year.

When there is an audition, people fly to the audition at their own expense from all over the world. If you are even permitted to audition for the orchestra, you will face between 100 and 300 competitors. Almost everyone at these auditions has at least 15 years of playing experience and advanced (expensive) degrees. In the initial round, players have between 3 and 5 minutes to advance. Often the audition will consist of many rounds that will span 4 or 5 days (depending on the number of candidates).

Even if you win the audition, you don't necessarily have the gig. You are often on a six month to one year trial. It is very common for musicians to win an audition, play with an orchestra for a year, and then lose the job, never to win an audition ever again. It is also common for a musician to win a job, only to find that the orchestra is insolvent a few years later.

Often people will spend a decade going to auditions around the US before they win a position or just give up.

The last audition I attended was with the San Antonio Symphony. There were over 100 players at the audition from all around the US. The base salary for the San Antonio Symphony is $26K per year.

By contrast, the last time I was in San Francisco (2.5 years ago), I applied to about 80 web development jobs in 1 week. At the end of the week I had landed a job that paid $120K per year, great health care, free massages once a week, and all the food I can eat. I had 1.5 years of professional development experience and no CS degree.

[+] unknown|11 years ago|reply

[deleted]

[+] anthony_barker|11 years ago|reply
Ironically one of my best hires was just finishing his degree in particle theoretical physics at a top school. No puzzles at all - all questions were focused on would we want to work with this person.

I figured his physics background pretty much proved he can figure puzzles out. I did call his thesis advisor as a reference.

Your comparison with music kind of reminds be of people applying for unique faculty positions in Universities. It sounds like is that there are lots of qualified applicants and not many decent jobs.

[+] aorloff|11 years ago|reply
There are 2 problems these days :

1. Companies think they are hot shit.

2. The interviewers are all pretty junior and actually have no idea what they are looking for, so instead they try to grill everyone in some perceived gauntlet.

The reality is that companies need experienced people (of all ages). And that the gauntlet exercise is supposed to do 2 things - first of all, demonstrate that people know a bit about some kind of software development / CS experience. Second of all, and this one is missed a lot, its a chance to see what someone's personality is like trying to solve a problem.

Experienced interviewers know that its not about trying to throw problems at people until you exhaust them, its about determining if you want to be on the team with someone when a difficult problem arises (and uses as a proxy for this, how do they react to solving a problem right now in front of you).

Companies are about culture - there are still companies out there that do have cool engineering cultures (and some of them are hot shit).

[+] __Joker|11 years ago|reply
Personal experience/ Ancedote about (2). Sometimes interviewers (may be new or inexperiences) just try to prove that they are hot shit. And feels like they forget that the objective of interview is not to establish who is superior rather if the candidate has the skills what they are looking for. This happened couple of times to me.
[+] skynetv2|11 years ago|reply
I interviewed for Google two times, FB one time and Amazon once. I hated every single one of those interviews. I got another call from Google and I told the guy if he is expecting me to go on a 2-3 month interview loop with one day of hoping to give the answer the interviewer wants (on those situational questions) than what makes sense in the context with limited info, deal with guys who think they are the gods of the universe ... i am not interested.
[+] droidist2|11 years ago|reply
Good for you. Google can get away with this garbage because so many people would sell their girlfriend to work there. It's good to hear about people not taking their crap. There are plenty of great places to work.
[+] brendangregg|11 years ago|reply
Yes, SV interviews can be pretty bad, and I've been through the whiteboard coding style ones myself, and in one case probably faired badly. As I was trying damn hard to remember stuff from 2nd year software engineering class, I was also wondering why the interview was focusing on a skill I hadn't used since University, and not, instead, questioning any of the skills I've been using for the past 10 years -- and which were relevant to the actual job. My regret is not walking out half way through that interview.

Not all companies interview poorly. My Netflix interviews were great, and focused on what value I can bring to the company, down to discussing specific projects and tasks I could begin work on. Note that this wasn't strictly a programming role, but then, nor was the other company who did have me do whiteboard coding.

As for more programming roles: can we come up with a better interview technique? How about this:

  - Ask the candidate for several URLs to code they have written (eg, github).
  - Select some code beforehand and print it out.
  - During the interview, ask the interviewee to explain their own code.
  Explain choices, rationale, how they tested it, how they developed it, etc.
edit: formatting
[+] logn|11 years ago|reply
That's how I got my first job out of college. Actually when I walked into the interview room, they had my program on a projector, the code loaded into an IDE, and asked me to explain everything. Then they loaded their apps on to the projectors and basically did the inverse for me. A very nice interview. The final portion was their most junior developer who told me just to ask whatever questions I wanted that would help me decide whether I wanted to work there.
[+] PopeOfNope|11 years ago|reply
Funny enough, that's exactly how I got my current job. I have no code up on github or anywhere else, but I sent them a piece of a project I had worked on as a consultant (with permission from all the pertinent people). They were impressed with it. We discussed the decisions I made over the phone as well as my other views on software development and just like that I was hired. No in person interview required. The company is fully distributed, so they didn't have an office I could go to anyway.

It's also important to point out that the interview process went fast and smooth because I had the exact mix of skills they were both looking for and lacking at their company at the same time. Those skills in this case were PHP based CMS's and single page web applications.

So, to OP, if you want the interview process to go better, identify a company that needs the skills you provide badly. Most mid-sized startups in SV who advertise that they're hiring typically just need meat to scale their operations. Sometimes you can get lucky and use those opportunities to switch domains (ie: from JS web development to mobile game development) but most of the time those jobs just suck.

[+] seige|11 years ago|reply
Netflix is a wonderful example of a company doing interviews right. I haven't had the opportunity to complete a full process as I bailed out mid process because of their location but the 2 rounds of process I had, I was absolutely blown away and was genuinely very pleasantly surprised.

If any of netflix employees are lurking around here, Please keep up the good job.

[+] downandout|11 years ago|reply
The funny part about this is that the founders of these startups, who in many cases wrote the code that got the funding to start hiring programmers, couldn't come close to passing these interviews themselves. They also in many cases aren't very good programmers, and are looking to hire people better than they are for rewards that won't come close to what the founders receive.

Case in point: I recently emailed a simple question to the Magic (getmagic.com) folks. I asked why they didn't make the short code on their home page (which used to be a 10 digit phone number) a clickable SMS link. It seems obvious right? They are asking people to send them an SMS. Why make people either memorize/type or copy/paste? But not only did they not think of it, they didn't respond to my email and haven't implemented it. These guys basically got a check for $12M at a $40M valuation after 1 weekend of buzz and couldn't figure this out on their own - and either could the VC's that wrote them the check apparently (and they're in charge of billions of dollars).

So walking into these interviews (especially at recent startups), understand that if you have a bad interview experience, then the people that are already there probably aren't very good at what they do. Bad interviews tend to be conducted by bad managers/coders that are suffering from extreme bouts of justifiable impostor syndrome. If you are not hired after a bad interview experience, it's probably a good thing, because you wouldn't want to work everyday with the people that designed that experience in the first place.

[+] Cymen|11 years ago|reply
I agree -- the interview process is a direct reflection of the organization you are interviewing for and you should judge your potential employer on how they interview you.
[+] andrew-d|11 years ago|reply
If you or your friends are interested, you should check out Matasano (disclaimer: I work there). Our hiring process is much more focused on work-samples, and the in-person interviewing is pretty laid-back. We're also very up-front with candidates about what to expect and where they are in the process. Check out our careers page:

http://matasano.com/careers/

Feel free to drop me a line if you (or anyone else) has questions - I'm andrew AT matasano.com

[+] fsk|11 years ago|reply
Great, spend a lot of time studying your niche (security), all just for one interview. Yeah, your process isn't broken.
[+] northisup|11 years ago|reply
This is not what an interview at Disqus is like. We interview you like we work. This means you are going to code and you are going to lead a design discussion.

Coding is done on a computer you bring with your tools in a language you know. You get to use the Internet to looks stuff up, you know, just like you can when you are really doing your job. And the questions we ask are problems we have had to solve at work.

The design discussion is collaborative, the interviewer is an active part of the discussion playing a sort of devil's advocate.

If this seems like a process you would like, we have a bunch of python positions open right now, check them out here: http://grnh.se/vj71bo

[+] JesseAldridge|11 years ago|reply
FWIW, I just accepted an offer from Instacart (my first day is Monday). Phase 1 of the interview process was a 10 minute coding problem on Hacker Rank. Phase 2 was building a small web app in half a day on my own time from my own apartment. Phase 3 was a 10 minute face to face coding problem that I solved using my normal programming environment on my own laptop. There were also conversational interviews with several people. No whiteboards were involved at any point.

They (er, we) are still hiring: https://www.instacart.com/jobs/engineering

[+] solomatov|11 years ago|reply
Basically, interview questions at such companies test your knowledge of basic algorithms and data structures. If you have problem with answering such questions, I recommend you taking a couple of courses in these fields on Coursera or read basic algorithm books (and of course solve exercises).

I interview people a lot, and I always ask such questions. I just don't want to have people who don't know how data structures they work with every day work and which time complexity they have. You would be surprised, to see how many people don't know the basics.

Often companies, like google, and facebook ask brain teaser, i.e. tricky questions with tricky answers. I agree with you that such questions are mostly useless and make people feel stupid, especially if they didn't have experience with them.

P.S. It would be nice if you provide examples of tasks which you against, so that everybody who reads this is on the same page.

[+] lfowles|11 years ago|reply
> But all three of us are very reluctant to start interviewing because we all know how much interviewing really really SUCKS. Basically we are forced to write whiteboard code for 4-5 hours on topics that we may or may not know.

"reluctant to start interviewing" based off of stereotypes? Am I not understanding this?

[+] algoal|11 years ago|reply
As I mentioned above, collectively, the three of us have interviewed dozens of times over the last 3 years, so this is from personal experience.

I've personally interviewed many dozens of times over the last 20 years I've been in Silicon Valley. The expectations from interviews have definitely changed, especially after Google (I interviewed their twice and never made it past the hiring committee). At one well-known company, I went through 15 whiteboard interviews (3 different days x 5 interviews per day) and finally got the job. I'm not sure why I stuck with it, but I did.

If the nature of interviews have changed over the last year, I'll be thrilled, but I doubt it based on the reports I've heard from other friends of mine that have interviewed over the last few months.

[+] jeremymcanally|11 years ago|reply
Yeah, I'm not entirely sure where they've interviewed or read about interviewing. I guess Google and Microsoft might run interviews like that, but I've never had that experience. And I've interviewed in a lot of places (both in Silicon Valley and out of it!).

It seems like maybe they've spent too much time on HN and Reddit reading about interviewing without doing it. ;)

[+] throwaway879032|11 years ago|reply
If you think interviewing is bad now, wait until you're world-class.

Then either the interviewers "know" the wrong answers, or feel so threatened that you're "not a culture fit."

[+] StillBored|11 years ago|reply
I'm pretty sure i'm not world class.

That said, twice in the past few years I've been in the situation where the interviewer was wrong (recently like over a dozen times in the interview on different topics!). Most of the time I just brush it off, but I'm not the type to let things slide on technical issues with black and white answers.

So sometimes if pushed i will try to gently backup my statement with concrete examples (goggleable if you will). But, still if you piss someone off by telling them to google it, you definitely get the "culture fit" answer.

So, i'm not sure how to crack that nut.

Maybe the best answer is you probably are not going to fit in, and terminating it early is a good idea. Its like the crazy member of the opposite sex who breaks up with you, and all you feel is relief.

BTW: When I got the culture fit answer recently, I almost sent the hiring manager the "your techie is presenting himself as an expert in the following areas critical to your success but he thinks a,b,c,d. These aren't even areas subject to disagreement by knowledgeable people. Here are the actual answers complete with hard references you can verify." But when I cooled down, I figured the best response was the pleasant thank you for your time answer.

[+] brendangregg|11 years ago|reply
I get the feeling that at some large companies there is the "front door", geared towards junior staff and fresh graduates, and typified by whiteboard coding trivia, and then the "back door", geared towards opportunistic hires of world class talent. Anyone else get that feeling?
[+] danellis|11 years ago|reply
Maybe they're just put off by people arrogant enough to call themselves world class.
[+] drawkbox|11 years ago|reply
When you are an interviewer, remember you are given power to determine whether people get the job and are their gatekeeper. You are determining career paths and opportunity. Don't make the interviewee do things they wouldn't do on the job but find out who they are. Even when you hire you really learn who you hired in action, even if you have a circus hoop based interview process, the real test is the first 2-12 weeks.

It is sad some pedantic people can determine your success on a one off trick question and whiteboard exercise interview judgement like a rogue war tribunal rather than your work.

[+] ejcx|11 years ago|reply
I don't think all companies interview like that. In my honest opinion, the interviewing game is changing if you don't interview at any of the giants.

You can also ask about what the on-site interviews are like before you commit to them. If they mention white-board programming, just pass on them. I am super against horrible interview practices (I'm all for phone screens being you and the interviewer SSH'd and in the same screen session together), but you can find companies that have good ones, and part of that task lies on your shoulders.

[+] nojvek|11 years ago|reply
Interviewing is a hard problem. I've done many interviews at small startups and big tech firms. Its a bit of a hit and miss to be honest.

You have a long flight and ended up burning midnight oil last night. They might think you're not passionate enough.

You're quite excited about certain things, they think you're trying too hard.

you absolutely suck at writing recursive code on a whiteboard, they think you can't code for shit.

Some dude on the other side is trying to prove his seniority and intimidating, they think you don't fit in culture.

Lesson learnt the hard way: Just gotta keep on trying

[+] algo123|11 years ago|reply
I get many emails from recruiters but ignore them because I simply don't know what to expect from interviews - not really interested in being asked to solve someones' pet algorithm on a white board. I wish there was a list of companies who do project based interviews where they ask you to work on a small but challenging project related to the actual work you'll be doing, and then bring you to an interview to present it and defend it in front of your potential future colleagues.
[+] hurin|11 years ago|reply
I'm genuinely curious why engineers would prefer to work on a project for an interview? To be tasked by multiple companies (presumably by as many as you are applying to) to spend 4-8 hours doing unpaid work on a project which is probably inane and most off all - completely useless for everyone involved.

If I've got 8 hours to spend I'd much rather contribute it to something that someone else will actually benefit from.

[+] StillBored|11 years ago|reply
Yah, I've been interviewing a little lately, and while I understand the need to see if the person can code, white-boarding isn't really it. I've been doing this long enough that i've been the guy on the other end of the table more often than not.

Anyway, over the past couple years I've steadily moved into the take home test camp. These can be tweaked such that its apparent if someone tried to google an answer and use it.

But that said, I'm not sure I want to be implementing a "challenging" project for a job that I might never get. How much time do you think someone should be expected to put into a project for a job they might not get. How about if they are interviewing at a half dozen places?

[+] jlees|11 years ago|reply
I think you'll find startups to be more flexible on this, with the downside that they are often still figuring out their own processes. At Nylas we ask a range of questions from high to low level but all related to the kinds of problems engineers would be working on - for example, if you'd be working on the platform team, we ask you about things like concurrency and locks because we actually use those, not because we read some CS 101 textbook and thought they'd be cool.

Sometimes, the goal of an interview is to get you to think about something you don't know. If you knew every answer to every interview question perfectly, what does the interviewer learn? It's quite enlightening to get out of that comfort zone and see whether someone pulls an answer out of their backside, honestly says that they don't know, or somewhere in between. I'm not saying all interviews should be like this for everyone, and I think interviewers should be very much aware if that's what they're doing -- which I think is less the case ("oh, the candidate didn't use a linked list but solved the problem some other way? 0 points!").

[+] ARenhard|11 years ago|reply
I'm working semi hard at solving this problem right now, but up in Seattle.

Here's what I can tell you and your friends to help until I am running the awesome company that will solve some of these issues:

Interviewing is hard. For both the candidate and the interviewer. With engineers, it's even more difficult. They have to assess a culture fit, a character match, a specific set of already acquired skills, the ability to learn new skills, the ability to solve problems not yet known to anyone...and all in some consistent fashion. It's very difficult to extract hard data out of an interview that isn't a question and an exact answer. So, think from your interviewer's perspective. The best thing you can do is help them get the data they need to extract from you. If the question they ask is too specific, help them see what you do know, how you would find answers to what you don't, what you think the answer would be, how you would reason about it, etc.

I would highly not recommend selecting a company based on their interview process...you might not like the narrow pool you're left with.

[+] chipotle_coyote|11 years ago|reply
As others have said, you're making a fair amount of assumptions about the way the "median" interview in Silicon Valley goes. Interviewers tend to be less concerned about whether your code matches the picture in their head as much as whether your code works and isn't doing anything unduly stupid. (Being aware of performance concerns and how to optimize for best O(n) values is a huge, huge deal.)

The biggest challenges I've personally noted are these:

(1) Despite all the (probably sincere) claims many startups make about not looking for computer science degrees, coding questions are absolutely, positively optimized for computer science majors. I have lost more than one job because I'm "not strong enough with algorithms." For certain kinds of positions that's assuredly correct -- the engineers where I work now, who are building a high-performance realtime database, for instance -- but the number of times I've needed a routine to return a list of strongly connected components in a network graph as part of my 15-year web development career is exactly zero. (I have, however, needed it for a coding interview; as it turned out, writing that and a shortest path method and a simple parser just got me to the final face-to-face interview, where I was asked three or four more algorithmic questions. I did not get that job.)

(2) I increasingly see jobs requiring experience that I literally cannot get without already having one of those jobs, i.e., "must have already worked with high-performance clusters and web sites serving millions of hits a day." It seems like the only way to get that experience is to either start a startup that gets to that point, or get an internship at a company that already has it (which is not an option once you're out of college).

[+] ZanyProgrammer|11 years ago|reply
Your second point is analogous to companies asking for X years of experience in a language that has only been out for y years, where y < X