top | item 30901896

The tech interview prep industry

149 points| otras | 3 years ago |alexanderell.is

190 comments

order
[+] PragmaticPulp|3 years ago|reply
Nobody likes being judged in an interview, but on the other hand it has been fascinating to watch how the current style of tech interviews has opened doors for a lot of smart, motivated people who aren’t necessarily born into situations that usher them straight into prestigious tech jobs.

Yes, there is an entire industry around interview prep. Yet it’s also possible to do all of your interview prep without ever giving a dollar to anyone. LeetCode basic is free. There are numerous free websites that will walk you through the solutions to LeetCode problems. There are countless YouTube videos helping build interview skills.

Tech interviews aren’t necessarily fun, but I actually think it’s great that they’ve allowed us to move past the situations where people were trying to coast in on the reputation of their university or by getting an “internship” from their dad’s friend’s company. Letting people compete on a level playing field of technical interviews, albeit imperfect, is one of the things I’ve come to appreciate about the tech industry.

[+] lumost|3 years ago|reply
The problem is that this has become the primary and sole measure by which we're judging candidates. This leads to a pathological condition at many large tech companies where the outputs of an engineer do not matter for their career.

Until you hit the Senior/Staff level, no one really gives a crap if you were editing yaml files, toiling on a legacy app, or building the highest scale app on the planet. It just matters that you can pass the standard tech interview.

Now that people understand this, they are starting to optimize their careers at a company to simply do the minimum until they move externally for higher pay. You can bounce between reasonable tech companies doing literally nothing for higher and higher pay by simply switching once per year.

I suspect that we'll see a steady increase in attention paid for deliverables and a dialing down of the leetcode arms race over the next 5 years. The signal to noise ratio of this interview type is falling.

[+] usrbinbash|3 years ago|reply
> it has been fascinating to watch how the current style of tech interviews has opened doors for a lot of smart, motivated people

And also closed the door for lots of smart, motivated people who are excellent engineers, but do badly in stressed up situations where they need to do something (coming up with an answer on the spot, usually w.o. being able to do any research) that the job they are being interviewed for rarely if ever actually demands of them.

> to move past the situations where people were trying to coast in on the reputation of their university or by getting an “internship” from their dad’s friend’s company.

https://en.wikipedia.org/wiki/Out_of_the_frying_pan_into_the...

[+] onion2k|3 years ago|reply
Hiring at FAANGs isn't a matter of "pass the tech test and you win a job". There are lots of other parts to the hiring process. A recommendation from a person high-up in the company, or a Stanford degree, still carries weight. Leetcode is an additional barrier, that people with a privileged background can buy help to pass, and where having the resources to stop working to study full time is immensely useful. People who don't have wealthy parents or personal wealth can't do that.

I believe Leetcode makes tech more exclusive, not less.

[+] bgro|3 years ago|reply
Tech interviews remind me of employers saying to forget everything you’ve learned, kiddo. Heh, we do REAL work here!

If you want to work for us you better be able to complete this leetcode question! You’re not a real engineer if you can’t!

Then the real work is an awfully designed mostly front end disaster. Nobody knows how anything works. But they passed the interview somehow.

I don’t get the people who do leetcode for fun or who get hyped up about it as an interview process. I guess they made it in life by cramming for tests just to forget it all immediately after.

Wasting time memorizing tedious things that have no value is especially awful and draining for me. It’s not fair some people can just do that if they spend a small amount of effort and try. It’s a monumental impossible task for me when I’m otherwise exceptional with software engineering. I’d rather climb a mountain, to put it in perspective.

I’d rather actually learn the concepts used on tests and be able to adapt them into my learning, rather than have a history test where I fill in an endless amount of blanks with the exact day, month, and year is somehow relevant or useful for anything.

Does anyone actually process those types of questions as actual comprehensible dates instead of memorized strings that are better suited to memorize with a jingle?

[+] elvis10ten|3 years ago|reply
Level playing field? C’mon.

A person using a premium resource most likely have higher quality material and sometimes access to a seasoned professional that can give personalized feedback.

Who has more time to do leetcode? Who has a good network of peers to motivate them when they are not “feeling it”? Who is more likely to enjoy abstract puzzles/quizzes? A single mom in Philly or a wealthy Stanford grad?

Would you also say take home projects are also a level playing field?

[+] neilv|3 years ago|reply
> how the current style of tech interviews has opened doors for a lot of smart, motivated people who aren’t necessarily born into situations that usher them straight into prestigious tech jobs.

The underdog could get computer jobs before the current gatekeeping -- on enthusiasm, hard work, merit, and will.

