Leetcode, take-homes, and culture fits: what I’d keep in IT hiring and what I’d kill
Tobias Werner
August 28, 2026
I have used all three: a leetcode screen that made us feel like a real company, a take-home that ate someone’s Saturday, and a “culture fit” vote that meant the loudest interviewer liked the candidate’s jokes. I have also hired people who passed none of those in the classic form and then owned the on-call like adults. If you want the whole loop I would stand up from scratch, that is a different piece. This one is the three rituals I am still asked to defend, and the line I actually use: keep, kill, or replace.
The process I would start with is how I’d hire engineers in 2026 from a blank calendar. What follows is the interview-format argument inside that loop.
Leetcode: what I would kill
I would kill the anonymous hard problem as a first gate for a product engineering job. Inverting a binary tree on a whiteboard does not tell me if you can read a production log. It tells me if you have been practicing leetcode. In 2018 that practice was a signal that you would grind. In 2026 it is also a signal that you have time, or a course, or a model that can talk you through the pattern. The signal rotted. The gate stayed because it was easy to schedule and easy to score.
I would kill “do this while we watch you sweat” for roles that are not algorithm-shaped. Compiler teams and some infra jobs still have a right to a hard problem. A billing API team does not. I have watched us fail a candidate who had shipped the exact system we needed because they went blank on a heap. We hired someone who did the heap and then needed a map to the repo. That was us selecting for the exam.
I would kill the take-home leetcode disguised as a “fun puzzle.” If it is a puzzle, say so and pay for the hour. If it is a screen, use a problem that looks like the job: parse a messy payload, find the bug in a 40-line function, write a test that would have caught it.
Leetcode: what I would keep
I would keep a short, job-shaped coding check when I cannot pair. Twenty to forty minutes. A function with a real edge case. They can use the language they will use at work. They can use a model if they narrate what they accept. I am watching whether they test the sad path and whether they notice the off-by-one. I am not watching whether they remember the name of a pattern from a sheet.
I would keep complexity talk when the job has a hot path. “What happens if this list is a million rows” is a fair question on a data job. It is not a fair first question on a team that has never had a million rows and will not this year.

Take-homes: what I would kill
I would kill the weekend project. Build a small app, add auth, add tests, add a README that sounds like a product hunt. That is unpaid labor and it selects for people without kids, without a second job, without interview processes stacked in the same week. I have sent those. I have also been the person who started one on Friday and resent the company on Monday. I will not do that to someone I want to work with.
I would kill the take-home we never read in detail. If three engineers will skim the repo for ten minutes and vote on “structure,” we should have paired. A take-home only earns its time if someone will walk through it with the candidate. Otherwise it is a homework stamp.
I would kill take-homes in a world where I pretend AI is not in the room. If I send work home, I assume a model helped. The live walkthrough is the interview. The zip file is the prompt. Candidates who cannot defend the zip are a no. Candidates who can improve it on the call are the old “used Google well” hire in a new coat.
Take-homes: what I would keep
I would keep a paid, time-boxed sample when pairing is impossible this week and the job is mostly independent. Ninety minutes, a sanitized ticket from our backlog, a stipend. I would keep the follow-up call on the calendar before I send the prompt. No call, no take-home.
I would keep take-homes that look like the work: fix this failing test, add this field without breaking the contract, explain the one trade-off you made. I would not keep “build us a third clone of our product so we can see your architecture.” We already have an architecture. I want to see if they can enter it.
I would keep a paid trial week for staff-plus when the sample cannot show the job — messy stakeholders, a legacy service, a political design. Paid. Time-boxed. With a real owner. Unpaid “try us out” is a kill.
Culture fit: what I would kill
I would kill the phrase. It has been a polite way to say “like us” for as long as I have been in rooms that used it. Like us is how teams stay the same and then wonder why they keep making the same outage. I have watched “not a fit” attach to the person who asked the uncomfortable question about on-call, and “great fit” attach to the person who laughed at the same jokes and then vanished when the ticket was boring.
I would kill beer questions, sports questions, and “where do you see yourself” as a veto. I would kill the debrief that starts with a feeling before anyone has written a score. Feelings are allowed. They do not get to speak first. They do not get to be the only dimension.
I would kill culture fit as a dump for every social discomfort. If someone was rude to the recruiter, that is a working-agreement fail with evidence. If someone was quiet, that is not rudeness. If someone did not mirror the team’s slang, that is not a risk to production.

Culture fit: what I would keep
I would keep working agreements, named in advance. Do they treat support work as beneath them. Do they need to win the design. Do they give a junior time. Do they write down the decision. Do they show up when the page is theirs. Those are fits to the job, not to the softball league.
I would keep a conversation with someone they will actually sit next to in the channel. Not a panel of six. One or two future teammates, with a prompt: “Can you describe a time you were wrong in public.” I am not scoring charisma. I am scoring whether they can be wrong without burning the room.
I would keep values we will fire people for, written down. If we say we do not hide incidents, and they brag about hiding one, that is a no. If we have not written the value, we do not get to fail them for violating a vibe.
How I would combine the three without stacking punishment
One job-shaped coding check or one pairing session. Not leetcode plus take-home plus pairing. Pick the one that matches how the work is done. If we pair every day, pair in the interview. If people mostly work alone on well-specified tickets, a short paid sample is closer to the truth.
Then a working-agreement conversation. Then a manager conversation that includes the ugly parts. Then a written scorecard. That is enough. A fourth format is usually a director who wants to meet them, which is a calendar problem, not a signal problem.
I would tell candidates in the posting which format we use and how long it takes. Surprise homework is how you lose the people who have other offers. Surprise leetcode is how you lose the people who believed your “practical interviews” line.
The excuses I will not accept from myself
“We need a high bar.” A high bar that measures the wrong thing is a high fence around an empty field. “It scales.” A bad screen scales bad decisions. “This is how FAANG does it.” I am not staffing FAANG, and even they have been quietly changing what the homework looks like. “Culture fit is how we avoid jerks.” Then say jerks, define the behavior, and score it. Do not hide it inside likability.
I still want a bar. I want it attached to the ninety days of work. I want it cheap enough in candidate time that a parent can finish it. I want it expensive enough in our time that we cannot sleepwalk. Leetcode as a default is cheap for us and expensive for them. That is why it survived. That is why I would kill it for most of the jobs I hire for, keep a small job-shaped check, pay or pair for anything longer, and replace culture fit with a list I am willing to read out loud in a debrief.
If a founder tells me they do not have time to pair, I believe them, and I still will not send a weekend app. Time poverty on our side is not a reason to export unpaid hours. It is a reason to write a ninety-minute prompt, put a stipend on the invoice, and book the walkthrough before we email the zip. If we cannot do that, we are not hiring this month. We are collecting. Collecting is how the three rituals come back: they feel like motion when the seat is empty.