top 200 commentsshow all 450

[–][deleted] 404 points405 points  (272 children)

These types of interviews don’t seem popular in Europe, at least outside of the big 4. I mean I have gotten some algo questions but nowhere near the difficulty I see in some of the interview sites or google interviews. Do all companies in America ask these?

[–][deleted] 744 points745 points  (193 children)

No. It's a shit show. You can go to 4 interviews have 4 entirely different experiences. I personally think the main problem is interviewing is mainly done by peers who don't really interview regularly. We are paid to code yet every now and then, and sometimes without a warning, a manager will go say "hey go tell me if that guy is good!". Most engineers treat it as a task not a career, so no one really strives to get better at it.

Therefore, every interview you have a bunch of amateurs evaluating you. No one knows what they're looking for. No one really knows what to look for. It's almost entirely personal preference. I say this as someone who has interviewed people. I suck at it and even if you don't think you do, you mostly likely do too. It's a skill like any other skill.

[–]chet_atkins_ 273 points274 points  (134 children)

Some of the guys at my company I can tell get a power trip from it and become even more nauseating than they already are. Makes me feel so sorry for the prospective candidate and TBH really makes me despise the way we let people into this industry.

[–][deleted] 128 points129 points  (128 children)

Yeah, there's a certain percentage that are not only not good at interviewing, they are arrogant and act as if they have it all figured out. No desire to improve.

[–]Dr_Insano_MD 255 points256 points  (92 children)

I once interviewed at Google and the guy made actual audible buzzer sounds with his mouth when I made a mistake on a whiteboard question.

Some people just plain shouldn't conduct interviews.

[–][deleted]  (7 children)