The gatekeeping started by favoring the affluent (suddenly, going into dotcoms made more sense than that Wall Street job), and now other people have to invest in playing catchup on bro rituals.

[+] lampshades|3 years ago|reply
I agree. I didn't come from a prestigious family and I didn't go to a prestigious school. I graduated with less than a 2.0 GPA because I didn't care when I started school. Because of the standardization of tech interviews, I'm able to work anywhere. I don't think it would have been as easy for someone like me 20 years ago. Then again, I have no idea.
[+] b20000|3 years ago|reply
opened doors? you must be nuts. all it has done, is made it easier to discriminate candidates, turn a highly specialized field into a commodity, and put more power in the hands of tech companies, especially FAANGs. it has indirectly prevented knowledge workers from organizing.

if people go to university and actually study and work hard to get a degree, it should be normal they don’t have to go through this bullshit.

[+] someelephant|3 years ago|reply
I also appreciate that anybody who puts the work in can get a good job in tech. But I don't follow your reasoning that the current tech interview process supports that in some way that another process could not.
[+] gyulai|3 years ago|reply
> current style of tech interviews has opened doors for [...] people who aren’t [...] born [...] into prestigious tech jobs.

I really take issue with this line of reasoning. The same thing was recently argued in relation to MIT going back to using SAT scores. The argument basically seems to be "Since no alternative to this is conceivable that isn't some form of racist/classist cronyism, this is actually the lesser evil".

At some point in history, people probably said something like "Since no alternative to monarchy is conceivable that isn't some form of despotic warlordism, monarchy is actually pretty good". ...they just hadn't conceived of those alternatives yet.

It sounds to me like simply a reflection of the political climate in the U.S. where there's a weird inversion of burden-of-proof whereby any decision making process is presumed a form of racist/classist cronyism unless proven otherwise.

The more mechanized a decision making process is, the more amenable it is to this sort of proof. But I certainly don't want to live in the resulting dehumanized dystopia.

Also, I'd question whether social reproduction is quantitatively a significant factor in selecting who tech jobs go to. The idea seems to be that engineer daddy gets son interested in engineering by doing science fair projects with him, sends him off to space camp, then pulls strings to get him into MIT and so forth. But, statistically, I'm expecting to have as many daughters as sons, and a daughter is statistically not going to be interested in tech. Even if it's a son, it's not clear whether he would have the personality traits and inclination. I wouldn't want to interfere with them either, as I'm not even sure that going into tech would be something I would want to do again if I could live my own life over.

The latter is not true of wealth in general. I would always want my children to be wealthy, and they would always want to be wealthy, and handing over wealth is as easy as signing a piece of paper. These latter statements are oversimplifications, but they highlight how the analogy breaks down between social reproduction in relation to wealth in general and social reproduction in relation to having a prestigious tech job. -- Also, the question of whether tech jobs can be prestigious seems subjective to me, as there are a lot of negative stereotypes attached to tech.

[+] commandlinefan|3 years ago|reply
> prestigious tech jobs

Tech jobs are well known for paying well (compared to the other jobs you can get if you’re not born into money) but have never been prestigious. Unless you’re considering the VP/CTO jobs that don’t involve algorithm solving and do involve being from the right Harvard fraternity.

[+] watwut|3 years ago|reply
> current style of tech interviews has opened doors for a lot of smart, motivated people who aren’t necessarily born into situations that usher them straight into prestigious tech jobs.

The self taught programmers were always the thing. If anything, current interview style is giving advantage to those from elite universities - it tests exactly those skills.

[+] bluefirebrand|3 years ago|reply
> where people were trying to coast in on the reputation of their university or by getting an “internship” from their dad’s friend’s company.

This absolutely still happens though. Those people will just get "fast tracked" through the process and allowed to skip steps. If there is even an interview at all. Nepotism is still alive and well even in software.

Edit: Oh, or they will get hired as consultants / contractors at a high rate and get to add your company's name to their list of happy clients

[+] RyEgswuCsn|3 years ago|reply
> where people were trying to coast in on the reputation of their university or by getting an “internship” from their dad’s friend’s company

Critics of the tech interview are certainly not against the merit-based selection --- it's more like the 1.5x engineers fear that the standardised interviews are being abused to allow 1x engineers who are "just-in-for-the-money" to appear as 2x, making their lives harder.

Meanwhile, 10x engineers probably are not bothered by this at all since 2x isn't enough of a threat.

[+] ford|3 years ago|reply
What few people put to words is that prepping for tech interviews can be the single most significant financial decision of a person's life. Working at BigCo. vs Normal Tech vs Traditional Company can have 1.5x to 2x impact on compensation in a single year - let alone an entire career.

