sgarland
5 hours ago
One problem with this is that it presupposes that the interviewer is skilled enough to spot problems, ask the right probing questions, etc. Casey is definitely skilled enough. I can’t say that’s universal.
Another problem, which TFA hints at, is bias. System Design interviews are often terrible for this reason. If you present me with some scenario that I know is trivial to handle with a single server, I’m going to want to discuss that, but you are probably expecting me to talk about a message queue, a caching layer, etc. Both are valid depending on the situation, but if you’ve only ever known one type, you may dismiss others out of hand.
jvanderbot
5 hours ago
If you're presented with a system that can be handled by one server and can discuss that architecture, but think they may want to hear about an AWS word salad, just say there's two approaches, discuss strengths and weaknesses for 2 minutes, and ask what they want to talk about. That is precisely the kind of thing people want from a co-worker.
weavie
5 hours ago
Yes, a discussion of the tradeoffs of different solutions is exactly what I want to hear in an interview.
thelittlenag
5 hours ago
I've now done probably close to 100 system design interviews. One of the main things I've looked for in candidates is their ability to identify, communicate, and discuss trade-offs. The next thing on my checklist is their ability to move forward, pick an option, and defend that option. Really nimble candidates will pivot, recognizing when to change approaches because requirements have changed.
The goal here is to see if the candidate understands the domain (generic distributed systems) well enough on their own. For more senior roles I look to make sure they can then communicate that understanding to a team, and then drive consensus around some approach.
sgarland
an hour ago
> For more senior roles I look to make sure they can then communicate that understanding to a team, and then drive consensus around some approach.
This is why I’m stuck at Senior lol. I can craft incredibly deep technical documents on why X is the preferred path, but when inevitably someone else counters with soft points like DX, I fall down. No, I don’t care that the optimal solution requires you to read documentation and understand it, instead of using whatever you’re used to. If you wanted to use that, why did you ask me to do a deep-dive into the problem?
AnimalMuppet
5 hours ago
In the real world, the answer almost always is "it depends".
hrimfaxi
4 hours ago
This only seems to be in software engineering. When I was told me wanted to evaluate a new task queue service, I asked what our constraints were. I was told to survey all options and present a roundup and ignore constraints. Contrast with something like, I don't know, building a house. Do architects consider all possible material choices for a given location, or do they instead limit their consideration to materials that would be suitable to the given environment?
Making the dependencies of "it depends" explicit is the whole point.
bluGill
4 hours ago
Having built single family houses before I can tell you that architects consider only the choices they know. That is why were I live there are 1000 stick framed houses for every one built with something like SIP (structural insulated panels), or ICE (insulated concrete block) even though the others are similar cost to build with overall and have some useful advantages for the customer that often would make them a better deal for the homeowner long term.
This also means there are 100 builders in my area who only build stick frame houses and won't even talk to you if you want something else and only 1 or 2 who will even think about those other options. (they do compete with the other builders so costs are not unreasonable)
user
2 hours ago
the_af
an hour ago
This tracks with my experience with architects (for home renovations): they use what they know, sometimes stubbornly so and even when I must point out it won't work out (e.g. materials inappropriate for the climate, inappropriate due to exposure to direct sunlight or water, obsession with visuals over practicality, etc).
I've dealt with enough architects by now to know this is the rule and not the exception.
Eridrus
4 hours ago
Maybe I am just bad at interviewing people, but I have tried giving the experiential interviews Casey describes, but I find it quite hard to get signal out of them.
You run into questions of how well a candidate remembers a project, which may not be perfect. You may end up drilling into a project that is trivial. The candidate may simply parrot things that someone else on the team came up with. And when candidates say things, you really have no way to understand if what they're saying is true, particularly when internal systems are involved.
I have found system design interviews specifically much much better at getting signal. I have picked a real problem we had and start people with a simplified architecture diagram of our actual system and ask them how they would solve it for us. I am explicitly not looking for people to over design it. I do give people the advice at the start of every skills interview tp treat this as a real work problem at my startup not a hypothetical exercise.
I have had a lot more luck identifying the boundaries of people's knowledge/abilities in this setting than when asking people about their projects.
And while everyone interviewing hates this fact, false positives are very expensive and can be particularly painful if the gap is "this person is not a terrible programmer, just more junior than we wanted" because now you have to either fire someone who would be fine in another role if you had the headcount for it or have a misshapen team.
MomsAVoxell
5 hours ago
>It presupposes that the interviewer is skilled enough to spot problems, ask the right probing questions, etc.
Actually, this is a case of Peters principle[1], clear as day.
Recruiters should not recruit programmers if they, the recruiters, have not worked in a programming context. The best software development recruiter is another programmer.
It also extends, of course, to technical managers and is another factor in how one should approach recruitment interviews - is this placement going to result in a high Peter principle, and if so - is the candidate going to be capable of rising above it, or dealing with it in a way that is conducive to the organizations goals?
Because Peter principle is not always a 'negative' - its more of just a condition that results from a lack of communication between parties who really should know each others jobs, better.
People who know how to understand other peoples jobs as well as their own, work great together.
[1] - not Flynn effect
kube-system
5 hours ago
Recruiters are fine at recruiting but they shouldn't be a substitute for a technical evaluator.
jonathrg
4 hours ago
What is Flynn factor?
MomsAVoxell
4 hours ago
I meant Peter principle:
IAmBroom
42 minutes ago
So you meant to talk about "Peters principle", not "Peter principle"... I can't find anything on the first, that isn't really the second.
the_af
an hour ago
In my experience, recruiters seldom recruit programmers, they just find them and do a screening, but there's a technical interview done by technical people.
Are there companies that skip the tech interview step?
xboxnolifes
21 minutes ago
The screening is part of the recruiting.
gedy
5 hours ago
> Recruiters should not recruit programmers if they, the recruiters, have not worked in a programming context.
Ran into this the other day, a company reached out, and while I wasn't job hunting, the senior role they were trying to fill was basically exactly a perfect fit for me from a skills and background on a Venn diagram.
The first two calls were young, non-technical women (they shared linkedin links), and they clearly did not understand what they were hiring for and couldn't answer questions. They insisted on their scripted questions, and didn't want to talk about the companies where I did the exact role they were hiring for.
I was not rude or arrogant about this but the next day got the "Unfortunately, we've..." email. It's actual pretty funny, I'm just glad I didn't really need the job.
Companies, stop letting HR be your first contacts and screening before technical folks. It doesn't work. No wonder your pipelines are full of the fakers and liars like many of you lament.
msluyter
5 hours ago
A third problem is that, depending on the project, one's recollection might be pretty fuzzy. A fourth is that, while you might be a great programmer, perhaps you've never had the opportunity to do the work of the design or greenfield development, meaning, you may not have a ton of insight into the design work that went into the project. E.g., perhaps you mostly do maintenance work on a large number of projects, so your overall knowledge of each is fairly shallow.
pton_xd
5 hours ago
Recollection of specific implementation details of an old project may be fuzzy, but I'd hazard that any competent programmer should be able to discuss the themes and challenges of the project in depth, along with approaches for different requirements.
Overall shallow knowledge is not a positive signal, in my opinion. If they really are a firefighter who constantly jumps around, the interviewer should lean in to the organizational challenges they face when identifying and fixing problems across a variety of projects and domains. There's always a way to drill down with more specific questions.
pelagicAustral
5 hours ago
I think this model fits a lot better to mid and small size businesses. FAANG et al will always need their leetcode barrier due to the sheer amount of interviews they have to conduct. I wouldnt think you can spare an engineer that can go through this type of interview on a daily basis, at that point the person will be solely conducting interviews and not coding at all.
bluGill
5 hours ago
FAANG et al should focus on employee retention a little more so that they don't have to interview as many. If they keep people around for years not only do they have less interviews to do, but they also have incentive to care about quality. There should be no gain to individuals moving jobs every few years. There should be gain to the company keeping experienced people around.
callamdelaney
5 hours ago
I agree with your latter point on system design. I've had 'big data' interviews where the 'big data' fits in the memory of my desktop machine - so I'm going to give you a very different answer to your over-architected hadoop cluster running over 20 1gb containers or something.
jvanderbot
5 hours ago
You have to make this a back and forth, not a monologue. Nobody is going to criticize you for tailoring your response to what they want to talk about. Treat it more like a coworker you respect asking you about architecture options, not like a right/wrong graded quiz from college or a chance to assert your knowledge and experience. Your knowledge and experience will show anyway.
__alexs
5 hours ago
I agree but it is not uncommon to find interview processes where a monologue is exactly what they expect and they are unable to have an actual conversation about the topic for whatever reason.
jvanderbot
5 hours ago
Then it would especially behoove you to spend 2 minutes to figure out which monologue they want.
ch4s3
4 hours ago
I once failed an interview because they asked how I’d solve a geospatial problem in Postgres and I said I’d use PostGIS and order by ST_Distance. The guy said “what’s postgis” and I knew it was over.
WesolyKubeczek
4 hours ago
You failed, or was it them?
ch4s3
4 hours ago
I believe we all failed as an industry that day. A friend of mine worked at the company and tried to get me to reapply a year later and promised they had scrapped the old interview process, but I just couldn’t.
renewiltord
2 hours ago
Wait. What’s the “right” answer? The “in Postgres” naturally directs towards PostGIS.
ch4s3
2 hours ago
They apparently wanted me to do some geometry, and know that the naive geometry doesn't account for the curve of the earth, and that there are indexing concerns. This was for a company that makes HR software and the interviewer who devised this exercise had never heard of PostGIS and sort of implied it was a real thing that people used.
renewiltord
an hour ago
Why on earth say the Postgres part then? Bullet dodged.
Everyone in GIS knows all the geometry stuff, but also if you say "in Postgres" you're strongly implying PostGIS.
kube-system
4 hours ago
An unskilled interviewer won't do a good job using any technique.
alyxya
5 hours ago
IMO the biggest limitation is that there's a lack of feedback in being a good interviewer. It's hard to get better at something you can't measure how well you did in any meaningful way.
Eridrus
4 hours ago
At my company, we do interviews remotely and record them and then sometimes review them and give feedback.
user
5 hours ago
dangus
5 hours ago
Maybe this is a dumb disqualifying example, but if you’re hiring someone who has worked for the government for the last 20 years on classified projects, this whole method has to be thrown out the window.
CoastalCoder
5 hours ago
I think it depends. A careful reading of the classification guides might let a candidate discuss a lot of technical details.
OTOH, I'd hate to be in a position where I had to think carefully about every aspect of that stuff during an interview. Even if nobody noticed an inadvertent classified spill, it could still suck.
SamInTheShell
3 hours ago
No. You may not even talk around the topics. This explicitly comes with the training. Anyone asks me about my last job, I don’t really state much more than what the job title was and what the job postings said for the role I applied to.
CoastalCoder
3 hours ago
I suspect your training went beyond what the law requires, but perhaps I'm mistaken.
bluGill
4 hours ago
I work with people who have worked on various classified projects in years past. Once in a while someone will mention something about the project they read in a newspaper and they have to say "It is obviously unclassified now but because I wasn't explicitly told that is was no longer classified I am not allowed to talk about it" - then they change the subject.
kridsdale3
5 hours ago
This applies equally to every employee at Apple.
ModernMech
3 hours ago
Yeah, I was once at an Apple interview and they couldn't tell me what I'd be working on if they hired me (I assume it was a mobile robot, as my background is in robotics motion planning). I politely left the interview after the third one tried to keep me in the dark and insist whatever it was it was world changing and bigger than iPhone. To me, job interviews are a two-way street, but they wanted to assess me while not allowing me to assess them, so I felt like they had wasted my time.
rvz
5 hours ago
> One problem with this is that it presupposes that the interviewer is skilled enough to spot problems, ask the right probing questions, etc. Casey is definitely skilled enough. I can’t say that’s universal.
That is the entire point of the technical interview.
Someone who is already experienced in a particular subject is also at least qualified to ask the right questions to the candidate related to the subject.
epolanski
4 hours ago
The another problem is the same #1 problem.
faangguyindia
5 hours ago
why even interviews are necessary?
It all can be solved by a system where 1 company hires programmers then other companies can rent specific programer by hour and leave reviews.
This way a programmer doesn't need to interview, he's always employed and getting paid.
If they find no company to bid on your time, they can fire you after sometime.
nwalters512
4 hours ago
A lot of (most?) useful work requires the kind of domain-specific knowledge that can only be built up over a lot of time spent working on a given team/product/codebase. "Renting" programmers here and there on an hourly basis might work fine for basic tasks, but would probably end in frustration for both the employer, who has to deal with a constant stream of random new people, and programmers, who are constantly bouncing from project to project.
bluGill
4 hours ago
That depends. There are a lot of things a "by the hour" programmer can do when guided by domain experts. However a domain expert can only guide a couple such people and you lose their ability to get anything else done.
IAmBroom
38 minutes ago
We have that already. It's called "temp hires". Mostly it just screws the employees, while the middle man gets richer.
I can't think of a reason why a highly skilled individual would sign up for that.
walkabout
4 hours ago
The largest tech companies could also implement a shared cert program via some kind of industry group, with periodic re-certification requirements. This’d surely be far cheaper than all of them running multi-stage leetcode and system design interviews, and they already basically publish study guides so this isn’t even that different, just cheaper for both the businesses and candidates.
It’d also make job hopping far less painful (see above: cheaper for the candidates) which is why they don’t.
So we may conclude: the point of leetcode interviews is wage suppression.
ModernMech
3 hours ago
Never gonna happen, as they outsource this certification to universities already. They're not going to stand up their own cert programs to streamline the process; the muli-stage leetcode interviews are about hazing culture and making sure employees are servile, not merit culture and making sure employees are competent and qualified.
Like you said, tech companies need candidates to feel like they barely passed a grueling interview because it makes them wary to jump ship and have to go through that again, not that they are well qualified industry professionals who have the credentials to move between jobs and work anywhere they are certified.
kube-system
5 hours ago
You have reinvented software consulting. There are many criticism to that model as well.
creer
2 hours ago
Either somebody somewhere screens for competence, education, skill, talent, even bare willingness to do the work - or the project will suffer. Adding a level of indirection doesn't wolve that.
ttoinou
5 hours ago
If they find no company to bid on your time, they can fire you after sometime.
In most of the world you can’t fire people like thathansvm
4 hours ago
> rent programmers by the hour
That's much less efficient for big software projects. The knowledge built up over time is one of the core things making you effective, so you have a big productivity loss if you don't retain the same people for a long time. With a continual middleman, the overhead from that "hiring" process is usually proportional to work done, so after a period of time it will have been more efficient for the employer to hire directly (even at a cost of tens of thousands of dollars) rather than to go through the middleman.
> leaves reviews
We've seen how well that works in every other part of the market.... Interviews are necessary because of a lack of trust. In your system, every party has an incentive to lie, and the incentives are strong enough that it's worth paying people to facilitate your lies. You see that with various contractors all the time, having somebody with good reviews take the contract and somebody with fewer skills actually do the work, the employer understating the work to be done, etc. Good people exist, but they're hard to find in a low-trust environment.
> always employed and getting paid
Interestingly, that usually benefits everyone except the programmer. As a rule of thumb, the person taking risks will have higher returns, so if you can afford those risks you should choose to take them yourself. Examples include various forms of device "warranties" (if you're paying, it's insurance, not a warranty, and I can afford the financial hit when a thumb drive fails, so I'm not going to pay a premium to insure against that possibility), some forms of actual insurance (full coverage on used cars is an example -- if my car is ever totaled I'll just buy another -- I have liability insurance out the wazoo, but full coverage isn't worth it), etc. Programmers often make gobs of money, so except for potentially the very beginning of your career you should be able to easily weather a few years without work. The exact contract details vary, but that would suggest then that programmers are better off on average cutting out the middleman providing those risk guarantees (and they're not really guarantees in the first place, right? people are currently without jobs because there are fewer programming jobs than there used to be, and no middleman scheme is going to fix that; you have to wait for this economic blip to blow over).
I could go on. Contracting is fine, but it's not a replacement for all salaried work.