You have two parties engaging with each other in a subpar way, and your solution is to make things better for one party (hiring side) and significantly worse for the other (candidates). Trying to convince candidates that this is good for them, won't make it so. Eg:
> Every stamp that you hand out, pass or fail, leaves a candidate richer than they showed up. This attracts strong candidates to you, because even your rejections are worth something to them.
Candidates don't want stamps. They want stable work.
- Steve's company got acquihired by Amazon, granting him a free ticket in without all the torment of the multi-stage interview pipeline.
- It's a well known fact that it's easier to jump from one FAANG to another, so while interviewing at Google he had significant advantage, plus the blog gaining popularity.
- All of this has caused a deep down imposter syndrome, which resulted in an attempt to "improve" an interview process from the inside - but the wings were clipped pretty quickly by the corporate politics. It turns out that lawyers are not planning to reinvent anything there and hence are somewhat more important than engineers.
- The post itself is an self-applause over essentially a failed effort. "I've tried"
And even if you're interpretation is correct, you sound pretty rude. You're really gonna mock someone for not liking the interview process and trying to make it better?
I know this author’s name but not his whole life story, but it reads like he got hired at Amazon before they acquired Geoworks and brought all of his former colleagues over.
So, he actually did go through the multi-stage interview pipeline.
Just because you can’t read well, you don’t have to be so cynical.
That's some solid gaslighting right there! You're right Steve, I would rather be rejected by your team than wasting my time by doing something positive with my career.
"People would be pleased to have a rejection from us. They'd be proud to carry it sounds with them. Lucky them!"
It's funny, I see an article from Yegge and thought "I like that writer, I haven't read any of his stuff in a while, I'll see what he has to say." Then got to the end and see the links to gas town and gas city and remembered it was the same Yegge that while having accurate foresight about orchestration of agents also was a bit off the deep end in gas town.
But the biggest thing I see in this article is it really sounds like "here is the new company I landed at, and rather than make a post about its product, I'm going instead make a post about how terrible the problem it solves really is, and a post on a proposed solution. And the cues what I'll pop up in a few weeks and just coincidentally post about this new company that just happens to solve this problem in the way I've convinced everyone is the right solution."
While I don't have any evidence of this that's the feeling I left with. And if so, then "thought leaders" are a lot more interesting when not "talking their book."
However, a few companies do have a co-working day, where you work with various people on the team to solve a business problem. I wonder if he could have proposed that instead.
Ah of course, we have to do a traditional interview loop to evaluate 10 candidates before we can pick one. So you do the traditional interview loop, and then you have 6 months of provisional employment.
You haven't replaced anything, you've just added another level of hassle for everyone.
You don’t run it for everyone, just people who seem good enough and are willing to do it. A resume filter and a 30-minute conversation are usually enough.
You stop as soon as you’ve got your hire. If you’re bad at picking people for the screen, you learn the signals quickly because of your level of investment.
It does replace a longer traditional interview loop. You hardly talk to them up front. You tell the candidate you will extend an offer right after the work phase.
Another objection is not everyone can afford to spend that time with you. That’s true. We would pay them, and still got some refusals. You have to accept that every interview style works better for some candidates than others. You’ll also find candidates who love it.
I'll talk to recruiters and interview at other companies on my spare time, as before.
The false negatives suck for both candidate and hiring company who have accidentally rejected someone they would have like to have hired.
The benefit of the "provisional employment" process would be that even if it doesn't help avoid the false negatives, it would weed out the false positives so that the company at least ends up hiring people who are qualified and a good fit (even though due to the false negatives they may have rejected even better candidates).
Given how arbitrary in terms of talent mass layoffs are, there are of course tons of highly qualified out-of-work candidates (and due to age discrimination, maybe some of the best/most-experienced ones!), so this certainly might work to draw from that pool of candidates.
30/60/90 is pretty standard stuff. It’s literally the documentation and justification you need to fire the employee at the 90 day mark if you need to. Like a preemptive PIP if you will.
I don’t want to hire anyone who doesn’t want to be held accountable to what they say they can do anyway.
In the US at least, firing people for cause is difficult to do. More likely you just wait for next RIF and include your low-performers on the list.
So, yes, this is business as usual to some extent, but it's not a very cost effective or efficient way of hiring. If you really have work that needs doing, then you want to hire someone able to do it, not have a haphazard hiring process where it's a crapshoot and "if they don't work out we'll just fire them in our annual RIF, and try again".
Most places still interview. Because hiring someone for 3-6 months is still an expense. For large companies, onboarding can take many weeks before you're even thinking about being productive. Interviews don't need to be 100% accurate. They need to be time-efficient and an ok filter to prevent hiring the worst people.
I don't see how a bad job market is going to make skilled people be willing to intern in order to get employment. Employment is a market, if demand goes down, then the reaction will be that price goes down.
The reason students are willing to intern is because the supply is so high and demand so low that you can effectively hire them for nothing (or next to nothing). The interns know that on completion the internship will upgrade them to a new category with new supply/demand. It's the same reason they are willing to pay large amounts for a university degree.
So interviewing will stay the same. If demand collapses, we will see wages drop, and I imagine the supply of software people will react through early retirement, career switching and reduction of people choosing it as a career before we see an upheaval of hiring methods.
What I feel like I'm reading here is someone who has been poisoned by FAANG hiring practices --- and they are terrible --- and has missed most of the work that's been done (outside of Google's admirable work in debunking their own processes).
I appreciate the "kitchen confidential" here, but with respect to Yegge, I think he's been working at the Olive Garden this whole time. Go stage at Gramercy Tavern! They're working at a different scale, yes, but you'll at least get a different perspective on the "gold standard".
As an interviewer, I much prefer the signals generated through a work-sample interview. I'm much more confident in the hiring recommendation than I get from a 1 hour zoom session. However, if I look at teams that were built through the work-sample and zoom interviews, I'm not sure the outcomes were that noticeably better.
As an interviewee, I think I understand the frustration being on the other side has. With an in-person interview, I often have a good sense that I bombed the interview or something to improve on or replay in my head, less surprising outcomes. On the work samples it's harder to know whether you're making mistakes, or are being out-competed by someone putting in 4 times the effort to polish the solution beyond what their regular work product would be. Although I had one really good outcome where the work-sample interview really flagged the internal dysfunction of a company.
And then with both interview processes, I still think there is a really big unknown on what the false no-hire rate is, how much effort is getting wasted rejecting candidates that would actually fit the team.
So having to choose a process as an interviewer, I'm with you and would always choose a work-sample interview. On whether it should be considered the "gold standard", I'm much more hesitant, I think there are some limitations that are still hard to control for.
I do wish Starfighter/Stockfighter model had gained more traction, would've been interesting to see a recruiting company specialize in this and then seeding the interview results to multiple companies model work out.
It's not just you. At the end of the day interviewing has been demonstrated to be close to a crapshoot in the best of circumstances, and very few interview schemes are the best of circumstances. Work samples are part of the optimal strategy [1] but even then the signal is quite low.
a) it discriminates against people who cannot spare 4+ hours of focused time on evenings/weekends to work on the problem. People with multiple jobs, single parents, etc.
b) in the age of AI it is no longer a reliable measure of someone's skill, for obvious reasons
Unlike Yegge, I haven't worked at FAANG, but the companies I have worked at all followed the same hiring practices and suffered from the same problems as he describes.
Provisional employment (or, if that's not possible, then well-paid internships) solve all of those issues. The candidate gets 3-6 months of stable employment, you as the employer get a large number of work-sample tests, and you can see how they use AI and how much.
Provisional employment doesn’t work for most cases, though. It might attract people who have no job and it might attract people who have so much saved that they are okay with potentially being let go after 90 days. But I imagine the vast majority of the potential employment pool are not willing to quit their current job to accept a “maybe” job from another company.
But the "way more than 4 hours" thing smuggles in a premise: that every candidate should be able to finish the challenge in the allotted time. But candidates with greater aptitude or conversance with the problem domain will complete work sample tests faster than candidates without, and selecting for those candidates is the point of hiring qualification.
If I ask you to write me a python function to convert OSGB easting/northing into WGS84 longitude/latitude the task has a very clearly defined scope. If you knock it out in a quarter of the allotted 4 hours, you've saved time. You can't use the remaining time to go further and demonstrate your mastery.
On the other hand if I ask you to write me a website for organising photos, there's no such thing as 'done' - no matter how good you are, after 4 hours you'll still be able to think of ways to make it faster, more beautiful, more featureful, more scalable, cheaper to operate, etc
Obviously, as a hiring manager I'll notice if you've spent 40 hours on the 4 hour task - but if you've spent 6 hours maybe I just think you're a fast worker with relevant experience and sharp tools. And my sense of how far you can get is calibrated by other prospective hires; if lots of people are spending 6 hours and claiming to have spent 4, my expectations will naturally be high.
For all its flaws, part of the benefit of an interview is it's time bound and equal for everyone. Similar to a test.
This isn't a college application.
The rest of this I'm not interested in. For as long as we've been talking about hiring processes on HN, there have always been staunch defenders of interviews. Lots of people have spent time getting good at them, there are classes on it, there are books, there are drilling exercises. I don't anticipate talking those people out of their investment in interviewing.
People aren't saying that. They are saying that other candidates will put in more time. If I do a professional job in four hours, then an equally talented candidate who puts in eight hours will produce a much more polished effort, and they will get the job.
I guess the fix is to ask the candidate to pick a four hour window, and to ask them to complete the task in that time.
I understand that some people are concerned that they're competing with candidates who will put in 12 hours to do what they should be doing in 4. But that's not their problem. Their problem as a professional is to evaluate whether they can do the challenge in 4 hours; that's the expectation the job is setting.
It is perfectly reasonable for someone to look at the hiring process we're running and say "no, this communicates to me that this job wouldn't be a good fit for me". That's a good outcome! Most jobs aren't a good fit for most people; that's the whole challenge of hiring.
With AI coding this is also largely useless. These “build this thing in 4 hours” assignments come with a literal prepared prompt so that they can be churned out in 10 minutes.
Again, the underlying smuggled premise here is that candidates have to finish the work sample. No they don't. In fact, that's a strong sign it's not an effective work sample. A test that everybody passes isn't a real test; it's just a hazing ritual.
So you saved yourself/the team several possible hours of interviewing, and me quite a few hours - I think it took me about 10 to 15 minutes to see what you wanted in an engineer and that I was not it, and a total of 1 email which felt quite automated (whether it was or not) so there was a very low social cost as well.
> Again, the underlying smuggled premise here is that candidates have to finish the work sample. No they don't. In fact, that's a strong sign it's not an effective work sample. A test that everybody passes isn't a real test; it's just a hazing ritual.
Now this is an interesting take. Usually when people talk about these take home assignments, they talk about assessing the quality of the work. How good is the design? How is the coding? Is it efficient/elegant/whatever?
Here you take a much different approach, saying that the completion itself is the filter. If one person completes your assignment in the allotted 2 hours and another needs 12 but never tells you that, do you not care about that discrepancy?
I'm having a real hard time seeing how this isn't strictly better than an interview, which, as the article (and basically everything written in the last year about interviews) points out, is basically a random function.
The AI thing is an interesting problem, but a solvable one. We continue to hire resume-blind.
Would this company permit an employee taking 3 months unpaid leave to provisional hire somewhere else and have free choice whether they stay or go at the end of it.
It might be a more salient concern now, in the era of AI agents, and we are much warier today than I was at Matasano, but generally I think this risk is more talked about than experienced.
Yes, standard interview loops also discriminate, and the more time they take, the more discriminatory they are. Any on-site requirements compound the issues.
Like Yegge says: provisional employment/internships solve all of these issues. You get the best of all worlds: stable employment for the candidate where they get paid a regular wage and aren't under a stressful interview setting, and lots and lots of work samples for you, the employer. It's not perfect. For example, it can be difficult to entrust the provisional employee/intern with anything impactful if you don't know whether they'll be employed at the end. But it is significantly better than the alternatives in most contexts.
It works. I’ve seen it in two different places.
At the second one, the fundamental realization I came to was that it is virtually no different than “regular” employment, where the new employee can get fired for not meeting expectations within an arbitrary time period after being hired. This can be months, or even weeks. From the perspective of the candidate, regular employment and provisional employment have roughly the same level of risk: in both cases they take a job where they might be let go at some point. The benefit of provisional employment is that they know how long they will be evaluated for and against whom. It turns out a lot of candidates do in fact like the all-cards-on-the-table approach and enjoy being given the opportunity to prove themselves on the job.
Nobody does this, of course, but then provisional employment is a silly idea to begin with.
If you are going to take a day off to do 3-4 in person interviews at a company then this slots in well.
I also think this is pretty bad for candidates. The last thing I want to do is a bunch of unstable gig work for fickle startups in one of the most expensive places to live in the world. Also, I really think this only works if you decouple things like health insurance from employment, otherwise the instability can be too much for a lot of people.
The conclusion at the end that bringing someone on board is the ideal method is true I'm sure, but even that runs into the issue that employee evaluation is an even worse situation than the interview process.
You can openly see some managers panic when they realize they have no idea what their employees have been doing for the last 6-12 months when they're asked to provide feedback.
1) The worst interview I ever had (BY FAR) was at Google--disrespectful people, no respect for time, I could go on and on. And I went back to try again to get that money showered on me. Worth it in the long run.
2) Their new system for "performance management" is a hoax. Just like at all other places, it "documents" what you should do so they can fire you more easily with unspoken rules and all sorts of arbitrary causes as well. A friend literally hit EVERY pre-agreed target and still got pushed out for "not delivering".
They told me it was all about pseudocode and how I think in advance, then on the actual interview they were being annoying about variable names and spaces after comma, while I was supposed to come up with some clever optimisation that boiled down to: "do you know this obscure theorem already? Cool you pass"
1. Standards got higher. Luckily if you got in early and proved yourself you are OK. But doesn't mean you would pass the current interview.
2. A marathon runner (with rare exceptions) can't run a marathon on a random day. They train for a specific date. Same with interview prep.
They did, but not with the intention of doing anything about the problem.
This is a question of reliability, the conceptual 'correlation' of a measurement instrument with itself when measuring the same thing.
Reliability is one of two major concepts in psychometrics, the other being validity, the conceptual correlation between a measurement instrument and that part of reality that you're hoping to measure.
The question behind validity is "I want to know X; if I measure Y, how helpful will that be?". And the question behind reliability is "if I measure Z, how accurate will that measurement be?"
https://en.wikipedia.org/wiki/Reliability_(statistics)
https://en.wikipedia.org/wiki/Construct_validity
Yegge calls out both concepts explicitly, though not by name, in this essay:
>> The outcomes from interviewing are statistically terrible. Google did wave upon wave of analysis over the years, and all the results were incredibly depressing.
>> [reliability] To name just a few off the top of my head: interviewers barely agreed with each other. Put the same candidate in front of two of our sharpest people and you’d routinely get a confident “strong hire” from one and a flat “no” from the other.
>> [validity, though the 'problem' here is strongly confounded by a restriction of range issue] And once people were actually on the job, their interview scores told you next to nothing about how they’d do
>> [reliability] Hell, some of our star performers failed their Google interviews four or five times, finally got in after 2+ years...
>> [validity] ...and then outshone everyone else.
The discussion of how interviewing outcomes are statistically terrible would benefit from naming the ways in which they're statistically terrible. Knowing the problem you have is an important step toward solving it.
(And as a side note, the last I heard from Google, you're not allowed to interview more often than once a year. Interviewing five times in two years would seem to violate that policy.)
It is a basic theorem that the validity of any instrument is bounded above by the square root of the reliability. It isn't possible for an unreliable instrument to be tightly correlated to reality, because it is, by definition, not tightly correlated with anything. That's what it means to be unreliable.
Thus, any company that wanted its hiring process to be good would necessarily be extremely concerned with making that process accurate; you need to come to the same decision when you assess the same person. This is something that interviews cannot achieve except at extreme cost. You'd need far more than five interviews to get a reliable assessment from them, despite the claim in this essay that "any more than four interviews and you're just playin' with your food". Of course, the Google interviews aren't supposed to be reliable anyway, so in that sense the claim is probably accurate.
The prescription Yegge offers is valid. Multi-month work assessments will give you a strong, reliable, and valid signal. They're also very expensive.
Another thing the essay completely glosses over is that this problem has been recognized for a long time, and we already know how to do assessments that are reliable, valid, and cheap to perform. They're called standardized tests.
The problem is that companies like Google that have evaluated their own hiring process, by comparing candidates "hiring score" with subsequent on-the-job performance, have found that there is little correlation. So, while the goal (be more concerned about false positives than false negatives) makes sense, their process of trying to achieve this is broken.
Perhaps we could administer this IQ test at age 12, so that the low-scoring individuals can go straight into the fast-food industry, and the rest can pick between the doctor/lawyer/SWE offers that will be showered upon them?
Hiring from a test that measures IQ is a very good idea (and there is a test that's commonly used for hiring purposes, the Wonderlic†); hiring from "an IQ test" is a bit less good. Anyone who wants to subvert the Raven's test will be able to do that. High-stakes tests need more security.
The concept of "IQ" can be toxic in contemporary American politics, so there are many more tests that "happen" to test IQ than there are tests that advertise themselves as testing IQ.
† https://psycnet.apa.org/record/1982-00123-001 : "correlations between Wonderlic IQs and WAIS Full Scale IQs were [0.93] for the main group and [0.91] for the cross-validation group". Note that this test involves only basic math and takes 12 minutes of the candidate's time.
The post touches on it (regulation about firing causing legal issues) but the unfortunate truth is that turning away false negatives has little cost to a business as long as you make sure to turn away false positives. Bad hires are extremely expensive, where as the lost revenue of turning down a good hire isn't nearly as bad (it's easy to try to hire them again later).
The stamp idea is good, reputation based hiring is important, as shown by the use of referrals in hiring. I've always wondered why we don't keep track of referrals inside companies in order to figure out who is recommending their peers who legitametly are good fits, vs those who are just trying to help out friends (who might not be the best hires).
Further I think there is also the problem that anti-corruption/anti-nepotism often harms hiring. It's much easier when working in a start up to hire the most talented people you know without other people sitting in, compared to at a big company where I know people who actively know good people they want to hire, but who can't be arsed with the long interview process and high chance of rejection.
If it wasn't for the regulation around firing some sort of staking your job on the line would be effective. You can refer someone and have them skip most of the process but your job is on the line if that was a bad call.
A man walks into a pet store. There's a parrot for $100, it says this parrot speaks perfect English . The one next to it is $1,000, and says, This parrot speaks 12 languages fluently.
Then there's a bedraggled looking, droopy, parrot, and its label simply says One Million Dollars.
Does it sing opera and has successfully run for President? the man asks with a sneer.
This parrot, says the store owner, _thinks_.
That's what this entire post is about - how to evaluate people with a series of attributes, score, correlate, blah blah blah.
Hire them, see if they think. If they don't, fire them. It's cheaper than this credential/signal rigmarole, most of which is about CYA legal b+llsh1t. Yes, it's a simplistic strategy and it doesn't work for Shoogle, Banthropic, Goober, whatever. You know what, boo f*cking hoo. You're a trillion dollar company, suck it up. You have a zombie horde at your doors and you're just upset the "true gems" are hard for you to spot amongst the slavering masses. You're going to heartlessly lay them off anyway in a few years. You SHOULD feel this pain and anguish of having to sort through them, constantly regretting all your choices. That's the only way to have balance in the Universe.
Edit: Didn’t link it initially because I thought it would be hard to find. Turns out it’s not. https://www.pushkin.fm/podcasts/revisionist-history/hamlet-w...
The fact that an organization cannot deal with such a case is a bigger problem in the first place. Eliminating incompetence and malice is among the basic skills of an organization.
Why is incompetence so discussed for ICs but rarely for management?
Maybe if more managers were competent and less conflict-averse they would do their jobs better and cycle out incompetence and bad intentions faster.
Ah wait, but middle managers specifically choose conflict-averse, easy to control, domesticated people. That's why you find this particular type of personality in management so often.
So the issue is incentives as well and bigger than initially thought.
That's real useful work, if we don't hire them they can show it off to a different hiring company, and it makes the world a better place.
And that's why the trades require you to perform years of work as an apprentice before you're ever qualified to pass an exam to become a journeyman. Not only is it like a years long internship, but you're paired with someone who has already passed a high bar. You're learning directly from vetted people, and those people can vouch for you.
> University of Waterloo famously sends their Computer Science students through a total of six internships, giving them roughly 2 years of real-world work experience before they graduate.
Still less time than an apprentice is required to work, but it's better than nothing. Most trades require you to be an apprentice for 4 to 5 years.
> The reason is, hiring engineers has historically been so competitive that you couldn’t convince a senior engineer to do an internship [...] So the industry converged on not requiring it.
Which is one reason the trades made it the law that you have to follow the apprenticeship in order to become a journeyman. "The contracting companies don't feel like hiring licensed workers" isn't an option. Companies don't do the right thing unless they're forced to.
This is why we need professional engineer certification for software engineers. We need a rigorous, time-tested, reliable process to ensure engineers have actually done the job in the right way. Otherwise it's a bad guessing game like Steve is explaining.
This is also why we need a software building code. We need to explicitly define exactly how you're supposed to engineer, so that we can create a certification that people can pass. Otherwise designing and building software is completely subjective. Engineering should not be subjective.
This is not some mysterious experimental idea that nobody knows if it'll work. Trades have been doing this for decades. It's not perfect, but it's much better than the alternative.
From the candidate's POV what is mostly broken about the application process is all of the ATS gaming, resume tweaking, etc, just to avoid getting filtered out before an interview, as well as the inane leetcode screening that some companies are doing.
A better process might be to replace all initial profile/resume-based screening with task-based evaluation (evaluation could be at least semi-automated - if a computer/AI is going to reject me, I'd prefer it to be based on task evaluation job skills rather than ATS-filter avoidance skills!).
Lengthier on-site interviews/evaluations could also be task-based - for a developer role perhaps a 2-4hr peer-programming or problem solving task. Far less signal that a 3 month provisional hire of course, but maybe a better use of everyone's time than a traditional talk and brief whiteboard challenge process which is clearly failing as a useful filter.
I wouldn't expect companies to forgo the traditional touchy-feely team/culture fit type of screening as well, but better if this came after they'd already determined, as best they can, whether you've got the chops to actually do the job well.
A small scoping/guidance suggestion to start: Is the problem of improving hiring more tractable if you don't try to solve it for Google?
What if Google is hopelessly tainted with biases, from having run almost every single person there through a process that you acknowledge is a horrific load of poo. Which not only means the process has become a religion/frathouse that people are proud to have been accepted into, and will defend fiercely, but also greatly determines the strengths and weaknesses you have to work with, if you want to get them to do anything else.
What if you instead start with smaller companies that don't have the baggage of FAANG, and look at their requirements, which may include some mix of (off the top of my head): prior experience, learns whatever is needed, creative/innovative, works as a team member, aligned with company success, professionalism, good for morale, good for catalyst, will have some loyalty during the harder stretches or when tempted by a little more money.
It would be nice if, instead of many 2-person startups making their first hire with the assumption that they should mimic the known-bad processes of megacorps (often based on their own FAANG-oriented interview prep in college), the megacorps were desperately trying to figure out how to hire as smartly and genuinely as SMBs, but at FAANG scale and with all the FAANG legacy workforce biases clawing them down.
B.A. Political Science, Bangalore University (failed)
Everyone will have some successful stamps, and they accrue over time giving better signal. Hiring managers can make a rational decision about what number of stamps over what period of time is sufficient to evaluate a person, trading against the risk of misreading a profile by accepting someone with fewer stamps.
In the last few years I was the main tech interviewer for a 300-employee fintech.
For a specific position, one recruiter got around 150 applicants, selected 5 great ones, who did take-home tests and mild-tech interviews. Offers were made to most.
For the same role/salary, but from another queue, a second recruiter got around 900 applicants, cherry-picked about around 70 of them. Out of those, only 40 completed the 1h take-home test. Only 20 delivered it, only 10 implemented the requirements. Of the 10, all were unable to answer even basic questions.
This was concurrently, so it wasn't "affected by AI".
I didn't changed my methods and in fact I didn't even got close to asking hardball questions to the second group.
The second recruiter didn't get their contract renewed and left.
If I am doing a 6 month contract which is what he is proposing then yeah I want a great day rate and to earn 12 months salary in those 6.
It basically means I invest in a company that doesn't believe in me and probably wont try to help me succeed.
Also mortgages, car loans, life and health insurance etc. are harder to get on a short contract.
Hiring is broken (maybe) but 6 month paid interviews are not the solution.
Today I'm 45 with family and have a fancy VP title, but I would have no problem to do this for an interesting role at a cool company.
Now you're amazon/google. You have 200 open positions in a certain site/country. You receive 10000 CVs. Same problem, different scale.
So ok, you need to filter CVs, mmm, which sucks, right, so perhaps we do a screen interview? mmm, low signal, maybe....
And before you say that this is inefficient consider that despite being terrible for morale and efficiency (proven in un’etica studies) companies still maintain the bottom 10% out or up or out policies.
Companies always love their power on their employee over efficiency.
Just one more thing: the industry should really put a bit more weight on measuring people's potential and the concept of long-term growing and learning on the job. Just saying. You know, like every other industry on this planet.
It's true, but prepping for a typical senior+ onsite loop in big tech still requires weeks of grinding leetcode, re-learning the latest system interview questions and the system interview answer framework, refreshing and rehearsing STAR stories, studying the company and its unique quirks that you're expected to know to pass the culture filter, remembering how to do all of this speedrun-style since you only get 40ish minutes per session, etc.
While that knowledge is more reusable across onsites, it's likely even more work than doing real or pretend-work for the company for a couple of days.
> When candidates get to walk away with something of lasting value that they can keep forever
I'm curious why them getting rejected from the position, even with the work sample they can carry away with them, wouldn't be still interpreted as a negative from future employers. "The other co passed on them, am I the fool for thinking they're good?" type of herd mentality which is often unavoidable.
Won't that "work sample guest book" be treated as the list of all companies that rejected you, a net negative for your personal brand you're projecting?
> (Me paraphrasing what Steve was implying) Take-homes are impacted by AI one-shotting them for candidates
I've been pleasantly surprised by how much you can glean from having the candidate upload their conversation log with the coding agent for whatever take-home you give them.
Why would this be useful signal?
I'll assert that you're in a professional environment of: dishonest posturing and oversized egos in startups, bureaucracy and butt-covering in established companies, and a culture of thin niceness veneer.
I'd think all of that would be barriers to a useful Permanent Record.
> This system is basically worth exactly what your honesty is worth. If you hand out gold stars to everyone, you’re just reinventing LinkedIn endorsements, which are worthless. Companies whose stamps mean anything will be the ones known for only handing them out for quality work. Being a hard, fair judge is an advantage for everyone.
What is the precedent of that working, in the environment I just characterized?
Given our current environment -- which isn't going to change easily; it works for the people who have most of the money now -- seems like a not very reliable new category of surveillance capitalism. But it gets worse... A lot of techbro founders will immediately see this as the next sketchy, hated tech company, which won't only charge companies a fee to participate, but the real business will be twisting it into off-label uses. For example, with whom and when a person has interviewed, and who which companies are interviewing, is valuable data to sell, no matter how useless the feedback. They could also see how close you could get it to a protection racket, by selling Pro individual memberships on the side.
So we get bad signal for the ostensible service, in exchange for additional techbro dystopia.
Or maybe the company changed in the 10 years or so since everyone in that room was hired and the employee needed 10 years ago is not the same as the ones needed now?
My record is comparatively humble: I hired around 300 people in tech for small-to-medium size companies, in the small tech backwater of Vancouver, Canada.
My conclusions:
(1) Interviewing is an intractable problem. Start by recognizing that.
- You don't interview the best candidates, but the ones with the best resume.
- You don't hire the best candidates, but the ones that do best at interviews.
- Screening by HR (phone or zoom) is at best useless.
- Timed coding assignments are a waste of time. They are used because they're cheap + provide a [generally wrong] "quantitative signal". Noone's job will consist of solving 8 "leetcode" riddles/day.
(2) "Technology fit" is a dangerous illusion:
- It is very, very, very unlikely that any candidate will be able to pick up right away your tech environment. (ok; exception: you're hiring permanent an existing community contributor for your open source project)
- Your best new hires will be 0% productive in their first month (negative; training will use resources); 15% in their second; 50% in their third.
- Rejecting e.g. "Java" when screening for "C-sharp" is stupid.
(3) The interview process is about building relationships.
- People you don't hire will remember your company from the interview + disseminate.
- Someone you didn't hire today (one of your top rejections) may be super-attractive 2 months later, or next week if your top candidate accepted another position.
- Ownership of the process or at least buy-in from the team (vs. just the hiring manager + opaque "corporate committees") is the first step in a working relationship. Your "superstar" may end up being toxic in the team and you could find that out in the interview.
(4) Five simple rules:
- Treat phone/zoom screening like an advertisement for your company. Ideally do it yourself (hiring manager). Largely ignore feedback from HR :)
- Hire candidates who are: smart + hungry. Programming languages; frameworks; environments are secondary.
- Try to get a sense of the fit with the other humans in the team they'll be working with.
- Take "3-month probation" seriously. Explain it to the candidate + team. Sell it internally. Candidate compensation for a botched probation is reasonable + just money, after all.
- Treat candidates as humans: Send a personalized rejection (from you, the hiring manager _not HR_) to everyone who made it to the interview. Call or zoom everyone who made it to the final round. If you can, provide them actionable feedback on ways to improve their interview process. Leave a "human" door open.
If you want to know if someone is good at your company in 3-4 interviews, it’s tough, the best they can do is ask these technical questions. Talk to you about your past work, ask you technical what ifs. Most dumb ass companies will ask you to do trick coding leet code crap.
Warning, sad boi rant ahead.
I was from a programming bootcamp. I entered the tech because I was the only person in my bigger family members who have the skills/education/chance to earn a big salary. I still remember, I paid $12k back then, and it was me and my mom's only savings. I started tech in my 30s, and mostly worked physical labor work before that.
I was the weakest at that cohort, but I studied really, really hard, until the bootcamp noticed my progress and hired me, albeit at a very low salary. That was my first programming job.
I eventually learned about big tech, and liked the fact that they didn't care about credentials, whether I came from a good university or not, unlike the YC combinator startups who mostly cared about credentials. I learned that they pay really well, and I did, read Steve's blog, "Get that job at Google". It motivated me to study DS&A, and also to get CompSci degree.
Overtime, I lost count, how many interviews I have failed at big tech. I gained more experience, I became older, but I kept studying, and studying, and studying, but I keep failing. I also wasn't sure which area to study, so I ended up studying for everything, from frontend to backend. It was a lot, really, a lot of things to study, from leetcode to JS specific to DOM to backend system design to frontend system design, to behavioral, and frontend interviews back then was still a crapshoot, some companies ask for deep JS/DOM questions, some companies just ask for leetcode questions.
But I kept failing.
I think I'm pretty good, or at least, that's what I thought. I learned quickly, I have no problems for clearing mid level leetcode questions in under 20 mins. Overtime, the bar gets really hard and it became hard level leetcode questions in under 20 mins.
But what made me really bitter over all of these interviews, was that I saw my friends, people I knew, from programming bootcamp, from my CompSci degree, got a job at big tech. I knew, or at least, what's what I thought, that they had less skills than me in programming and in DS&A. But they got into big tech. Some of them were minorities, and during that time, diversity hiring was a thing, and maybe that's why they got in, I thought to myself.
Sometimes I asked them what the interview questions were, and to my surprise, it was easier than my questions. Idk why.
Sometimes I wonder if my luck in interviewing is really bad. I tried everything I could. I bought courses and devour those materials. It's been years and years and years and years. It did wear down on me. I want to cry, which I did sometimes due to keep failing big tech interviews. But it won't do me anything, I can only keep my head down and keep trying.
I ended up making pretty good money in this field, and able to help my family members. I did work with some of those big tech engineers. I realized that those big tech engineers were just average, and I don't think I am less capable than them. That made it sucked even more, because I don't understand why I kept failing, and why the people I know are succeeding.
I do some freelance now, but will finish some of my contract. The job market is scary, and one of my contract will finish soon. I am having hard time getting even recruiters to contact me, maybe because I don't have big tech credentials.
I also did mostly fullstack/frontend leaning lately so I ended up studying frontend interviews. But frontend job market is kinda dying lately, since most companies don't really respect frontend and don't think its worth it anymore. These days, I don't even know what to study anymore, so I need to study everything again, with the addition of all the AI stuffs.
I can't help but to think, and always think even today, especially during this tough economic times, what if I was able to get the big tech job. My family would be proud of me. I would have better companies in my resume, and could stand out more in the job market. I could've done some cool highly scalable projects that I can boast of in my resume. I could've joined some good team, mentored by good engineers. I would have more savings than now.
These days it doesn't matter anymore. The big tech salary era already closed. Things are way way more competitive than before. With my average background, I don't stand even a chance at being asked to interview.
Life is really a mystery. Things that you really need or want, you don't get it no matter how hard you try. But it is wasted away on those who got it.
I usually don't post comments, but seeing this post, I just needed to vent.
Thanks for reading.
Thanks for this article Steve. I need to read this. Maybe it will finally give me closure, after years of failing.
The place was not big - never got much beyond 100 engineers, but produced dozens of founders, VPs, GMs etc at well known companies, as well as engineers with very notable OS projects and lots of high-placed engineering in FAANG companies.
The treatment: there's a long failed history of using contractors and hiring the best, which is a recipe for abuse and PTSD.
The wisdom now is that one should prioritize avoiding false positives, but the observed facts are that many people who later do great interviewed poorly.
For false positives, there's the legal risk (hard to fire), but the greater risk is the damage to the organization before they are fired.
The premise is that people are great or not at interview time, and the process just needs to be accurate.
But for both false positive and false negatives, the reality is that how people work out does not vary primarily with their skills (probably because all candidates have enough baseline skills) but is a function of both them and their work+environment - not f(emp) but f(emp, work, others).
For f(*, work, others) there are 2 troubling issues: 1) for underperforming groups, there's a massive incentive to blame someone, and blaming the new hire is the solution that doesn't disturb existing relations; and 2) even effective combinations f(emp, work, others) might not be able to perform as needed, so performance is only a qualified measure of effectiveness.
So the more interesting fact is when low-score hires end up doing well, which is signal for a high-functioning team being able to get the best out of people. And when emp goes on to other contexts successfully, the effect could be persistent (and they could be bringing it transitively to other groups).
Yes, companies need to hire good people. But sometimes it's more important for companies to make good people of those they hire.
I suspect the poster child for selection is Amazon, and for making the best of what you have is Apple. Amazon is great at pursuing new opportunities relentlessly, while Apple is good at managing a very complex supply chain and delivering consistently.
So on the "bundle" theory of companies (from recent discussions about Japanese company diversification), you'd want to optimize hiring to company capabilities and orientation.
If you make "accuracy" at interview time the standard and optimize against false positives, you're almost deliberately hiding from the details that determine what people will grow and contribute the most. (Here's where prior relationships, school networks have a positive effect that pragmatists accept (notwithstanding the social bias).)
Almost any work can be as formative as prior experience and education. I think that depends most on mutual consideration and a growth perspective, and you can interview for that. Like investments, you're looking for growth potential, not past performance.
Ironically, successful teams that make the most of their people don't need to hire so much, so you'll have less signal.
That answers why interviewing can not only be broken but stay broken: you're studying failures and optimizing for anti-failures, but there are a million ways to fail and a billion incentives to do so.
Better to deeply understand and replicate the few successes.
FIRST - is that before you get to campfire anyone, you have to have done some sort of interview process to boil it down to the one person to do the campfire - so how does that work eh?
SECOND - campfire is deeply invasive to the candidate's life and time.
THIRD - you have to pretty damn sure someone is a hire before doing a campfire. You CANNOT do campfire as an evaluation step, after which there are more interviews.
FOURTH - this is effectively just a really really long version of the take home work test which is absolute bullshit.
FIFTH - there's STILL no science to the campfire. Don't give anyone a fucking test if you don't actually know how to scientifically evaluate the results. And campfire does NOT result in a scientific outcome, it still results in an arbitrary opinion.
SIXTH - any company that wants me to do a campfire - to commit days or even weeks of work as part of them trying to decide to offer me a job - can fuck off. Sorry, the party got spoiled by all the other companies who asked me to do something as part of the interview process and then either ghosted me or gave me some bullshit outcome like "they didn't like your work".
I can tell you how to recruit people and it does not require campfire.
You TALK to people about software development - you engage them in extended conversation about what they have done, what they know, what their interests are, what they have built, what projects they worked on, what went right, what went wrong. You look for people who have BUILT STUFF - this was true before AI and is 100X more true now - anyone who has not built anything today is not worth employing and anyone who has built something must be able to talk about it in depth. This interview processes worked before AI and it works after AI. And finally, you accept the limitations of recruiting which is that people are people and you won't find out how well someone performs until they have been on the job six months - live with it.
Sorry Steve - I love your work but I'd never work for any company that wanted me to do a stupid campfire because they don't know how to actually work out if I can do the job or not.
Talking requires that the interviewer be competent and care. Which seems like a low bar, but it easily degrades. When an engineer is burned out, or is interviewing for a project they have less stake in, or has business requirements forcing them to hire someone fast, the bar lowers. Those engineers now are the gatekeepers, and they let in even weaker engineers.
Even worse, any utility from this is predicated on the founder making good hiring decisions. If they don't understand how to hire a competent engineer and make them care about the company, then it's dead from the start. And a lot of founders or execs in general are awful at this.
Companies that maintain an excellent work culture such that engineers deeply care about the team and have stake in any project they conduct interviews for will do well with this model. I hope we see it used by them.
why not? to expensive? candidates don't have the time? i'd love to do that because it also gives me insights into the company. how they work, etc...
I can tell you how to recruit people
why is interviewing broken then?
You TALK to people about software development
didn't we try that and find out that the sweet-talkers master this and are able to fool everyone? or didn't we find that this leaves out good people who don't do well when questioned like that?
btw: my personal preference for a tech interview is 1 hour of pair programming. (not just live coding)
what?
He is indirectly responsible or at least part of everything that was terrible in most of the big techs he was part off. By his own admission, each time things were evaluated, the scientific conclusion was that it was "horse shit" and totally randomly hiring results in the end despite having candidates go through an awful process. And now he is full of ideas about what kind of new nightmare we can create to reach the same stupid result...
What I see in his post, and that I find despicable is that it looks like that he has this "superiority" syndrom making him consider candidates and employees as disposable resources.
Instead of considering the process as a "mutual" process, where it costs and the investment on joining the company is also from the candidate side, he is considering that just the employee is a liability for the corp and that the candidate should submit fully to it. Even wasting weeks, month or years without guarantee of stability or not wasting his time.