When you consider the work you do to earn money/whatever else you value at a job the step increase by passing tech interviews at a big company is almost always worth way more time and/or money than many people put towards it. I think students in particular need to realize the importance of these kinds of interviews relative to their schoolwork if they're forced to make the tradeoff.

I am a small participant in the Interview Prep industry since I purchased Cracking the Coding Interview - but it's no surprise people are willing to pay for interview prep (assuming it's both quality material and the individual needs that particular kind of help) when the ROI is so high

[+] axg11|3 years ago|reply
Very well put - participating in the prep industry is a completely rational decision.

Context: I work at a FAANG

Interviews and hiring at big companies aren’t perfect, but they never will be. Any type of evaluation or test will at best be a proxy for the thing you want to ultimately measure: true performance in the role being interviewed for.

I don’t think it’s any company’s place to discourage the interview prep industry. Those who are most determined will seek out resources to increase their chances of interview success.

The big downside to the prep industry is that, wherever the cost is high, it lead to greater inequality. Not everyone can effort practise interviews and paid online courses.

One positive step I have seen recruiters at Apple, Facebook, and my own employer do is to share free 3rd party resources to help with interview prep. Candidates may not be aware that there are free, high quality sources. These being unofficial endorsed by recruiters helps candidates avoid some of the scammier sites.

[+] sanderjd|3 years ago|reply
Yep, sadly I have to agree with this. I really dislike that this is the case, but it does have really high ROI to prepare for big interviews. I spent three days full time preparing for a Google interview and it's easily the highest return I've gotten on half a week's work in my career. But I hated doing it.
[+] fnbr|3 years ago|reply
I got a 4x raise moving to big tech. My salary then increased by another 50% in the 4 years since. So you’re completely right.
[+] stathibus|3 years ago|reply
There are parallels with the college admissions prep industry that grow deeper every year as the code prep industry gets bigger and the big tech companies dig their heels even deeper into their pattern of contrived algorithm puzzles.

Google/Facebook etc should feel an obligation to deflate this thing.

[+] giantg2|3 years ago|reply
I have no skill so it doesn't make sense for me to try to move from a traditional company to a tech company. Just wanted to share this so other sare aware that one can realize/accept one's limits and that not everyone has to (or even can) go to big tech.
[+] drc500free|3 years ago|reply
The Product interview has also become a fascinating game. You need to be able to apply specific case frameworks that you would never use in real life, at breakneck speeds that you would never work at in real life.

Stumbling into one of these without prep is like showing up for a tryout on a football team and finding out that you'll actually be playing Tecmo Super Bowl with a controller you've never held before. And slowly realizing that all the people interviewing you are fantastic video game players who have never been in the weight room, and they spend all day LARPing.

[+] 0x0000000|3 years ago|reply
Something I found interesting after going through a few interview processes is the amount of prep material that the in-house recruiters provide. At both a FAANG and a multi-billion-but-not-FAANG company, I was provided hours worth of prep material for the tech screen, followed up by more hours of prep material for the more in-depth marathon-style interviews. Ten page PDFs with links to hackerrank and tech talks!

I get that recruiters are incentivised to get new hires, but the whole "here's this tedious interview process, and here's everything you need to study to be able to pass it" makes me feel like they're optimizing for people who are tolerant of dealing with a lot of bullshit.

[+] geoduck14|3 years ago|reply
I tried to pass by your comment, but I feel a need to respond.

I'm a hiring manager. I've interviewed more than 100 people over the past 6 months. I really want you to be successful in the interview. I would love for a 10 minute conversation where you say "yeah, I've faced the problem you are facing. And here are the next 3 problems you are going to face. And here is how you should prepare for them." Or even "wow, I'm not equipped for this. What I really want to do is X. Is that useful?" And then I referred you to a buddy that is looking to do exactly that.

I don't want to surprise you. I don't want to give you an interview question where you get nervous and I have to guess if you actually know how to code stuff. I want to give you an environment where you rock and I can accurately tell you what problems I have and we both decide if this is going to be a good fit for us.

Somethings I don't want. I don't want you to fret or prepare for 10 hours. I don't want a take home interview that lasts >2 hours. Or a take home where you were honest, but I'm comparing you against someone who cheated.

[+] usrbinbash|3 years ago|reply
Okay...wouldn't it then be easier to simply scrap all the stuff they are now handing out guides for? Because, if I just want people to pass the BS so I can get to the actually relevant part of the interview process...why not just remove the redundancy?
[+] spike021|3 years ago|reply
It's been interesting to watch the sort of "transformation" the industry goes through, even just since I started college back in 2011.

