FWIW, all of my friends who somehow managed to get into FAANG or other top tech companies swear that were they to go through the interview again, odds are they would fail. This despite all of them being great engineers.
FWIW, all of my friends who somehow managed to get into FAANG or other top tech companies swear that were they to go through the interview again, odds are they would fail. This despite all of them being great engineers.
Plus, stack on top of that, I've seen how the sausage is made. I've done 90+ interviews on the other side. At the end of the day, it comes down to how lucky you got in the loop. I've seen some people written off for some bullshit reasons. Similarly, I'VE declined on people who're likely far, far, far more skilled than I am because of the lowers/raises approach and the narrow slice you're tasked with reviewing in the 50min you're given.
I've seen some of the best interviewers I know still fail at various companies. Including ones they were given offers to before. Luck might not be the #1 component but it sure feels like it's not a distant second.
By grinding leetcode, you raise the odds that you'll get a problem you've seen before, or at least similar enough that you recognize the way to solve it without having to waste time by starting from absolute scratch. I guess that's still luck, but this is one area you can increase the odds in your favor.
You can't change whether you get a hostile interviewer, etc. of course.
the shitty thing about interviewing is you have to prepare hard every time you approach it
I've also seen the opposite - right? People don't prepare anywhere near as much as the last time and still get offers. I've seen folks get offers at Google and spent maybe a few hours preparing. Luck is just a very wild component.
This does very unfairly skew towards people like me without kids that can take the time to do this.
I don't think regular coding questions, LC tell you anything meaningful in an interview.
I'm more experienced now, so refuse doing it and recruiters and interviewers get all funny about it. But please, please interview. I know I'm pretty privileged compared to others but I won't ever do a LC question anymore and tell that upfront to Google and the likes. I have canceled loops because of the inflexibilty of some companies in that regard.
Sometimes they tried sneaking it in last minute - also tells you much.
In general though the tech industry has a really hard time hiring senior people, perhaps for this reason. I was at Google for 10+ years and did 100+ interviews, HC etc and once you talked to the people in charge of the process they admitted that the process is really weak for hiring senior (L5+ in Google speak) candidates. They in many ways perform worse than new grads in coding interviews which is not really surprising.
So Google hardly hires anyone experience before you get to the director levels (hardly as a percentage of course).
The other well know secret is that if all of us would try to do an interview unprepared we would probably fail.
I would rather be with my girlfriend, play videogames after work hours, watch netflix, go see some friends.
I lost a team member to Amazon recently, he spent 6 months total (two 3 months stints) preparing for the interview. He bombed in the 1st try and passed in the second.
That's 6 months of your life studying after hours to get a job ... I really have better things to do!
He is there now and he says how his work is not as challenging as the one we were doing from a technical PoV and also how the culture is very toxic compared to ours.
Anyways... he is optimizing to retire early so props to him I guess.
But I'm terrible at it, and I don't think it's meaningful, so I don't do it. Admittedly, it costs me some opportunities, but mainly at companies I'm not sure I want to work for, anyway.
At this stage I'm an old fart with a long resume, and more often than not I get hired by people who already know my work. I guess if I was as bad as my whiteboarding performance makes me look then people who know my work wouldn't want to hire me.
Ironically the modern technical whiteboarding interview often does require the candidate to effectively act and put on a show,
Suppose programming ability is normally distributed with a mean of 100 and and SD of 15 (values cribbed from IQ). A team starts with 10 people drawn from that population.
More applicants are drawn from that population: if an applicant's ability is above the median of the current team, they are hired, replacing a randomly-selected member of the team; otherwise, we pass.
At the first timestep, half the applicants get hired right away. It takes a few hundred total failed interviews to make the 25th hire, and a few hundred thousand(!) for the 100th hire. These have very long tails too: the longest run (of 1000) took 800M total interviews to hire 100 people.
There's no way this rule is actually being applied in practice.
Typically, just one lowers in an a loop of 6 interviews is sufficient to reject. On the other hand, a loop with all "meets" isn't a sufficient either. It needs about 3-4 "raises" to overcome just one "lowers". With two "lowers" the candidate won't even make it to the debrief or worse the loop will be cut-short.
The bar-raiser (it's their job) are expected to specifically look for candidates who raise the bar. Raising the bar == better than 50% of "employees" (not job seekers) at their level. The rationale, when the bar-raiser program was created, was that the collective competency in a corporation should increase as more employees are inducted.
Source: I was a bar-raiser at Amazon; 400+ interviews, 300+ as bar-raiser, conducted hiring boot camp, bar-raiser trainings, trained bar-raisers.
Which ends up going in the direction of meetings like "Should we standardize on what questions we are asking in interviews?" or "Should we standardize what pass means or fail means for a particular problem?"
That said, the program (like any such program I guess) didn't scale well with the immense pressure on increasing the head-count which in itself was a result of delivering more. Hiring managers and recruiters (who are incentivised to hire more) would rig up interview loops in a way to get their candidates through.
The program itself came under increasing scrutiny (I guess for the right reasons) as being too restrictive. I distinctly remember period between 2008-2012 they hired at a blistering pace, all over the world. In fact in Seattle when they moved into SLU campus the buildings went from empty to nearly 100% occupancy in a matter of year or so. You could even see it based on the number of product launches from 2012 onwards (AWS, the hardware products, new country launches etc.,).
And now Amazon is such a behemoth that it doesn't even make sense to speak about it or analyse it as a single entity anymore. My prediction is in 5-8 years it'll be broken up into at least three companies under Amazon as a holding corporation --- cloud, retail, and consumer devices.
I keep wondering how they hired this person - never in a million years would they have passed a regular hiring chain even with fizzbuzz type questions. Wonder if they had someone stand in for the interviews.
Netflix is well known for firing people that don't pull their weight with far more ease than most companies. But a friend who works there tells me there's still people there that perform poorly but somehow managed to get both hired and stay on.
Which itself is a Bar-lowerer.
And not actually lowering the bar during an interview / hiring committee meeting.
I feel extremely little of what I'm doing in my real, actual, job, helps me in advancing in my career. Unless maybe if I choose to stay at my current company until retirement lol.
Otherwise, why bother doing anything more than the bare minimum to get by at work? It would be a far better investment of time and effort to grind leetcode and practice for interviews, instead of going above and beyond to excel at my job. At least until I get into an "endgame company" where I feel it's worth staying long term.
as long as 9 other candidates are willing to run the LC gauntlet, the 10th doesn't stand out.
We just really want to hire a senior dev who can spit out highly optimized code that in the real-world would be handled by a stable open source library rather than people who have built stable systems.
I transferred teams within Amazon and then left for my current company. I do wonder if I'll ever be willing to put in the work to get a FAANG job again but at the moment I really don't care. I like where I am so I'll just cross that bridge when I get to it. If I want it badly enough at some point then I'll go through the steps. If I don't, I'll just find another job.
Im fairly confident that's at least part of the dominance of this approach in big tech. If the tech companies can't collude with no-hire agreements (as they have in the past) to prevent developers from jumping ship to seek raises (i.e. introducing direct anticompetitive barriers) they can collude on an unspoken agreement to raising the barrier to entry, making the labor market less mobile and therefore, artificially decreasing competition. It would be pretty difficult at this point to make a case that the current hiring trends are intentionally colluded anticompetitive labor market practices but the end result is the same.
I say part of the reason because the mess that is the current hiring process is really a multifaceted win approach for big tech and loss approach for most of the labor force.
I suspect if you had a large movement of mid-senior level developers that wanted to shift positions at the same time and began refusing businesses participating in this practice, the industry might be forced to make reasonable changes.
The issue is that our industry has no labor organization and the probability of a critical mass of labor independently making such a fundamental shift (especially in the current economic client) is near zero.
After all, there is a glut of applicants to the top companies, combined with the idea of wanting to avoid false positives (bad engineer putting on an act) at any cost, even if it means losing out on many false negatives (good engineers who interview poorly).
It isn’t about memorizing patterns, but about hopefully spotting the exact question.
A friend is currently interviewing for a FAANG and the recruiter flat out told him that his best chance of passing was to do a pile of previously seen questions for that FAANG and hopefully he gets it again in the interview.
If all the celestial bodies align and your luck is through the roof, you'll get exact problems you've solved before with the optimal solutions ingrained in your mind.
But second best is you'll get problems that are at least similar and you are familiar with the patterns, tricks, and gimmicks to go about tackling it, instead of having to try to think up a solution completely from scratch.
Horrible luck? It's a question you've seen and practiced but your brain freezes and you can't remember how you solved it. Or something you've seen and earmarked to practice, but couldn't get to it before the interview day. This has happened to me.
Same. I had an interview the day before I was scheduled to review binary trees. What was it on? Binary trees.
First week at the new school, I was taken aside and given a test for their gifted program. Exact same test, which ... I completely aced, because I'd figured out all the questions I hadn't known in November (from parents). It felt like cheating, and I told the teacher about it later. I don't know why they couldn't have just taken the test results from the previous school - same county, shouldn't have been an issue.
Anyway, if you keep studying known questions, it will increase your chances of passing in the future ;)
I imagine recruiters actively want you to succeed and get hired because that benefits them too, so they do what they can to aid you in your chances. They'll tell you the official, pre-canned lines about "we're interested in what your thought processes are and how you think", but then they'll also tell you the truth and recommend you take some time to grind leetcode.
But yeah. "Networking" by meeting groups of strangers for drinks probably wont get you a job. But making friends who happen to work in (entrepreneurial) tech might.
If a guy can do well that kind of well rounded project, even by cheating, I want him and his network all the same.
Bigger companies often don't let you through like that though. My friends are constantly offering to refer me to roles at their companies, but every one of them would still involve going through the whiteboard interview ritual. For now, I'm not taking them up on the offers because I'm not confident I'll pass the leetcode rounds.
Another time, apparently saying the phrase "binary tree" was enough to clear the whiteboard and move along to the next question with a gold star.
Another time I was hired after doing zero programming exercises and just telling the company that I had a competing offer (which I did).
I've had some baffling rejections as well.
It's generally not even on purpose, just subconscience bias.
I think it depends how influential your connection is.
At my previous FAANG job, my director was tapping his network to back-fill some positions and i heard through the grape vine that she waved parts of the interview in order expedite the process.
it could've been a rumor, but then again the person who joined was terrible to work with so i'm biased.
Algorithmic/data structure more theory-oriented problems are unrepresentative of "actual work" and are annoying, but what's more annoying is how the process is 1) opaque, and 2) repetitive. So you end up with candidates grinding through 80+ Leetcode problems to both master the skills necessary to ace these problems, as well as covering as many commonly-asked problems in a bid to game the system by preempting their interviewees questions. Goodhart's law abounds. This basically makes the process into an interview version of standardized testing. But- despite the standard prep process and a standard bank of questions, it can all easily fall apart because of subjective interviewer opinion, and so all the preparation is for naught. Candidates end up having to do the interview gauntlet for each company they apply at.
So standardize it. Put out clear, industry-standard rubrics for how one's performance is graded. Don't say "we only want to know how you think" and then ding candidates for not getting the right solution. You obviously care about the right answer as much as the thought process- don't be disingenuous about it. Maybe even standardize the level of difficulty of problems. And most of all:
Make this process a one-time thing.
Or rather, a once every five year thing. Outsource the ds/a interviewing section to a third party testing organization, like what Triplebyte is attempting to do, and have the actual interview be personalized to the company. Ask domain specific questions, relevant experience questions, system design, and culture fit questions during the company interview. And leave the DS/A portion be akin to the licensure tests that other engineering disciplines and STEM professions already have.
Software engineers may hate credentialism, but if it's a credential that you only need to take once or twice in a decade, then it's already far superior to the current system that forces candidates to undergo this each time they change jobs.
As it is, I'm basically studying for an unknown and nowhere near standard "certification", more or less, in the form of the technical interview, with only an inkling of what I might have to study for every single interview I go on.
I guarantee my career has been stunted because I delay my job search because I just don't want to go through that bullshit all over again, and stick with jobs long after I've stopped being passionate about them, despite there being a huge demand for software engineers.
Not everyone has to take the standardized exam, but if you do, you can show that to someone and they go "okay, I'm going to skip the technical pop quiz, let's move on to other things".
That's supposed to be what my degree was for, but apparently no one trusts that anymore, so why did I waste the time and money in the first place?
* Accounting has CPA exams/certifications
* Law has the bar exams/law school
* Medicine has the USMLE/medical school
Tech prides itself on the fact that "anyone" can be a great tech worker regardless of how you get there - read some books, attend a bootcamp, go to college, or even just start banging out code on the keyboard until you gain experience
Unfortunately, that means that the companies have to have some filter
Btw there is a Software Engineering PE exam but I don't know anyone who has taken it: https://ncees.org/wp-content/uploads/2015/07/SWE-Apr-2013.pd...
If you take and pass it you can add the title PE to your name in the US.
I think a better alternative is some type of bar-like or CA-like test that anyone can take regardless of qualification, but which you must pass in order to be considered a competent software engineer.
Yes tech interviews could be much better but other industries hiring process is just as if not more broken than ours.
Same thing with other banks and hedge funds - 5 years ago I think the only major bank that leetcoded me was Goldman, and even that was leetcode easy level. Today, every bank leetcodes candidates AFAIK.
Pretty much every company, both tech and non-tech, I've interviewed with the past 3 years has done leetcode interviews at various levels of difficulty and rigor. Interestingly enough, recently FAANG and a few other top tech companies seem be creating frontend specific interview tracks that are arguably more practical tests of JavaScript knowledge rather than pure leetcode problems.
Maybe I just don't have friends at the >= VP level?
Not a close friend, but do have a close associate who was VP level at Google. We were having coffee and he offered to refer me, but said I'd still have to go through the whole standard interview loop - even the phone screen in fact.
The downside is that he has to be very un-picky on what the role entails whether it be working with some super unsexy legacy technology (Excel VBA! Legacy ASP.NET webforms!) or doing devops or even helpdesk duty too. Hedge funds being hedge funds, small as they are, they all pay pretty well, though not at the level of a top tech company.
It's a combination of these places being pretty small shops and having friends there in high places. Including, from what I hear, a billionaire hedge fund exec or two.
EDIT: Ahh, didn't see the FAANG qualifier.
I did use "FAANG and other top tech companies" as an example, but I'm seeing this practice expand out towards many other companies both in and outside the tech industry.
I myself work at a non-tech company (bank) and even with my team/department, all a referral will do is just get you to the leetcode interview and maybe a slight advantage if the final decision is between the referred candidate vs. another non-referred candidate with all other factors being equal.