Skip to content

Commit 5a45dfc

Browse files
Draft post about Leetcode
1 parent 8282e5e commit 5a45dfc

File tree

1 file changed

+141
-0
lines changed

1 file changed

+141
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
---
2+
layout: ../../components/layouts/post.astro
3+
title: 'Still Measuring Devs With Leetcode?'
4+
categories: [tech]
5+
tags: [engineering, programming]
6+
description: TODO
7+
---
8+
9+
I'm disappointed to find tech interviews are still asking Leetcode questions.
10+
Companies haven't listened to old advice on competitive hiring like DHH's
11+
[Hiring programmers with a take-home test] or Matasano Security's [the Hiring
12+
Post][The Hiring Post].
13+
14+
> Years from now, we'll look back at the 2015 developer interview as an
15+
> anachronism, akin to hiring an orchestra cellist with a personality test and a
16+
> quiz about music theory rather than a blind audition.
17+
18+
Even new companies today with the chance of a fresh, competitive approach are
19+
still asking Leetcode questions, probably because the FAANG-equivalent companies
20+
of decades ago were asking Leetcode questions, and a few FAANGs still are. A
21+
100-employee startup primed me with an outline of their upcoming interview steps
22+
with a link to a sample [leetcode.com][Leetcode] question to expect, boasting,
23+
"Our interview process is similar to Meta's process."
24+
25+
> The most dangerous phrase a \[manager\] can use is "We've always done it that
26+
> way."
27+
>
28+
> —Grace Hopper
29+
30+
For the last 10 years of my tech career, I didn't have to interview for jobs:
31+
behold, the power of referral! Not interviewing meant no Leetcode questions. The
32+
last time I had to answer a Leetcode question, the name Leetcode didn't exist,
33+
although the style of questions was decades old.
34+
35+
I used to be pretty good at Leetcode questions. In my college computer science
36+
degree, senior year, I went through 20 interview rounds with 12 different
37+
companies. Only the final company accepted me. I didn't get better at
38+
programming during that time, although that would have been a good use of my
39+
time. Rather, in that time, I just got better at interviewing, and a lot of it
40+
was practicing Leetcode-style questions, via [the first edition of Programming
41+
Interviews Exposed][Programming Interviews Exposed]. Having little professional
42+
experience, I accepted there was no other practice for companies to trust me.
43+
44+
Within a few years in the industry, it was my turn to be the interviewer, which
45+
is when I got the perspective, the empathy for candidates. I wanted to shake
46+
free of the cult of Leetcode hazing. It was an inaccurate and unfair way to
47+
measure. I sought the advice of the posts at the beginning of this article. What
48+
if we measured actual developer skill: can the candidate do the job well, rather
49+
than can the candidate do Leetcode well? What if a candidate was a great fit for
50+
the job, but the specialized simulacrum and pressure cooker of live-coding
51+
Leetcode interviews excluded such a candidate?
52+
53+
Don't get me wrong, improving the situation was easier said than done. Hiring
54+
developers is hard. My teams and I iterated for years on structuring our
55+
interviews—a structured interview is fairer but sadly not the friendliest
56+
candidate experience, to blankly read from a script—and developing relevant,
57+
realistic, self-contained assessment projects for candidates. For take-home
58+
tests, we didn't pay candidates for their time, which was tantamount to free
59+
labor and exclusionary in its own regard. We also lost a great candidate who was
60+
a prolific OSS contributor to our company's tech stack, because they
61+
diplomatically pointed to their public contributions as evidence of their skill
62+
and collaboration style, declined the take-home test as something they couldn't
63+
afford (what were all their free labor OSS contributions for, after all), and
64+
our team didn't have the capacity to develop and maintain a "fair" backup
65+
measurement for the special case candidate. While our take-home test was a
66+
promising hiring solution, we still could've done better.
67+
68+
I took a career break from tech the last couple years. When I started the tech
69+
job hunt 12 months ago, wanting to try my old full stack web developer job in a
70+
new domain, I no longer had the power of a referral. I program every day. I know
71+
I can do the job. If an interviewer talks to me, I can demonstrate I know how to
72+
program, I'm emotionally intelligent, and that their team would want to work
73+
with someone friendly like me, right?
74+
75+
Much to my chagrin, almost every company I've interviewed with this year still
76+
uses Leetcode-style interviews. If a company even gives the heads up of what to
77+
expect in an interview, don't necessary believe, "Our live code assessment uses
78+
real-world problems." In 9/10 of my interviews this year, the interview was
79+
still Leetcode in a trenchcoat.
80+
81+
I was rusty at these live coding interviews, because in my 14 year career,
82+
Leetcode and what it teaches _never came up_ on the job. Software development is
83+
not typically done in a eye-movement surveilled, time-constrained screen-share
84+
with 1-2 others silently breathing down your neck, letting you squirm, maybe a
85+
modicum of hints that make sense to the interviewers because they've seen the
86+
exact problem before. And there's no time left for me to ask questions. The
87+
interview for mutual fit turns out not to be a 2-way street. It's dehumanizing
88+
for the experienced dev.
89+
90+
When I'm rejected for a job, in my spirit of continual improvement, I ask for
91+
feedback why, and companies are always cagey. To cover their ass. So I'm not
92+
100% certain all the reasons I was rejected over the last 12 months. I might
93+
have a worse personality than I think. Or maybe a member of the hiring panel was
94+
underslept and cranky. Out of my control. All I know is, the interview process
95+
ending always _correlated_ after I failed to finish a Leetcode step of the
96+
interview, i.e. not finishing the coding puzzle prompt within 45 minutes.
97+
98+
Roy Lee, who developed [a tool to cheat on these sort of
99+
interviews][Hard Fork: AI Action Plans], summarized what I was _supposed_ to do.
100+
101+
> You're given 45 minutes and the task here is to _have_ seen the problem
102+
> before, solve the problem, and be able to regurgitate the memorized solution,
103+
> without acting like you have seen the problem before.
104+
105+
In 2025's competitive tech hiring market, where laid-off tech workers outnumber
106+
available positions, some candidates spend months grinding leetcode.com to reach
107+
the top 1%, while others use cheating software like Roy Lee's. Meanwhile,
108+
experienced developers who could do the actual job well but haven't memorized
109+
these puzzles struggle to complete them under pressure. The unqualified
110+
candidate aces the test. The qualified candidate fails to finish in time. As the
111+
interviewer, which candidate would you advance?
112+
113+
Next time I'm on the job hunt, I hope to cross-reference my applications with
114+
the [Hiring Without Whiteboards][Hiring Without Whiteboards] list. Although in
115+
my 12 months of the recent job hunt, I made hundreds of applications and
116+
received human responses from less than 10%. Given the odds, I felt I couldn't
117+
afford to be choosy to use this list.
118+
119+
[Hiring programmers with a take-home test]:
120+
https://signalvnoise.com/svn3/hiring-programmers-with-a-take-home-test/
121+
[The Hiring Post]: https://sockpuppet.org/blog/2015/03/06/the-hiring-post/
122+
[LeetCode]: https://leetcode.com
123+
[Programming Interviews Exposed]:
124+
https://archive.org/details/programminginter0000mong
125+
[Hard Fork: AI Action Plans]:
126+
https://www.nytimes.com/2025/03/21/podcasts/hardfork-ai-action-plans.html
127+
[Hiring Without Whiteboards]:
128+
https://github.com/poteto/hiring-without-whiteboards
129+
130+
## Unused
131+
132+
While they assume just because a company is famous their interview process is
133+
solid and adaptable to a SMB, I do appreciate they were honest about the
134+
inclusion of Leetcode.
135+
136+
Cheating aside, AI-assisted coding tools are really great at Leetcode problems.
137+
It's another hint, if it's easily solvable by computers, maybe it's not a great
138+
test of an engineer?
139+
140+
- AI Cheating in interviews (LinkedIn email)
141+
- https://newsletter.pragmaticengineer.com/p/the-reality-of-tech-interviews

0 commit comments

Comments
 (0)