For 5-7 years "Cracking the Coding Interview" was all the rage, practically everyone said to review it, do the practice problems, etc. In the past 3-4 years it's become "make sure you practice your Leetcode an hour a day! Even some hards!", and then from what I've seen while interviewing and practicing the past 2 months, there are websites dedicated to providing study plans, additional review, recommended problems to practice to review specific patterns, etc. Youtube channels, even.

Those last few are also pretty heavily monetized. Leetcode has some limits in place to nudge people to pay for Premium plans. Some websites require a membership. Youtube videos and blogs usually have a plethora of ads.

Of course you don't _need_ to pay anything, but it tends to help more people.

[+] ipaddr|3 years ago|reply
We are in an era where people pirate leetcode practice questions to cheat interviews that companies designed in a way that requires you to cheat. If you show up without preparing the company looks down at you for not cheating.

Then they hire these people and need to stack rank and fire the bottom because their process makes so many mistakes.

A better interview process would involve lottery balls.

[+] xtracto|3 years ago|reply
Ooh, back in 2004 when i was out of Uni, the 'in vogue' interview questions were more asinine: like "how do you count how many coins are in a mall" or "why are manhole round" , or "why do frogs croak " or "find the odd heavy weight using a scale and 3 measurements "

The Leetcode interviews are a freaking step forward from that. Although they are optimizing for new graduates who have all the time to lose/spend to play with algorithms and "competitive programming"

Are you a middle age gal/guy with a family? Its easy to filter you out because you cannot put 3 hours daily to practice your l33t sk1llz

[+] magic_hamster|3 years ago|reply
I'm a tech lead in my team. Honestly, I am terrible at whiteboard questions. I've long forgotten a lot of details that I've studied so hard in my CS degree. If I go to interviews right now without adequate preparation I am very likely to bomb pretty hard! But that doesn't mean I'm a bad developer or that I neglect my duties as a tech lead. It means that interviews are testing something pretty far removed from what we're doing at work.

It's even worse in some companies that just give you a bunch of CS questions to solve, because a lot of the time it's possible for candidates to just memorize a bunch of interview questions and rely on that, regardless of their actual problem solving skills.

There might a better way.

When I interview candidates I've started putting less emphasis on O-notation algorithms and how to optimize them, which is pretty much the norm in most tech interviews (make this faster, do this in-place, etc), and started putting more emphasis on the candidate's understanding of IO, specifically when working with databases, congestion, rate limiting, queues, the stuff you actually encounter when working on real projects in my domain. Asking open ended questions and basically building a tiny project together.

The experience has been enlightening. You can immediately tell the person's analytical thinking because most of what they learn in "interview prep" isn't directly helpful in this situation. You can see some people frantically trying to match the problem with something they've seen in a video or a book instead of stopping for a moment and giving it some actual thought.

At the present I'm pretty certain that asking a person to build something is the best approach to understand their skill level. But this requires more time from both parties.

[+] RyEgswuCsn|3 years ago|reply
To me, the rationale behind interviewing by programming puzzles seems to be: the candidates who pass are either truly smart to be able to solve the problems on the spot without preparing or diligent enough to have prepared for them.

As such, puzzle-based interviews are optimised to reject candidates who are not smart enough and have either not bothered to play the interview game or those who don't have what it takes to learn to play the game.

[+] ramesh31|3 years ago|reply
This industry dug its own grave with the whole "hazing-as-interview" paradigm. As a senior dev I have zero interest in ever bothering with process again. I'll never leave my current company at this point. The possibility of making 10-20% more money simply isn't worth it.
[+] erdos4d|3 years ago|reply
I'm curious if there is any actual advantage to this leetcode style of interview. It is nice that it helps people without degrees get a fair shake, but does it actually correlate with success in the job? I have always favored the assignment style of interview since it gives me a chance to show that I can actually build a fully functioning piece of software that we can discuss, as opposed to solving a little brainteaser problem.
[+] rakejake|3 years ago|reply
My gut feel says there may be a small correlation but not much. I myself credit this leetcode nonsense for being able to land a job in the SW industry despite not having a CS background or any relevant experience at the time. But I found out I had vastly over-estimated my software engineering skills and that proficiency in solving puzzles does not directly translate to building good software.

The real advantage in leetcode is that it is well structured and relatively straightforward to scale preparation in. Practice lots of questions from a pre-defined bin of algorithms and data structures and you're good.

Assuming the candidate is actually skilled, the real killer in most interviews is if the format of the interview is new or if the interview is some sort of technical discussion and there is impedance mismatch between the interviewer and interviewee. Leetcode has no chance of this happening -> you get the optimal solution or you don't.