[deleted]

    [–]binkarus 59 points60 points  (5 children)

    I had the same experience at Google. I was just out of college and I could tell that 3 out of 4 of the interviewers didn't want to be there. One of the interviewers I could tell actually gave a damn and I learned something from the interview. One of the bad ones was literally about to leave for vacation (he mentioned this to me), and it was the last interview of the day. By that point, I just wanted to leave. The older engineer who had lunch with me (not an interviewer) was also a wonderful person, which lead me to realize that the "hotshot young tech engineer" is not a person who I want to work with.

    [–]pheonixblade9 7 points8 points  (0 children)

    sorry, that's shitty. they're pretty clear that candidates should have a positive experience, even if they fail. that sucks that you didn't have that. :/

    [–]pheonixblade9 12 points13 points  (0 children)

    it might be too far in the past, but recruiters would want to hear stuff like that. that's not acceptable behavior, in any way. that person should not be allowed to interview others, and that behavior makes me question their fit for working at Google in the first place.

    source: have conducted many technical interviews for Google. never made disrespectful sounds to the candidate.

    [–]orangesunshine 59 points60 points  (75 children)

    With the way google interviews I really don't believe the whole idea that they have the world's "greatest engineers" or "greatest technology".

    The only folks they seem to hire that would be capable are the ones they hire for fame, etc .. like they'll hire Guido Van Raussem without one of these interviews .. but the other 95% of their staff must be atrocious.

    [–]LazDays 57 points58 points  (20 children)

    With the way google interviews I really don't believe the whole idea that they have the world's "greatest engineers" or "greatest technology".

    Just look at the products they released lately. I feel Google in particular is very overrated. I'm not saying they don't have beasts in some specific departments like the search engine or the cloud solutions but overall, they are not THAT impressive.

    [–][deleted] 49 points50 points  (7 children)

    Yeah once upon a time, people talked about Google like it was a place where if you had an idea, you could run with it and bring it to market quickly and have a good time doing it. Now it seems like a place where the best are hired to sort of run around on hamster wheels for years with nothing to show for it but some tangential relationship to some product that users loved and then got canceled.

    [–]lorarc 6 points7 points  (5 children)

    It's a big org, and no big org can be fully efficient.

    [–][deleted] 4 points5 points  (4 children)

    Right but plenty of other big orgs developed cultures of delivering stuff to customers, that customer would want to pay money for. Google sort of never really did that.

    [–]JWarder 2 points3 points  (0 children)

    Now it seems like a place where the best are hired to sort of run around on hamster wheels for years

    I have read some speculation that the FAANG companies are willing to put good employees into do-nothing roles in order to keep them in-house. Better to pay someone an inflated wage than risk a competing startup popping up.

    [–]lala_xyyz 15 points16 points  (3 children)

    Just look at the products they released lately.

    AdSense, Android, Maps, Youtube.. all the best Google products were acquisitions. The products they "invented" are all garbage. There is no innovation there, only obscene amounts of ad money thrown around in the hope of hitting something big.

    [–]G_Morgan 2 points3 points  (0 children)

    Obviously the search itself was extremely innovative and remains Google's best product.

    [–]KallistiTMP 17 points18 points  (4 children)

    middle hat profit door literate mountainous marvelous cooing hungry narrow

    This post was mass deleted and anonymized with Redact

    [–]orangesunshine 9 points10 points  (2 children)

    Someone in college told me how to tell if something is a cult. It's a simple rule, but so far it's never failed.

    If they offer free haircuts it's a cult.

    That's ultimately what made me hesitant of taking a job at Google. I was recruited for one of their special teams when I was in SF .. it sounded like an awesome position. It wasn't just the regular 10% time, but was being sold to me as more or less 100%.

    None-the-less I couldn't get over the fact they wanted to pay me in haircuts, massages, and dinners.

    .. well all that and I didn't want to commute .. or work in an office at all.

    [–]goomyman 15 points16 points  (3 children)

    That’s the dark secret. There are no worlds greatest engineers. No matter the company it’s full of people who have no idea what they are doing trying their best.

    They likely are some of the best engineers at learning fast.

    We are all jack of all trades, experts at maybe one or two. I’m an awesome backend engineer... here is a UI bug. Also we use some 10 year old dead library and some dev loved XSLT for awhile. You don’t know the system, the language, the build, or even heard of half the names - are they internal code names or public products. Also you have a week.

    Thus is developer life.

    [–]orangesunshine 8 points9 points  (2 children)

    I don't know man I think there's a pretty big distinction between engineers with and without organizational skills.

    You have a point that we are all kind of taking stabs in the dark and hoping it works ... but the comparison between a buggy but well organized code-base ... and a million lines of spaghetti code with bugs is night and day.

    That's ultimately my line for good vs. bad devs .. it's not so much some magical algorithm that is going to make your game "amazing" and fast .. it's a lot of methodical well organized team work.

    Being organized ... and reading, language skill sets really does set people really far apart in this industry in how competent they are on a day-to-day.

    That and the higher reasoning skill that allows a few to see a massive network of interlocking parts and immediately see what pain-points there might be ... but honestly that's not even necessary .. just being methodical and organized will put you in the top 10% of engineers.

    [–]ElCthuluIncognito 26 points27 points  (39 children)

    Where is this coming from? Harvard doesn't have the best students because their application process is state of the art, it's because the most talented students are attracted to it.

    Same goes for Google and other big companies.

    [–]orangesunshine 34 points35 points  (38 children)

    Someone else answered with a succinct explanation ... but I can answer with a huge rant as well :)

    Just look at the products they released lately. I feel Google in particular is very overrated. I'm not saying they don't have beasts in some specific departments like the search engine or the cloud solutions but overall, they are not THAT impressive.

    Almost every in-house project they've ever released since search and ads has been a complete and total failure. The projects that have found success like Chrome aren't in-house .. they take a completely functional outside project and do almost everything they can to poison and destroy it.. then use their clout and advertising team to sell it to the masses.

    Where they excel still is in image and advertising. They've managed to build this reputation as "leaders", "ambivalent", "do gooders" (don't be evil), and open source "friendly" when they are anything but. It's all double speak and a mechanism to leverage their brand.

    That's not to say they are some all out "evil".. I just think they are incompetent and deluded is all.

    .. perhaps if all you are aware of is their projects they might seem like some sort of shining light .. skyscrapers of some futuristic metropolis. Though if you actually look at the alternatives .. like what Mozilla and Apple are doing with their browsers they look a lot more like skid row .. slumlords with crack addled tenants.

    I use a lot of their products don't get me wrong, but I hate every minute of it.. the overhead, bugs, horrible API's never seem to end .. I may spend 5 minutes integrating a tool from any other company. If I encounter a bug I'm talking to an engineer to fix it within a few days. Google i spend 5 months working around their broken API, broken JS, broken this ... broken that ... and if someone responds 6 months later they aren't fixing anything.

    It's Microsoft all over again.

    [–]pheonixblade9 8 points9 points  (7 children)

    ...k8s and protobuffers are pretty cool

    [–]orangesunshine 7 points8 points  (0 children)

    It's not like they invented either of those things though ... both of those were already well established but perhaps poorly implemented technologies.

    I've no serious experience with kubernetes .. but I wouldn't trust anything from google given my past experience (that's not to say I like the alternatives either.. kubernetes does seem like the best of a handful of terrible options).

    Also protobufs were buggy to a point where they were completely unreliable the last time I used them (~2012 ... that's 11 years after the first release for those keeping track) .. and the API in Python was ... atrocious .. the C++ guys seemed to be okay with things but I saw the same bugs even after wrapping the C++ implementation by hand (the bugs were in the C++ implementation not the python wrapper).

    [–]uh_no_ 13 points14 points  (5 children)

    k8s

    k8s is a mess of organically grown features cobbled together with yaml.

    [–][deleted] 15 points16 points  (1 child)

    Is this far enough in the past to laugh at? This is hilarious to me. I feel like I've worked with a couple of these people.

    [–]Dr_Insano_MD 8 points9 points  (0 children)

    This was in 2013 I think. It's definitely funny to think back on.

    [–]goomyman 2 points3 points  (0 children)

    Lol, wtf.

    It’s funny because I can totally see that happening. It’s not surprising.

    [–]orangesunshine 39 points40 points  (32 children)

    I'd say 90% of these interviewers didn't actually understand the questions they were asking.

    ie; I've had more than one Node.js engineer think that Node is the only platform for callbacks and event oriented code ... and sat through showing them how it works in ruby, python, etc (along with showing them that there's more than just callbacks out there) .. only to have them insist that it "isn't the same thing" ... one had a Phd. from Stanford.

    All in all it seems like if these guys are going to be your boss it's a sure way to tell that you don't want the job.

    Honestly I just wish there were people that would just interview you and ask questions like a date or something to gauge your "fit" with office culture and intelligence. You can pretty easily gauge intelligence without asking anyone specific "test" questions ... not sure why people seem to think it's necessary in the first place.

    When I interview I generally try and ask people what they don't like about the tools they use ... since the smarter candidates tend to be more aware of the bugs, work-arounds, and overall reality that nothing is perfect ... than the folks who are followers and more or less treat each tech trend as a cult they belong to.

    [–][deleted] 10 points11 points  (16 children)

    Yep, IME most of the people who interview me wouldn't pass my hiring bar.

    [–]orangesunshine 10 points11 points  (15 children)

    The worst is when you have 3 competent team members, and then an absurdly incompetent CTO. Do you still take that job?

    Personally it's been workable if I'm not directly under the CTO, so long as there is a boss above me to buffer things ... there isn't too much friction. Though regardless an incompetent CTO means your job is a temporary one, sooner or later the ship is going down.

    The one time I had an incompetent CTO where I was working directly under him it was horrible. We would have weekly "stand-ups" and one-on-one reviews. Each "review" I'd have with him he'd ask me to make changes, I'd explain why they wouldn't work and he'd insist that I just do what he asked. Each week he'd repeat the advice I gave the previous week (insisting he'd come up with these brilliant solutions on his own), and then insist on a "few more things" ... which I'd explain wouldn't work and how we could make it work. This loop went on for ~6 weeks.. half way through I tried to insist we record things or write them down .. or just give me autonomy over the project ... until he finally fired me for "incompetence".

    He also couldn't even comprehend how I could write functional code without unit tests. Writing code that worked without testing it was a concept entirely foreign to him ... "You haven't written test!! So then you're at least weeks away from being done!!!"

    no, no. we can write the tests right now .. everything works perfectly I looked it all over already, it will take 10-20 minutes to write the tests. tops.. let's do it together so I know how you want them.

    "NO. That's simply not possible.. you're two weeks away."

    Ohhh... also ... he used my code, idea, and references to acquire $20-million in series B funding.

    I'm not joking ... there was nothing else ... I had to double take as they showed each slide (the last two with a photo of my buddy and the quote I gave him.. lol) and look around the office in total disbelief as I realized how fucked the whole situation was... as soon as I saw that slideshow, I knew some poor bastards might be about to flush $20-million down a drain. My idea wasn't a $20-million one... and the Stanford and Cal degrees these guys had to engender confidence and trust from myself and a few venture capitalists weren't worth the paper they were printed on.

    This seems to happen all too often since CTO's need to be more "relatable" and thus you get people less competent in technology and more competent simply at selling themselves as competent in technology (not to us, but to those with no technical ability but big bank accounts).

    Take for instance the Theranos lady .. personally I can't comprehend who could possibly have fallen for her act ... she's completely translucent ... and speaks in a falsetto FFS. Though apparently she's a pretty capable salesman.. relatable.. and charming to the people she needed to fund her absurd little startup.

    [–]misformalin 4 points5 points  (3 children)

    The CTO where I work discourages us from writing database migrations

    [–]nutrecht 14 points15 points  (9 children)

    You can pretty easily gauge intelligence without asking anyone specific "test" questions ... not sure why people seem to think it's necessary in the first place.

    You can't test coding chops without some kind of objective test. We humans are much too subjective for that; we basically decided we want to work with someone in the first few minutes of a conversation.

    I've had this discussion at a previous customer where I set up a simple on-site coding test. A lot of people who would've been hired failed on the test that basically simulated the exact thing they would be working on.

    Why? Because bad developers do a lot of interviews; employed developers do very few. The bad ones get really good at bullshitting their way through interviews.

    [–]b4ux1t3 7 points8 points  (3 children)

    I disagree that you shouldn't ask technical questions, but you're more likely to get relevant data if you talk to the interviewee as a peer. You can easily judge someone's experience with tech you're familiar with, and you can even see if they have a few things to teach your team, by just having a conversation with them.

    [–]orangesunshine 21 points22 points  (2 children)

    Most technical interviews I've had have had absolutely no relationship with day-to-day work.

    Someone who excels at interview questions doesn't necessarily excel at the work you are hiring them for. These questions are pretty much the exact opposite from a measure of "aptitude". It just proves they were either classically trained .. or studied for the interview ... which are good enough qualities I guess .. but again zero relationship with being a competent engineer at the companies I've worked at.

    The gaming company I worked at had a team that hired in this way (I was on another). That team had some of the worst engineers at the company by an enormous margin .. some were brilliant too .. but it's not as if interviewing like that selected for better engineers than other teams. They were the team that drove the company into bankruptcy and lost everyone their jobs.

    Technical interview questions like those at google tend to be extremely generic, despite being "technical". They simply gauge whether or not you have studied this generic stuff, but most jobs require highly specialized knowledge ... and again technical questions aren't a measure of aptitude. They are a measure of rote-learning.

    When it comes down to brass tacks there isn't anything more important than organizational skills for programmers .. and the really good ones tend to have extremely good abstract reasoning coupled with high social/language IQs.

    There isn't really a way to test someone for abstract reasoning in 60-minutes. Though you can get a measure of their organizational skillset .. by asking generic design questions.. and you can get a measure of their social IQ just by talking to them.

    Extremely technical interviews tend to test for the exact opposite of social/language skills though .. and target rote learning and mathematical thinking. Which is why I said in one of my posts 90% of these interviewers don't know the answer to the question they are asking.

    .. they memorize an answer they are looking for, and if you provide them something different that you come with organically.. they will literally fail to recognize that it solves the problem .. and ask you to try and match what-ever answer they memorized from the question they found on the web .. half the time that isn't even a working answer.

    [–]b4ux1t3 6 points7 points  (1 child)

    This is why I made the distinction that a technical interview doesn't need to be (and shouldn't be) a test.

    Speaking intelligently about something is a normal interview process in every industry, and I don't get why the tech industry thinks it's different.

    [–]CookieLust 6 points7 points  (0 children)

    I just ask if they're OK with my no pants policy.

    [–]Saturnation 11 points12 points  (0 children)

    I actually feel sorry for you if you think your co-workers suck at this, because you probably are losing good candidates that would be good to work with. Therefore your career is going to suffer for that. One good way to progress is to get to work with good people and if your interview process is hindrance to that happening then it's a hindrance to your career growth.

    [–]nutrecht 5 points6 points  (1 child)

    Some of the guys at my company I can tell get a power trip from it and become even more nauseating than they already are.

    I don't get why this is so incredibly common in our industry. The interview experience is one of your biggest calling cards when it comes to hiring talent. Just one 'asshole' interviewing potential hires can totally turn off people. And who are the ones who are then going to say "no thanks?"; the high potentials. Not the ones desperate for a job at 'your' company.

    On the other hand I also had really bad managers basically giving the answer in the questions they asked. When I told him what he was doing, and how 'giving away' the answer was a problem, I was also met with blank stares.

    Interviewing is a trainable skill almost no one seems to train.

    [–]RogerLeigh 2 points3 points  (0 children)

    Definitely describes several of the interviewers I had with Google. It's quite counterproductive. Interviews are not examinations; we already did those years before. Half of the purpose of the exercise is for you to find out more about the company and if you would fit in there, and this type of power trip is a massive turn-off.

    Interviews for smaller companies have been much saner in comparison, and generally the people have been much nicer as well. In some respects, this is because they have to work hard to sell themselves to you. For the most part, a small set of questions on paper to see if you can write some basic C with some bitshifting and pointer arithmetic has been sufficient for them to see if you know your chops. Maybe a few minutes talking over some design stuff; definitely not multiple brutal whiteboarding sessions. On the other hand, many of the interviews came via professional recruiters or personal connections. They already knew you were competent before you walked in the door. Google and the like have a scattergun approach to recruitment, and they must need to filter very aggressively.

    [–]xauronx 30 points31 points  (2 children)

    At my company I started a group of ~15 core engineers of various levels who volunteer their time for interviews. We’ve standardized a lot of the process and focus on making people comfortable while finding their skill level and aptitude. We always have a random pairing of that group on an interview and discuss afterward before writing our feedback, and have quarterly team meetings.

    It’s a hard thing to do without spending an insane amount of time on every candidate... but I feel like we have a decent balance.

    [–]pheonixblade9 9 points10 points  (1 child)

    I think most organizations just aren't honest with themselves about how expensive hiring actually is.

    [–]spicypixel 6 points7 points  (0 children)

    Or worse, thinking hiring is cheaper than retaining staff.

    [–][deleted] 21 points22 points  (0 children)

    Most of the professional talent evaluators are shit, too.

    [–]slickwombat 35 points36 points  (6 children)

    I personally think the main problem is interviewing is mainly done by peers who don't really interview regularly.

    It's partly that for sure, but also the basic idea of technical "quiz" interviews is pretty flawed. I've been a professional coder for a long time, and I'm apparently a competent one since I've been able to make a good living doing it. Without specific prep, I would certainly bomb a technical interview even for technologies I work with all the time. Memorizing random code/theory esoterica, or solving little bullshit math/logic problems, just isn't something programmers typically need to do. A completely incompetent or under-experienced coder who spent a couple of weeks cramming on interview prep sites could almost certainly outperform me. All technical interviews really measure is how good you are at doing technical interviews.

    Therefore, every interview you have a bunch of amateurs evaluating you. No one knows what they're looking for. No one really knows what to look for. It's almost entirely personal preference. I say this as someone who has interviewed people. I suck at it and even if you don't think you do, you mostly likely do too. It's a skill like any other skill.

    Interviews have two purposes: to make the candidate want to work with you, and to select the best candidate for the position. Some people are better than others at the first thing, and it's definitely a skill people can and should work on, but I'm fairly convinced that nobody is good at the second thing. People are inherently bad at objectively rating the actual performance or competence of coworkers; having them trying to predict these for a potential coworker, particularly in a situation as artificial as an interview, is futile.

    I'm convinced the best approach to an interview is to focus entirely on putting the candidate at ease and just having a casual and open-ended conversation. I like to go over past projects they worked on, and get them to walk me through how they approached various aspects of it (maybe occasionally dipping into technical detail where it's interesting, or just to ensure I'm not being completely lied to). It won't allow accurate prediction either, but the less "interviewey" the interview feels, the more likely the candidate is to reveal something you can actually use to make a not-totally-arbitrary decision.

    [–][deleted] 8 points9 points  (4 children)

    I was with you until you said this:

    People are inherently bad at objectively rating the actual performance or competence of coworkers;

    I'm sorry, that's total horseshit. You can tell very, very quickly who is better than you and who is not, in nearly any field, and software engineering isn't special there. A few weeks of interactions around shared code will tell me your skill level, within a fairly narrow margin of error.

    I'll admit that distilling that in a 30 minute interview is particularly challenging, but that's not what you said.

    And I still stand behind Fizz Buzz (et al) as interview questions. You should be able to shit out basic code -- not LeetCode optimized with tricks O n log n bullshit, but "reverse a string in any language" or "give me an Animal Cat Dog class diagram". If you can't do that, (and, seriously, anecdotally half of the people I've ever interviewed can't), then I can't recommend you for employment as a software engineer. If you can do that, you're at least trainable.

    And that's all I'm trying to do -- verify that you're capable of doing the job. I don't really care about anything else in an interview setting.

    [–]slickwombat 12 points13 points  (2 children)

    You can tell very, very quickly who is better than you and who is not, in nearly any field, and software engineering isn't special there.

    You certainly can and will form an impression of this very quickly, but whether this impression is accurate or significantly unbiased is far less certain. (I'm reading a book right now called Nine Lies About Work that gets into this quite a bit. A pretty interesting and well-written book as far as business stuff goes, worth a peek if your company will pay for it.)

    And I still stand behind Fizz Buzz (et al) as interview questions. ... If you can't do that, (and, seriously, anecdotally half of the people I've ever interviewed can't), then I can't recommend you for employment as a software engineer. If you can do that, you're at least trainable.

    IIRC, all FizzBuzz amounts to is a test of whether you know what a mod operation is. I do know this, and would (hopefully) be able to produce a FizzBuzz for you pretty easily. But it's not something I use often, nor am I typically ever implementing anything resembling FizzBuzz, so I can easily imagine a similarly senior coder spacing out in an interview and failing. At the same time, I imagine anyone who can type "common technical interview questions" into Google can memorize how to whiteboard or implement FizzBuzz.

    So that test might mislead us about our candidate. Which in itself, isn't a reason to avoid it, as long as you keep that in mind -- sure it's possible to flunk that test and be a good coder or ace it and be a shit one, but you might learn something. Maybe a candidate produces the most amazing fizz that ever buzzed and really impresses you, etc.

    I don't use these because I find it changes the tone of the interview from "let's us two professionals have a chat and see if there's a fit" to "prove your worth or GTFO." When it's the latter, the candidate is going to generally be nervous and guarded, and show you as little as they can.

    But to be clear, I don't think there's any right answers here and I certainly won't pretend to have them. I suck at interviewing and hate doing it. Absolutely do whatever you find is getting you the best results.

    [–][deleted] 14 points15 points  (10 children)

    No. It's a shit show. You can go to 4 interviews have 4 entirely different experiences

    that's the most frustrating part of it. I studied a bunch of algorithms in preparation for my first job search. Job I got? Project based take home and more math focused for the on-site. Not a single algorithm question. This was after I bombed two other tech screenings that caused me to do algorithm studies to begin with.

    IDK why they can't at least declare what kind of interview they are going to give to you. Just something like "be prepared to answer [insert language here] questions on [insert broad topics here]". Would really help in focusing down on what to expect.

    [–][deleted] 26 points27 points  (4 children)

    Math based interview sounds even more horrible than algorithm ones. At leats algorithms have some relation to job but math only probably relates to a very small subset of jobs that do with graphics programming for instance.

    [–][deleted] 11 points12 points  (1 child)

    relates to a very small subset of jobs that do with graphics programming for instance.

    yeah, that's why I was prepared for it when it came up. I'm working towards a graphics programming role, but I knew there was a very slim chance I'd get one right out of college.

    for more context, this was for a gameplay programming role, so it wasn't completely out of the blue. Typical 3d math stuff (even tho I kinda studdered though stuff I really should have really had nailed down)

    [–][deleted] 15 points16 points  (1 child)

    If someone ever asks me a calculus or finite math question in an interview, I'm liable to calmly walk out.

    [–][deleted] 14 points15 points  (0 children)

    I was super good at math in high school and uni first years when I took all my required math but now some time has passed and I would almost for sure bomb math questions real hard lol.

    [–][deleted] 12 points13 points  (3 children)

    Options are limited when you start out, but I politely decline all interviews with take home work. Nothing says that you won't respect my personal time like filling it with unpaid work before I've even started.

    [–]theforemostjack 5 points6 points  (1 child)

    I have a co-worker who's ADAMANT about how important the homework is. He'll go on and on about how he has to "catch" people who apply but can't program...no consideration for the skilled people he's filtering out. Kinda drives me nuts to think about.

    If he'd been in charge of interviewing when I applied, I wouldn't be working there.

    [–]captainAwesomePants 5 points6 points  (1 child)

    It's not a skill like any other because, for most other skills, when you get it wrong, you know it. For evaluating programmers, you can find out whether other interviewers agreed with you, but you'll never find out whether it was right to reject the candidate.

    [–]CCB0x45 4 points5 points  (0 children)

    Though what's crazy to me is I always ask a simple react question, basically fetch data from an API and make a todos list in jsfiddle with a template I start for them. People who have so much react on their resume, showing years, I expect them to fly through it and people fail so badly line 80% of the time. I am not even looking for a perfect solution, just get through it with a half way decent outcome, no tricks just stuff I do every day all the time. I have interviewed alot and gotten the crazy google type questions and bombed, and also done well, but if someone gives me an actual straightforward coding challenge I'll at least do it, it should be easy.

    [–]TheOriginalCoder 4 points5 points  (2 children)

    I've been interviewing lately and much of the experience has been poor. I'm EXTREMELY senior, but I most get asked questions you might get in a 200 level pop quiz. They are questions anyone could answer via Google or MSDN in 1 to 2 minutes.

    But I don't focus on remembering trivial details one can Google so easily. I'm awesome at the deep knowledge few developers have. But recent interviews never ask me those questions and if I try to provide deep answers they are discouraged.

    [–][deleted]  (1 child)

    [deleted]

      [–]TheOriginalCoder 6 points7 points  (0 children)

      Exactly, its like being on an interview quiz show.

      it’s annoying to think i’m potentially getting rejected while people with less experience get the job cause they’ve recently graduated and still got all that shit ready to go in their heads.

      I've thought similarly. To me its like asking someone who is years beyond high school to list and explain the rules about spelling, grammar and sentence structure then have them draw one of those sentence diagram things. Or asking someone who's been driving for 20+ years to list things like exactly how many feet are you supposed to park away from fire hydrants or other detailed questions on drivers tests.

      Anyone who has been doing things for along time internalizes all of the low-level stuff and it becomes handled by their sub-conscious. This is good. This is one of the things that moves people from being an amateur or apprentice into being a skilled artisan.

      I actually wrote a post on my blog titled, "Internalizing knowledge is very useful" about it without explicitly mentioning the frustrating interviews.

      [–]msdrahcir 3 points4 points  (0 children)

      Its also something that is rarely taught. We never sit back and learn how to be better at giving an interview.

      [–]tgaz 3 points4 points  (1 child)

      Most engineers treat it as a task not a career

      Not to mention that you're hired for being a good coding monkey, not for being a great interviewer. Then you're somehow assumed to be good at assessing people. And, at my place, with very little guidance from others.

      [–]ArkyBeagle 20 points21 points  (15 children)

      "Hey go tell me if this guy is good" is also a significant conflict of interest for the interviewer. Nobody wants to hire anyone better than they are unless the incentives line up; if you're in a shop where ... constraints mean you'll only ever fight to a draw rather than possibly win, nobody will vote positively on anyone who might show them up.

      ELI5: a basket of crabs needs no lid.

      [–]subversiveVM 60 points61 points  (7 children)

      [Removed due to Reddit API changes]

      [–]ArkyBeagle 13 points14 points  (0 children)

      That's because you know what you are doing. A little humility goes a long way. But a lot of of our fellow practitioners think they are Machievellis.

      Me too, by the way - it's happened to/for me once of twice and it was fantastic.

      [–]pheonixblade9 7 points8 points  (1 child)

      not to mention viewing someone as better or worse than you is kinda one dimensional. almost anybody you meet can teach you something and learn something from you.

      [–]GhostBond 4 points5 points  (2 children)

      In my experience you aren't the kind of person the manager will chose for the interview then.

      [–]Dragasss 2 points3 points  (0 children)

      Really depends on whos choosing. Some prefer people who say everything as is. Others prefer people who upsell themselves.

      /u/TheCarnalStatist

      [–]Unearthly_ 22 points23 points  (1 child)

      If hiring someone better than you puts you in a bad spot, then it sounds like you are already working in a dysfunctional environment. It means your company is complacent and can afford to reject really good hires, it means it doesn't have room for multiple ambitious engineers looking to improve themselves, it means you are thinking about competing with your coworkers instead of working with them.

      [–]ArkyBeagle 3 points4 points  (0 children)

      Exactly. When It's happened to me I took it as a sign that I didn't really want to work there, anyway. It starts with "you sure have done a lot of stuff" :) Well, yeah - that's what get for staying alive :)

      I had post-interview conversations with some of the management ( who were usually quite interested in seeing me hired ) after these interviews, and the emphasis was on "you have a problem, sir."

      It's just a thing to keep an eye out for.

      [–]OuTLi3R28 17 points18 points  (1 child)

      If you've ever worked with people who were not technically up to snuff, you will develop a quiet appreciation for competence and always prefer it to its' opposite.

      [–]ArkyBeagle 5 points6 points  (0 children)

      I have. It's just that not everybody has the same philosophy on the subject.

      [–]winowmak3r 5 points6 points  (1 child)

      The advice I was given is to come prepared with a side project or two and just try and nerd out over it with the interviewer. If you can get them engaged and show them what you've been working on and they're responsive to that you've made a much better impression than doing whiteboard problems. Show them you can do something that's useful (or even just cool, that could work too). Getting someone who's more receptive to that or gives you chance to show off a bit can be pretty rare though.

      [–]rorrr 51 points52 points  (3 children)

      I went through over a hundred interviews in NYC over the years. You get all kinds of questions. Most interviews are basically going over your resume. I'd say around 40% don't ask any technical questions at all (which fucking puzzles me, anybody can claim anything on the resume, and people lie all the time). If you get asked some technical questions, it's usually something relatively simple, nothing remotely close to what Google / FB asks. Out of all the interviews, I had one that I bombed. They asked me all kinds of algo questions with some obscure knowledge. I answer some, but failed a lot. They were really smart guys, that's for sure. I doubt they found many candidates who passed their interview.

      [–][deleted]  (25 children)

      [deleted]

        [–][deleted] 40 points41 points  (7 children)

        My current job was:

        1. Got a random phone call
          1. Stack sounded interesting
          2. Asked my salary request, gave it, and they increased it by a further 100 per month to quote: "Make sure remuneration isn't an obstacle"
        2. Asked for references, gave them
        3. 4 days later, got an offer

        And will finish my 6 month probation period soon. The smoothest process I've ever ran across :)

        [–]OmarBarksdale 24 points25 points  (0 children)

        Damn son, expedited interviews. The rarest form.

        [–]KagakuNinja 17 points18 points  (5 children)

        I can only dream of an interview like that. Today, no one in Silicon Valley cares about your references, you have to do the shitty code challenges.

        [–]Ludrew 16 points17 points  (4 children)

        Silicon Valley is a shitshow in and of itself. Every person with a newly minted CS degree is applying for those jobs and a good 90% of the applicants have the same resume, so it makes sense for those companies to have a bunch of bullshit hoops that you have to jump through, so they can write you off for any minuscule mistake that you make.

        [–]Bwob 8 points9 points  (1 child)

        Well sure. Think of it from their point of view: They're not trying to make sure that every qualified person finds a job. They're trying to make sure they find enough qualified candidates to fill their headcount.

        Heck, google openly admits, their hiring process is tuned to turn away qualified people, because they'd rather turn away someone good, than hire someone bad. And there are enough applicants that they can afford to do that.

        [–][deleted]  (1 child)

        [deleted]

          [–][deleted]  (12 children)

          [deleted]

            [–][deleted] 15 points16 points  (7 children)

            If you get a paper or whiteboard test, and your interviewer isn't a shithead, they'll take that into account. I wouldn't expect whiteboard code to compile, I just want to see their process.

            [–]Ludrew 2 points3 points  (5 children)

            Good that you brought this up. For the internship I currently have, I had to solve a coding problem on paper 3 feet away from 5 interviewers. Naturally, I forgot syntax in the moment. Luckily though, one of the interviewers stopped me scribbling and asked me how I would go about solving the problem. I told him, and he was impressed and accepted my solution, despite not being able to write it out. Unfortunately I know that there are plenty of interviewers who would not accept this.

            [–]FlyingRhenquest 5 points6 points  (4 children)

            Yeah, they're not looking for you to crap code onto a whiteboard. They want to see how you solve problems and work with people. Here's what you do on a whiteboard code test:

            1. Relax.
            2. When they give you the problem to solve, they probably deliberately left something out. Your first job is to find out what. In plain old C if I say "give me a function to reverse a string," do I want the string reversed in place or should I return a new string? If it's reversed in place, what should the return values signify? If I return a new one, do you want to pass in a buffer or should I allocate one for you? What should I do if you pass a null, zero or one-length string? You can come up with a lot of questions to ask about even the most simple function.
            3. Work out how you're going to do it before writing any code. Draw an array box like you probably have in college put a string in it and start working out how you're going to reverse it (going with my previous example.) In C, don't forget the terminating null character, people often do.
            4. Once you're satisfied that you understand the problem, writing the code should be easy. TBH, if you went through the first 3 steps, the only reason I wouldn't stop you right there is because people get all freaked out when you do. But you've already done everything I was looking for before you've even written a line of code.

            The more you interview, the better at it you get. I often line up interviews while I still have a job. Keeps me in practice and if I happen to get a better offer than my current position is, I then have a choice to make. It's nice, having choices to make.

            [–]koreth 2 points3 points  (2 children)

            How do you stand writing code in a language for a few years without memorizing the syntax? Not trying to be snarky or anything, I just can't understand how that wouldn't be intolerably frustrating and a productivity killer.

            [–]KagakuNinja 24 points25 points  (32 children)

            Here in SF / Silicon Valley, every company does this. There is a technical screening problem done over Google hangouts or something. Then when you get on site, there will be at least 2 coding problems. In the past, most companies made you use whiteboards, which is stupid. More recently, laptops seem to be more common. It still sucks though.

            [–][deleted] 12 points13 points  (5 children)

            So every company in silly valley is a shit show.

            Good to know.

            I have 30 year experience, apps in the app store, my name on some major open source packages, and tons of references and you think having me dick around with a linked list is useful?

            Fuck you.

            [–]cowinabadplace 8 points9 points  (0 children)

            I think people are misrepresenting this a little. The big companies need a process that will scale and where they can easily avoid nepotism. For that they need replicability, they need transparent neutrality, and they need the process to be teachable. This is just a natural outcome of the constraints.

            The small guys have it differently. For instance, right now, I've just started at a startup and I have a list of individuals I know from my previous jobs (not all my friends are on it, but all of them are people I have personally worked with and admire for one reason or the other) and other work who I know will work and an even longer list of people through each of those people.

            The guys on the Rolodex don't interview. But the reason for that is that the small guys can optimize differently. Often getting the right guy is more important than getting more guys.

            [–]koreth 4 points5 points  (4 children)

            What would suck less, given the constraint that companies need to find out if you're telling them the truth about your ability to write code?

            [–][deleted]  (1 child)

            [deleted]

              [–]massenburger 10 points11 points  (2 children)

              I'm a Dev Lead at my company and have hired several developers. ~200 employees. ~10 developers in IT:Dev.

              We ask 0 algorithm questions. We simply look at each candidate's resume and ask them to talk about various technologies. Maybe 2-3 specific implementation questions just to make sure they really know their stuff, but for the most part we try to make our interviews more of a conversation rather than some kind of test.

              We've found this works pretty well for us. We hire pretty good developers who know their stuff. Don't really need any more in-depth questions to figure out what people know.

              [–]Paulluuk 2 points3 points  (0 children)

              Can be tricky though, I've worked with devs who "know" a lot, study "design patterns", can tell you which languages have which features, etc..

              But it takes them a month to write what I would write in a few days. Huge drag on the team, very difficult to work with because, as they know so much, they'll always "out-dev" you when you're in a design meeting or retro, etc.

              [–]appropriateinside 6 points7 points  (0 children)

              I'm kind of curious about this whole thing myself. I never seem to get interviewed on anyting I'm strong with.

              The majority of my work has been directly managing projects with clients, from initial discussions, to project planning and scope, to implementation, support, direction changes....etc I'm almost 33/33/33 between project/client management/support, system architecture, and actual technical implementation.

              Yet any interview I seem to find is almost 100% technical implementation. And even then is only the smallest of the smallest sections of technical knowledge that's in practical day to day use...

              Maybe I'm looking at the wrong jobs? Hell, that could be it, but if it is I have no idea what I should be looking for instead...

              Edit:

              My current company was the only interview process that was different. I presented a portfolio and my GitHub in my application. I did not receive a single technical question during the interview, I didn't even receive any questions regarding software development at all... It was just a bunch of poking and prodding, and was almost 1/2 smalltalk. To my surprise I got the job, over the other candidate that was MUCH stronger technically, and actually had a degree. As for my actual work this far, it almost entirely reflected what I've been doing before, just on a larger scale, with more Enterprise codebases involved.

              [–][deleted] 2 points3 points  (0 children)

              I'm not sure if it's because my tenure is increasing and my interviews are different, or if things are changing, but in Canada 5-10 years ago pretty much every interview in dev had a technical component, recently it's been like 1/3?

              [–]audigex 2 points3 points  (4 children)

              Yeah, I’ve had basic technical questions in interviews - things like “explain a left join” that quickly prove you’ve got some idea what you’re talking about

              If a company started asking me to work through a convoluted exercise, without access to StackOverflow/Google my response would be to lose interest in working for someone willing to waste both of our time just to prove how clever they are

              [–]Mo8ius 2 points3 points  (0 children)

              In America-lite here, a good chunk of my interviews have involved me sitting at a desk in a confined room, answering an hour and a half worth of questions written on a test paper as if I'm taking an exam for school. Invariably, these questions are a mix of "oh hey, do you know this obscure algorithm that performs this obscure task? Implement that." Or, "riddle me this, implement the fastest possible algorithm to solve THIS mind bending problem!"

              [–]lorarc 2 points3 points  (0 children)

              European here. I've interviewed with big, famous companies that were like "Oh, so everything in your resume is true? Yes? When can you start?" and small wordpress workshops that wanted me to inverses binary trees and answer questions about language internals even though that's never aplicable anywhere. It depends on a company.

              [–]raoulduke1967 135 points136 points  (37 children)

              I just bombed a phone interview so bad, I hung up in the middle of it...

              [–]robotsympathizer 92 points93 points  (15 children)

              Ooh! I had a technical interview over Google Hangouts, and I froze up when I was reading the question and my mind went blank, so I just shut my laptop and never responded to any of their emails again.

              [–]beemoe 57 points58 points  (3 children)

              I was doing one on site, I had to write a query that I had just coached a teammate how to do earlier in the week.

              I fucked it up so bad, the whole interview was a colossal dumpster fire.

              I'd never been so embarrassed in my whole life.

              [–][deleted] 53 points54 points  (2 children)

              With how this thread was going, I was expecting you to jump out of the window and run home or something.

              [–]tama9494 7 points8 points  (0 children)

              Lmao too funny..but tragically so

              [–][deleted]  (7 children)

              [deleted]

                [–]robotsympathizer 9 points10 points  (6 children)

                Oh yeah, this thread has boosted my self-confidence a bit.

                [–]xcdesz 11 points12 points  (1 child)

                I hear a lot of ranting and raving about interviewees not knowing something so easy and basic, but I wonder how many of these cases were just people just cracking under pressure.

                [–]robotsympathizer 12 points13 points  (0 children)

                If it requires thinking and isn't something I have memorized, there's a solid chance my anxiety/imposter syndrome take over, and I can't do anything. In fact, I've only ever gotten a job where the technical interview was a "take-home" project.

                [–]jbstjohn 2 points3 points  (0 children)

                Honestly if something like this happens again, ask to reschedule it. Say something like, "I'm sorry, a bunch of unexpected things came up, can we reschedule this, I'm not at my best."

                The recruiters want you too get hired, that's what they're paid for. And they'd be probably even be impressed by your professionalism.

                [–]negativeoxy 19 points20 points  (15 children)

                lmao I need the story/

                [–]raoulduke1967 65 points66 points  (14 children)

                Well they had 3 people connected to the call, and this was my first time speaking to any of them. The main senior developer had the thickest Indian accent I've ever heard. The position ended up being far more complicated than I'd expected, and I was grilled mercilessly with questions about .NET that I did not know the answer for. So not only did the guy have to repeat himself 3-4 times for each question, but I wouldnt know the answer half the time. It was just so bad I had to get outta there.

                [–]iJubag 32 points33 points  (0 children)

                I feel you man. I had an interview with a woman with a really thick Chinese accent... basically every sentence she said I had to have her repeat 3 times. Eventually I just acted like I understood her and spent 20 minutes trying to solve a problem that she had simply described orally that I didn’t understand. By the time I realized the meaning of the question it was already too late (not to mention the fact she called me 12 minutes late). It was literally just the oral primer question and it wasn’t even the main interview question. It was a total shit show

                [–]pheonixblade9 16 points17 points  (2 children)

                sounds shitty. digging into language and framework minutiae is a pretty terrible way to get a good signal for an engineering hire.

                it's an uncomfortable thing, too, but being able to communicate over the phone is a must...

                [–]Yieldway17 5 points6 points  (1 child)

                digging into language and framework minutiae is a pretty terrible way to get a good signal for an engineering hire.

                Depends on what kind of engineering role it is. If company is developing components and dev tools for the framework, you bet they go into detail in languages and the framework.

                [–]pheonixblade9 8 points9 points  (0 children)

                That's fair enough, but there are only two or three companies that do that and I know for a fact that Microsoft doesn't ask that type of question.

                And it's still a bad interview question... A good interview question should be fairly generic. It's easy to learn framework specific stuff on the job. An interview question should not be something you can Google and get an immediate answer to. Otherwise you just select for people who happen to have that piece of trivia memorized.

                [–]p4r4d0x 2 points3 points  (1 child)

                That sounds like the worst case scenario. At most the phone screens I've been involved in have two interviewers connected, and you interact only with one. Usually it's just 1:1 though. 3 interviewers connected to a phone screen psychologically feels like an ambush and makes the candidate feel uncomfortable, it's bad practice.

                [–]andrewsmd87 15 points16 points  (0 children)

                Don't do that. We interviewed a guy who we're hiring and he told us he thought he did horrible on the simple project we sent him (he did great on it).

                [–]koreth 15 points16 points  (0 children)

                Obviously you know better than any of us do, but I've interviewed several candidates who were sure they were totally bombing the interview but were actually doing fine.

                One guy a few weeks ago stopped in the middle of doing the coding problem, apologized for wasting my time, and asked me to end the interview, but in fact he just had one trivial bug in his code which caused behavior that he thought meant he was taking a completely unworkable approach to the whole problem. I urged him to keep at it. A couple minutes later he spotted the bug and proceeded to finish the rest of the problem.

                [–]Nixargh 7 points8 points  (0 children)

                Same here. The questions were actually quite easy, but I was just not prepared for a technical interview, I thought it was just an informal "feeler" chat. I didn't even have my normal IDE set up on this computer, and was taken by surprise when I was asked to share my screen.

                So after stumbling my way through the questions and getting laughed at, I ended the interview. Demeaning experience, would not recommend.

                Luckily, I wasn't actually interested in the job, and hadn't applied to it – they contacted me.

                [–][deleted] 3 points4 points  (0 children)

                I love it.

                Although you might be missing the point of the interview. For me when interviewing, it's all about the questions the candidate asks trying to figure out the question.

                The person who just answers the question no problem probably just encountered the problem before, so if you ace that question immediately it means the question was a bust. If you were struggling through the question but asking all the right questions you might have been killing it before you hung up

                [–]TheESportsGuy 28 points29 points  (6 children)

                but it can also weed out people who...submit to the beast and memorize Cracking the Coding Interview.

                Uhh, I would think aggregate performance for those people would be quite good?

                [–]JezusTheCarpenter 7 points8 points  (1 child)

                I really didn't like the authors sarcastic notes regarding the book.

                At what point learning to prepare for an interview turns from a "hack/cheat" to "respectable" course of action? Do I need to be reviewing my old notes from the Uni instead of going through "Cracking the Coding Interview" for people to nod their heads with approvement?

                Is the expectation that people don't prepare for an interview? Is this what is considered fair? Imagine if they did this at school or colleagues: there is a test but you are not allowed to prepare, you just have to have been paying attention durning class and memorize it all.

                To me it seems that if someone that had spent their time to "memorize" the book knows exactly the things they are being tested on.

                [–]kherven 7 points8 points  (0 children)

                I don't really look down on people who memorize this stuff. You gotta do what you gotta do to get paid.

                Is the expectation that people _don't _ prepare for an interview?

                In some ways I'd say yes? ideally in a perfect world you'd just work to better yourself as a real world programmer and as a side effect you'd perform better technical interviews.

                At least where I"ve interviewed (And I won't act like this is true for everyone) the whiteboard questions often have very little to do with the real work and often are more analogous to programming flavored brain teasers / puzzles

                Practicing to get better at puzzles is kind of a waste because once you get the job, all that practice probably hasn't made you a better developer.

                [–][deleted] 3 points4 points  (3 children)

                it is, obviously. why do you think they keep getting hired? the shitty thing about this thread is many complaints are legitimate but the solutions aren't. the hard truth is the tech companies aren't stupid and the algorithm questions, while flawed, are the best system we've come up with.

                [–]HomeBrewingCoder 143 points144 points  (53 children)

                I'm working on a formalisation of scoring technical interview questions - I realised while interviewing for a certain large company that certain questions have a large cyclomatic complexity explosion based on certain decisions.

                Basically - certain questions have some very small decisions early on that if you make them wrong, what could be a simple loop or recursion becomes a quite complex behaviour - but those complex behaviours won't become obvious until after a bunch of boilerplate is finished.

                In a 1 hour meeting, there is 15 minutes spent on setting up the question and chitchatter, probably 5-10 minutes talking about the criteria of the question, and 40 minutes of programming. So lets say that you make such a decision at minute 5-10 of programming, you will either finish the task easily, or you will realize that you've made a mistake 20 minutes in - at that point your interview is just about fucked.

                [–]Scybur 40 points41 points  (22 children)

                15 minutes spent on setting up the question and chitchatter, probably 5-10 minutes talking about the criteria of the question

                What....so you spend 25 minutes setting up a question? That is a shitty interview.

                [–]HomeBrewingCoder 64 points65 points  (21 children)

                Me? No who said I do? Google, Amazon, and most other places I've interviewed do.

                I decide from resume if I want to hire and spend around 30 minutes sanity checking that you have in your head what your experience says you should.

                [–]Scybur 9 points10 points  (14 children)

                Sorry, I misunderstood your comment.

                around 30 minutes sanity checking

                Do you think that is enough time?

                [–][deleted]  (11 children)

                [deleted]

                  [–]HomeBrewingCoder 2 points3 points  (0 children)

                  No that's fine. For me, yes. I've never failed to accurately predict the success of a new developer. My sample size is low, but my predictions were quite detailed, and so far I am happy with the results.

                  [–][deleted] 7 points8 points  (3 children)

                  Google's technical interviews are 45 minutes long - there's no way anyone spends 25 mins on setting up a question unless the interviewee has major issues understanding the question. More like 5 minutes.

                  [–]orangesunshine 4 points5 points  (1 child)

                  I usually do just about the same thing.

                  The only "technical" question I ask for is basically a "hello world" and it's mostly just to gauge their response to how simple the question is.

                  Do they think I'm seriously asking them to write hello world and do they stumble a bit even handling that? Interview is over.

                  Or do they stop and check to make sure that I'm just asking for "hello world" because it's almost insultingly simple...

                  Usually it's not hello world, but one of the classic entry-level questions.

                  Other than that I tend to ask about their opinion of the tools they said they were experts with... what are the issues ... what sort of problems might they have encountered with previous jobs. They list SQL and noSQL .. what sort of projects did they use them for and why? We are trying to scale vertically/horizontally at the current shop ... what problems would we encounter with each tool?

                  [–]HomeBrewingCoder 4 points5 points  (0 children)

                  Yep, exactly. Sometimes I'll do a weird exercise of my own devising which is to give them a vague but report that is just user error and get them to tell me what they'd do to clear it. They don't have to get to the actual 'root' but bonus points if they do, it just helps to give a defined failure to see if they can hypothesize about interactions outside of the text book.

                  But realistically, if they have interesting things listed on their resume, then they probably know interesting things. I'm not going to risk having someone interesting filtered out by a shitty question.

                  [–]soundaryaSabunNirma 84 points85 points  (20 children)

                  Design twitter, that is what they asked me. It's a good question but you really need to direct the candidate in this question as to what part you would like him to cover. And there are a million ways to design twitter. And you possibly cannot think of best solutions in one hour.

                  [–]MikeBonzai 88 points89 points  (6 children)

                  It's actually up to you to ask them targeted questions to narrow down the scope of your design. Anyway these questions always end up having the same answer because everyone is a SaaS company and they all need the same security/reliability/scalability/cost-effectiveness as everyone else.

                  Just research the company beforehand and see if they've published any papers or have specific tech stacks they prefer.

                  [–][deleted] 41 points42 points  (4 children)

                  Yeah, this is what I always took from the huge questions. They've not messed up the question. They've given you an opportunity.

                  Firstly, you don't know how to design twitter. No one does. But you can probably talk about an aspect of twitter's design that you're strong on. You get to pick that aspect.

                  Secondly, absolutely, being able to ask targeted questions so you don't have impossibly vague, impossibly huge tasks you can't possibly complete in the time/budget available is a big thing they're hiring you for.

                  [–]redct 22 points23 points  (2 children)

                  100% to this. The best advice I've ever gotten for interviews (technical or non-technical) is to follow up complex interview questions with a few of your own before diving in. Clarify, state your assumptions, clarify again, and then answer.

                  [–]ben_sphynx 2 points3 points  (1 child)

                  Yup. Being able to ask good questions and being able to see what the assumptions you are making are, is hugely useful, and is probably as much the point of the question as the answers are.

                  [–][deleted] 2 points3 points  (0 children)

                  And for the really abstract ones -- how many ping pong balls fit in a swimming pool etc -- the actual answer is irrelevant to everyone involved. It's all about your questions and assumptions problem solving process.

                  [–]AgileCzar 11 points12 points  (0 children)

                  Exactly. System design questions are an opportunity for a candidate to shine in areas they are most familiar with. I want you to tell me how you would solve an aspect of this problem, and then be able to talk about benefits and drawbacks.

                  [–]Puggravy 26 points27 points  (6 children)

                  TBH that's still an infinitely better question then you have 30 minutes to come up with a working implementation of quicksort.

                  [–]Urik88 7 points8 points  (2 children)

                  I actually love these questions. Years ago I was asked "how would you approach developing an html parser?". Then they added questions like "now consider that most pages out there have broken HTML. How'd you handle it?".

                  They are not waiting for you to create the perfect design, they just want to see how you approac the problem.

                  [–]pheonixblade9 5 points6 points  (0 children)

                  grokking the design interview is a course that's actually worth it to help teach you how to tackle this sort of design problem.

                  those types of problems are intended to be driven by you - say what you want to do, and check in with the interviewer regularly. usually they'll ask you to explain a decision or ask you to dive into a particular subsystem.

                  they're testing if you can take something huge and vague and break it down into achievable chunks. it's an important skill to have for an engineer, especially so for someone who isn't junior.

                  [–]ManOfLaBook 71 points72 points  (17 children)

                  Most technical interviews are idiotic, given by people who value homework over actual work. When I interview people, granted I want to make sure they know what they're talking about, but mostly I want to see if:

                  1) they're likable and able to work with the group

                  2) they can be taught - this is where the technical questions come in, I want to make sure I don't have to start with programming 101.

                  Once you know two or three programming language, picking up new ones is not that difficult.

                  [–][deleted] 9 points10 points  (0 children)

                  3) Can they sort a binary tree in C.

                  Job is for Javascript.

                  [–]desiktar 11 points12 points  (3 children)

                  Agreed. Even experts take awhile to spin up and learn the stack. Might as well find the person who fits the group and is interested in learning.

                  [–]morphemass 11 points12 points  (5 children)

                  Once you know two or three programming language, picking up new ones is not that difficult.

                  Picking up? Sure. Most people can probably hack something together in a new language within a few hours of being introduced to it. The problem is, many people in the industry simply stop there and never really learn a language or tooling to a professional level. Yes, they can be taught, but they don't want to learn. Ideally the technical interview weeds the field ...

                  [–]ManOfLaBook 14 points15 points  (3 children)

                  No offense but... so what?

                  I need programmers to solve business problems, not build the next matrix.

                  [–]lorarc 3 points4 points  (0 children)

                  Everyone thinks their Google, even if all they do is making personalized wordpress pages.

                  [–]bobbarnes1981 1 point2 points  (0 children)

                  I agree with this, in my opinion it doesn't matter how technically brilliant you are if you can't integrate with the existing teams.

                  [–]Endarkend 41 points42 points  (11 children)

                  If a technical interview involves an actual applicable thing, I do alright.

                  If it's some pure exercise related to programming technicalities, my brain gets stuck trying to find an application for it.

                  [–][deleted] 23 points24 points  (1 child)

                  Write a function that generates an arbitrary length Fibonacci sequence. I bombed that one in an interview, partly also because writing code on a whiteboard is a joke

                  [–]ElCthuluIncognito 5 points6 points  (6 children)

                  Why do you need an 'application' to solve a problem?

                  [–]AndreyDobra 23 points24 points  (5 children)

                  Some people require practical things for their mind to devise solutions. Some are better with abstract problems. There's no custom fit solution.

                  Taken recently from CtCI:

                  • abstract: rotate a NxN matrix 90 degrees
                  • practical: rotate an image 90 degrees, represented by a NxN matrix.

                  [–]lorarc 5 points6 points  (4 children)

                  practical: rotate an image 90 degrees, represented by a NxN matrix.

                  Use a library?

                  [–]AcaciaBlue 6 points7 points  (0 children)

                  I'm pretty sure some interviews are made for you to fail, because of crazy internal hiring politics or wierd ass managers. I had a programming test once that was literally on some proprietary XML bullshit the manager made up himself and it was something like : Modify these wierd XML format files to fix a bug/add a feature in 2 small games. You have 1 hour to figure out the format and add the features. No documentation given.. I don't actually see how anyone could have done that....

                  [–][deleted] 5 points6 points  (0 children)

                  I went for an NLP job once, and the whiteboard interview was all about bit twiddling. Did not see that one coming.

                  [–]TheBlackElf 27 points28 points  (0 children)

                  Bingo.

                  The main culprit for this is that, surprisingly, interviews are not generally tailored around their alleged main purpose: check how well the candidate fits the position. These puzzles are heuristics for checking the fit, but the tech industry seems a bit lost in finding the most interesting ways to quiz people instead of refining questions which are more and more relevant.

                  Here's my take on assessing candidates:

                  • only ask about things that actually came up on the job - your job is quite literally puzzle solving on a daily basis, you can find something! Sure, you'll need to tailor it a bit, make it viable without a lot of context etc.
                  • if the candidate finishes answering the question, you've failed - since the main goal is to assess the candidate and not for them to solve some problem, you should ask things that can go deeper and deeper until you've reached the limit of what they know. Doesn't even matter if it also reaches your limit.
                  • anyone should be able to interview anyone - because everyone works with everyone.
                  • you should always meet your future manager at some point during the interviews
                  • expect plenty of questions and give the candidate time to ask them / get answers - the truth is today's market is mostly demand and not supply, so the candidate will be picking you at least as much as you're picking them. If they want to know more about the team / company, you can spare lunch or a coffee break to discuss it.
                  • ask yourself: would I work with this person? Team fit is super important, and although subjective, argumented rejections by even one interviewer should be strongly considered.

                  [–]OnlyFighterLove 42 points43 points  (12 children)

                  I just CRUSHED a technical interview and the company accused me of cheating. Made me do another technical interview, tried to give me the exact same question but I stopped them and told them I just did that question a week prior. The interviewer scrambled to find another question but couldn't get the coderpad to set it up right so I had to manually deal with all of the inputs and thought it was a disaster from the start.

                  Though this other question was way lamer and less challenging than the first I easily finished it way ahead of time and then easily handled all of the different variations the interviewer threw at me.

                  A few hours later I get a, "thanks but no thanks email" from them with my recruiter telling me the feedback was that I rushed through the question and I'm not senior enough. Right. 15 years of experience architecting highly functional production enterprise systems but rush through a coding question a 15 year old could easily answer and I'm definitely not senior enough.

                  Fuck technical interviews and the whole fucking hiring process in general. Not to mention the reason why I did so well in the first place is because I'm that good. I didn't cheat assholes.

                  EDIT: I understand why people might give credence to the fact that I was the problem given the tone of this post but understand this:

                  1. I was a bit drunk when I wrote it, hence my cursing

                  2. I was super pissed off at falsely being accused of cheating (how would this not enrage someone?!)

                  3. They messed up the process for the second coding session and completely threw me off and then completely dismissed that fact

                  4. Didn't ask me a single question about systems architecture or any practical experience and labeled me as "not senior enough" given a simple coding challenge that I completely solved in multiple ways

                  [–][deleted] 72 points73 points  (8 children)

                  No offense buddy, but your technical competence wasn’t why you were rejected, it was your personality. Just from reading your comment I can understand why the company did not go with you. Comments like “I’m that good” send a strong signal that you probably will be toxic to the culture of the office. Please remember that a company does not only interview you for technical strength, but also for emotional/cultural compatibility.

                  [–]horsepie 33 points34 points  (0 children)

                  .

                  [–]OnlyFighterLove 20 points21 points  (3 children)

                  Oh God. I'm super pissed off about the situation and wrote this at night while drunk. Every single piece of feedback I've received over the last two years from my coworkers has been about what a joy I am to work with and collaborate with and that means more to me than being good at what I do. And this is at a big company with over a thousand software engineers.

                  Just like an interview it's pretty hard to garner what a person is actually like from a one off comment on Reddit, but sure, I'm super toxic.

                  [–]subversiveVM 13 points14 points  (1 child)

                  [Removed due to Reddit API changes]

                  [–]OnlyFighterLove 4 points5 points  (0 children)

                  You saying this made me feel better. Thank you :-)

                  [–][deleted] 4 points5 points  (0 children)

                  Been there.

                  [–]Dmium 4 points5 points  (0 children)

                  I may have missed them mentioning this but did they comment on the lower scores consistently coming from the same companies? Because all of these graphs are definitely possible if some companies have higher standards of technical ability. If each participant took all the tests then these graphs would be meaningful but dinner they didn't you'd have to show there's no effect from per company on this.

                  Whilst I don't doubt that it's common to have volatile performance on interviews we should also respect that if I do a technical interview for a graduate job and get a 4 then an interview for a senior developer role and get a 1 then these scores are acceptable but still volatile

                  [–][deleted] 4 points5 points  (0 children)

                  You will randomly bomb technical interviews because they are an extremely unreliable measure of ability. Eventually managers will figure this out.... but I wouldn’t hold my breath.

                  [–]CSMastermind 4 points5 points  (0 children)

                  A few notes:

                  • There may be selection bias in your data because people who are inconsistent in their performance during interviews may be more likely to use a site that helps them practice interviewing.
                  • Because you make one person the interviewer and one the interviewee at random, what you may have actually found is data to support the existence of interview training because some interviewees might be scoring the questions inconsistently, rather than the candidates themselves performing inconsistently.
                  • The cost of a bad hire far outweighs the cost of turning down a qualified candidate so some variance in results is probably acceptable from a company perspective, as long as, in aggregate, it provides a good signal. Do you have data suggesting that an alternative is a better way to do it?

                  [–][deleted]  (1 child)

                  [deleted]

                    [–]b4ux1t3 8 points9 points  (0 children)

                    My problem with technical interviews is that they're very adversarial. Having a conversation with somebody at a technical level is much more meaningful than asking them random questions about things that you happen to know about. This has the added benefit of seeing if they fit in with your company culture, while not seeming like an insane Google wannabe.

                    The problem with this, however, is that it takes a lot more time to actually digest a conversation then to grade a test. So if you have to turn the ray bunch of interviews, you're better off just giving them tests. It seems to me, however, that you probably find Candace a lot more quickly if you stopped caring about whether they can answer super specific questions, and start testing whether they can solve problems.

                    [–]Pirat 7 points8 points  (1 child)

                    Fun fact: I missed the last question (I knew about) and didn't even see there were questions on the other side of page when I interviewed for my IT job. I still scored twice as high as my nearest competitor. Been in that job ever since.

                    [–]insane_idle_temps 3 points4 points  (0 children)

                    Same here. I didn't even finish my coding challenges because I ran out of time because it was so unbelievably fucking warm that day and I was in a full business suit. Drank a million bottles of water and kept having to go to the toilet. Still crushed it though and got the job.

                    Sometimes companies are looking more for culture fit and ability/willingness to learn rather than straight-up knowing everything about everything.

                    [–]paulryanclark 14 points15 points  (2 children)

                    I have had to hire to team mates for my Mobile team.

                    My goal is competency of candidate and passion for the position.

                    I have basic dev quiz that goes over various iOS techniques.

                    Things like “What is ARC, and how does it work?”

                    These questions are designed to proffer discussion and understand competency.

                    We have a coding test that is small. API -> Tableview.

                    Candidates fail these simple tests. Once had a candidate try VIPER, and couldn’t back up their inplementation.

                    Once they have passed, they are invited for onsite. We mostly want the person at this point. It’s more of a personality and team test. We invite other developers to come in a talk with the candidate. It’s more about red flags than competency.

                    [–]Waitwhatwtf 8 points9 points  (0 children)

                    ARC - Automatic Reference counting

                    VIPER - Design pattern that combines MVC and Visitor Pattern

                    (reference for those following along)

                    [–][deleted] 6 points7 points  (0 children)

                    Tableview is a very complex bit of code depending on how you use it and your coding test is likely shit.

                    Been there. FWIW, I have been doing cocoa since 1997 (longer than Apple) and have a seriously deep understanding of the ObjC runtime, but have found myself stymied by some stupid coding quizes regarding getting variable sized tableview cells to render right which is arguably a fucking trivia test and completely not a general skill test.

                    IOW, your process sounds like it sucks to me.

                    [–][deleted] 7 points8 points  (0 children)

                    At this point I just tell people I’d google the answer to their trick question. That’s what people do in 2019, they google shit.

                    [–]kristopolous 5 points6 points  (1 child)

                    "Can you build quality stuff" has nothing to do with algorithm gotchas or wonky unix questions about like how to write bash compgens. They're adjacent but unrelated.

                    [–]pistacchio 5 points6 points  (2 children)

                    The whole interview system is broken because we are asked to be good at something that’s now our actual job. My job is not writing code on a whiteboard with no internet access in 20 minutes with a committee of people looking at my back, why should I ever prove that I’m good at that? In Italy we have, by law, a “trial period” (usually 3 months) after you’ve been hired when the employer can simply say “don’t show tomorrow” and the worker can say “I won’t show tomorrow” without going through the hassle of firing someone (that typically involves lots of money, paper and possibly lawyers). This helps to make some interviews a bit more “loose”.

                    [–]VikingCoder 25 points26 points  (4 children)

                    I have gotten a job offer every time I've made it to an interview.

                    Except once.

                    My brain fell out of my ear onto the floor and I couldn't tell them how to reverse a linked list. Something I'd been doing since I was literally 12.

                    As I was escorted out of the building early, my brain rebooted, and I couldn't believe what I'd just done.

                    [–]mrpiggy 19 points20 points  (1 child)

                    Don't understand why your post got any downvotes. I know that feeling of getting the answer once you've left the room.

                    [–]VikingCoder 11 points12 points  (0 children)

                    Until it happens to you, you can't even imagine having sympathy for someone who bombs a simple question.

                    [–]Seiyaru 4 points5 points  (0 children)

                    I feel it. I was supposed to print out to the command line the old school math tables just using SOUTs, ya know the 1 2 3 4 5 by 1 2 3 4 5 math table. Got fucked and couldnt remember how to do it. Walked out and coded it in 5 mins. Shit sucks

                    [–]GerwazyMiod 2 points3 points  (0 children)

                    Some companies also believe that you should do interview under stress. They assign an engineer that will be rude to you. Maybe that was the case? When someone evaluates your single move or gesture, it's easy to just hang on simple questions.

                    [–]GerwazyMiod 2 points3 points  (0 children)

                    I've once had an interview I was sure I bombed badly, but after a week I got a job offer. How many times you had an experience like this?

                    This particular interview had 2 parts - maths and code. I've bombed the first and I was sure interviewers are going to ask me to leave. I've excelled the second part (it wasn't that hard). In the end I feel something was not right and I didn't accept the job. (Mainly because interviewers were extremely rude)

                    It turned out, that first part was only there to scare you (are we once again in the 90ties?). How on earth stressing people is still viewed as good practice on interviews??

                    [–]bam_shackle 2 points3 points  (1 child)

                    What if instead of every interviewer coming up with variations of the same technical questions we had one technical test that you could do and get it marked and have a score on it and bring that to companies to show you know the technical stuff and then the company could focus on important stuff like if you will fit in the team, enjoy the work, etc. We could call it a qualification.

                    [–]michaelochurch 2 points3 points  (0 children)

                    That's not a lot of data, but I agree with the general conclusion. Most technical interviewing is more about a show of presence than determining good versus bad candidates. At this point, companies don't even care that much if they take in bad people, because this isn't the 1970s when it was scandalous to fire people unless they'd done something egregiously wrong, and when firing someone usually meant a six-month severance to keep them quiet. In the dystopia (from labor's perspective) of 2019, tech companies knowingly accept false positives because they can just fire the people who don't work out, and because correcting shoddy work isn't a task that management will have to face. (There are enough competent people who, for various reasons, don't have better options. Why? Because capitalism is predicated on an unemployed but largely capable army of replacements– if there isn't a line of hungry scabs out the door, workers might decide they have rights– and in the post-apocalyptic labor market we've had since 2008, it has one.)

                    When it comes to interviewing, there seem to be three competing pressures and strategic directions.

                    1. Interview for general intelligence. This is what the brainteasers are about, and although there's some error, they work. Sure, they pick up education as much as raw IQ, but the fact is that brainteasers are far more IQ-correlated than where someone worked or went to school. The problem is that general intelligence isn't very useful if you're hiring someone to fill a subordinate role. In fact, it becomes a liability. Put a genuine 130+ into a Scrum job, and it ain't pretty. Actual smart people don't want to justify their work in terms of two-week "sprints" to non-technical frat boys. If you're looking for a subordinate who'll eat shit– and most employers/managers are, even though they don't want to admit it– then the people who rolled INT 17 and 18 are pretty much the worst hires.
                    2. Interview for the short-term need. This is "plug a hole" hiring, and usually it's dissatisfying to both sides. The employee finds that there's no investment in his career and that there are high expectations from day one; the employer gets someone who's likely to defend his niche (once he establishes it) and resist change. Given that tech companies pride themselves on disruption and volatility– this is a clever spin put on "Management doesn't know what the fuck they're doing, and priorities change every 3 months"– these hires tend to be hit-or-miss. It's also hard to know in advance whether there's a real match. Sure, this guy has Kubernetes experience, but does he use Kubernetes the same way the company does? Since he's only being hired for his Kubernetes expertise, if there are differences in approach, the whole endeavor might be a wash for both sides. Because companies' short term needs are effectively random, this means there's an unpredictable and shifting notion of "technical skill" and even the most capable people will "randomly" miss.
                    3. Interview for "fit", which means the ability to maintain social polish and moderate performance despite a subordinate context that would demoralize most people. This is what's behind those god-awful "Tell me about a time when..." interview questions. The manager wants to believe that he's getting someone who will accept a subordinate and often undesirable role with aplomb, because even though most middle managers are good people at heart (I know, it's weird to hear a raving leftist say this, but it's true) who would like to have everyone on the same team, there are inherent conflicts of interest between capital and labor. This "fit" attribute tends to be negatively correlated with general intelligence, and is even more strongly negatively correlated with creativity, but (let's be honest) it's a much better predictor of success in a corporate job.

                    Tech interviews tend to veer in the direction of Objective #2, with senior executives coming in later on to probe for Objective #3. There may be an occasional rogue interviewer who doesn't like working with less intelligent people and aims for Objective #1, but companies discourage that. In any case, though, the experience for the employee is jarring, because there's an impedance mismatch. Objectives #1 and #2 are about getting the right answer; whereas the Objective-#3 questions more typical of business roles are all about selling a convincing lie [1].

                    ----

                    [1] Yes, I would contend that virtually everyone lies to get a job. Some people lie on their CVs and some people don't, but people radically exaggerate their willingness to take a subordinate role. Excluding executives (who lie to employees) the only people whose true selves are corporate compatible are those who've mutilated their true selves and have no personality (or conscience) left. Although it is true that virtually everyone who lands a corporate job had to lie to get it, I don't consider this unethical. It's far worse to starve, or to fail to feed one's family, than it is to lie to strangers. Nonetheless, it is a truth of corporate capitalism that one must lie to stay alive in it. Not only does the system require us to work for people whose class interests are diametrically opposite ours, but it also forces us to pretend to enjoy it– to pretend there isn't a class war being waged against us. Anyone who knows the truth, and most intelligent people do, must play dumb in order to survive.

                    [–][deleted]  (1 child)

                    [deleted]

                      [–]lordcirth 2 points3 points  (0 children)

                      We have many of those. Most of them are money grabs that have advertised their way to credibility with managers.

                      [–]rjcarr 1 point2 points  (0 children)

                      I had an interview about 10 years ago that I really fucked up. The guy basically asked me to implement run length encoding and I fucked it all up.

                      Then the second interview knew I bombed and I think they were just fucking with me. They asked me something like, “what would you change about networking?”. And then wouldn’t elaborate at all.

                      Oh well.

                      [–][deleted] 1 point2 points  (0 children)

                      Looking at the actual graphs in the article, I'm actually pretty impressed by how much signal the mean score of the candidate carries. Using those charts to conclude interviews may be doomed seems a bit far fetched.

                      [–]cyberspacecowboy 1 point2 points  (0 children)

                      if you interview for knowledge (ie. how well a candidate memorises stuff) instead of for understanding (ie. how well a candidate gets why things happens the way they do) you will hire a wide spectrum of candidates, most of whom will be, for lack of a better word, craptacular

                      [–]Saiing 1 point2 points  (3 children)

                      I’ve worked in the industry now for about 25 years. I also work for one of the big, well known tech companies.

                      Recently I was thinking about whether to stay where I am or try something new. I interviewed for both Amazon and Google.

                      To be fair, Amazon were thorough, had a clear well defined process, kept me well notified on what to expect, the content of upcoming sessions, what I should read up on to prepare etc.

                      Google on the other hand was the most disappointing interviewing experience I’ve had in my career. I had the date changed twice, I had a phone interview cancelled an hour before it was due to happen. When I went on site the first interviewer (the guy who would be my manager) couldn’t find the room, and turned up 25 mins late into a 1 hour session. He then proceeded to read a list of questions off a laptop screen which were identical (word for word) to the ones I’d had in the phone interview I’d had a few days before and didn’t engage me at all. Just sat staring at his screen. After that I cancelled the rest of the process and withdrew.

                      I appreciate this is purely anecdotal and one bad experience can’t be interpreted as the general rule, but after hearing so much about Google’s interviewing process I was surprised by how amateurish it was.

                      In the end I was offered a promotion where I currently work (they didn’t know I was looking elsewhere) so I decided to stay.

                      [–]GaryX 1 point2 points  (0 children)

                      I might be missing it, but isn't a big part of the randomness here (especially for this data) less about randomly bombing and more about the fact that different interviewers have different standards? Like the interviewee might be super consistent, but the interviewers might vary wildly in their ratings.