Ask HN: Why are Silicon Valley interviews such a drag now?
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.
[+] [-] luke_s|11 years ago|reply
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
[+] [-] RestlessMind|11 years ago|reply
[+] [-] bayonetz|11 years ago|reply
[+] [-] azakai|11 years ago|reply
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
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
[+] [-] time_is_scary|11 years ago|reply
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 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
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.
[+] [-] senorito|11 years ago|reply
[+] [-] aorloff|11 years ago|reply
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
[+] [-] skynetv2|11 years ago|reply
[+] [-] droidist2|11 years ago|reply
[+] [-] brendangregg|11 years ago|reply
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:
edit: formatting[+] [-] logn|11 years ago|reply
[+] [-] PopeOfNope|11 years ago|reply
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
If any of netflix employees are lurking around here, Please keep up the good job.
[+] [-] downandout|11 years ago|reply
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
[+] [-] jhildings|11 years ago|reply
[+] [-] unknown|11 years ago|reply
[deleted]
[+] [-] andrew-d|11 years ago|reply
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
[+] [-] northisup|11 years ago|reply
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
They (er, we) are still hiring: https://www.instacart.com/jobs/engineering
[+] [-] johnsberd|11 years ago|reply
[+] [-] solomatov|11 years ago|reply
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
"reluctant to start interviewing" based off of stereotypes? Am I not understanding this?
[+] [-] algoal|11 years ago|reply
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
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
Then either the interviewers "know" the wrong answers, or feel so threatened that you're "not a culture fit."
[+] [-] StillBored|11 years ago|reply
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
[+] [-] danellis|11 years ago|reply
[+] [-] drawkbox|11 years ago|reply
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
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
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
[+] [-] hurin|11 years ago|reply
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
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
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
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
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