Ultimately, the problem with leetcode is that it is a very flawed way to scale the interview process that was foisted on us by Google. Interviewing is supposed to be a human process, so any way of "scaling" it is bound to be stupid in one way or the other.

[+] doktorhladnjak|3 years ago|reply
The main advantage of these kinds of interviews are they scale when a company needs to hire thousands of engineers a year and can remain relatively consistent at that scale.

In theory, it's a pure test of solving a problem using code that is distinct from questions that need knowledge about particular technologies. You can give the same problem to frontend, backend, mobile, etc. candidates. You can ask them for any team. Mac, Linux, Windows: doesn't matter.

You can deliver the question over the phone or video chat. No need to clone a repo, send a ZIP file with boilerplate. Interviewers and candidates don't have to fiddle with getting an environment set up because these questions rarely require anything more than standard library on coderpad.

[+] usrbinbash|3 years ago|reply
> It is nice that it helps people without degrees get a fair shake

Does it actually do that?

Let's see who has more time to grind and memorize 200 questions: The single mom working 2 jobs or the kid from a wealthy family?

[+] jwmoz|3 years ago|reply
I can't stand how this tech test stuff developed. What other industries do this?

I applied for a job recently and their first response was a blanket reply with a codility test. Which I ignore and moved on to other opportunities. They contacted after a week asking about it and I had to inform them I would look at other opportunities without a test barrier.

Best jobs and places I worked came because of informal conversations during the interview.

[+] posharma|3 years ago|reply
If you care about making more money put your head down and grind those leetcode problems. The investment is just a few months and the return is quite impressive. Others are either happy where they are or read about how interviews suck. As Bjarne Stroustroup said "There are only two kinds of languages: the ones people complain about and the ones nobody uses".
[+] langsoul-com|3 years ago|reply
Scale is always the problem. Leet code can efficient sort the 1 million+ google applicants. Other methods are far more expensive.
[+] Hatrix|3 years ago|reply
me: Hi, I know how to fix the problems I see in your software and increase the performance. I have years of experience with this and successful products.

interviewer: um, ok, I'm not interested in that, we will spend the next 20 minutes talking about linked lists and arrays followed by random leet code live coding. Also, be sure to spend a large amount of the limited time talking about various solutions to random questions and come up with the optimal solution. I will make sure there is no time at the end for your questions.

[+] usrbinbash|3 years ago|reply
> interviewer: -does the leetcode puzzle thing-

me: okay thanks for your time, I got about 12 more linkedin messages to go through today.

[+] bharat9848|3 years ago|reply
Fully agreed with OP this is rotten. Thank you for writing this
[+] thaumasiotes|3 years ago|reply
There's one very significant difference between standardized tests and tech interviews.

Standardized tests are designed such that preparing for the test isn't helpful.

Current tech interviews aren't like that at all.

[+] rahimnathwani|3 years ago|reply
"Standardized tests are designed such that preparing for the test isn't helpful."

LSAT, MCAT, SAT and GMAT are all standardized tests that reward those who prepare specifically for those tests.

I used a couple of books to prepare for the GMAT. I'm pretty sure that this preparation:

- helped me get a better score than I would have gotten without that specific preparation, and

- did not improve my 'aptitude in x, y and z' (the thing the test is designed to measure)

[+] RyEgswuCsn|3 years ago|reply
> Standardized tests are designed such that preparing for the test isn't helpful.

Not quite --- "preparing for the test" is also known as "studying".

You were probably thinking of IQ tests.

[+] planetsprite|3 years ago|reply
>Preparing for the test isn't helpful

Then in your opinion are all the SAT prep books useless?

[+] usrbinbash|3 years ago|reply
> Standardized tests are designed such that preparing for the test isn't helpful.

And how is that supposed to be achieved?

When something is standardized, it follows certain parameters. After a while, these parameters are known to the public, and people can prepare for them.

[+] data4lyfe|3 years ago|reply
1. Technical interview prep companies give structured learning and practice to people that aren't good with structure.

2. Algorithm technical interviews provide a structure for companies to compare skill levels of different candidates against each other

3. Neither is the best scenario for either party but in a chaotic world without structure, each one is trying the best they can towards filling a job role by meeting with someone in a span of 45 minutes.

Personally as a founder of an interview prep company for data scientist (https://www.interviewquery.com/), I find that we try to just teach candidates concepts through bite-sized problems and repetition. Some people might hate it, but we're essentially playing the game that the companies are holding up. So you might as well learn to get good at it.