← Writing

Method · June 2026

How to become a cracked software engineer

Stop looking at LeetCode solutions. The thirty minutes you spend failing a problem teach you more than the answer ever will — and the whole job hunt runs on the same bug.

The most useful thing I know about becoming a good software engineer costs nothing, takes effect today, and will feel worse than whatever you're doing now. Here it is: stop looking at LeetCode solutions. Not "look at fewer." Stop.

Credentials first, because the internet is drowning in career advice from people who've never held the job. CS degree from Carnegie Mellon. Intern at Niantic. First job at a startup called Agot AI at $100k, bumped to $150k as platform lead while the company grew from 2 people to 50. Second job at EliseAI, about $265k all-in at 24, sole owner of the conversation engine that talked to apartment renters.

Now the correction, because those lines are posing. I was behind and struggling for most of my time at CMU. I got that first job through what looks like dumb luck (there's a couch involved, we'll get there). And I never "cracked" interviews with binders and mock loops — I mostly didn't prepare for them at all. That's not a flex. It's the method.

Stop looking at the solutions

The standard grind: open a problem, try for five minutes, get stuck, peek at the solution, understand it, nod, feel productive, next problem. Repeat three hundred times and you have the standard résumé of someone who can't pass interviews and doesn't know why.

When you try for five minutes and then read the answer, you learn absolutely NOTHING. You recognize the answer. Recognizing and producing are different brain operations, and only one of them is available to you in an interview room.

Now run the other version. You try for thirty minutes. You genuinely have no idea how. You attempt something dumb, it breaks, you sit in the discomfort of being stuck, and you walk away without solving it or looking at the solution. That version, the "failure," leaves you with more.

"The discomfort, the struggle and actually thinking about how to solve is where the learning happens, not the solution to any specific problem."— the entire essay in one sentence

This is how everything at Carnegie Mellon actually worked. The lectures were basically mildly interesting YouTube videos; the real teaching was homework where we'd spend days stuck on one problem, sometimes never cracking it. The days of being stuck were the course.

And here's the part that should break your current strategy for good: even if that exact problem shows up in your interview, you'll do better having genuinely tried and failed it than having memorized its solution. The person who struggled can reconstruct. The person who memorized can only recite, and the first follow-up question knocks them over.

You're optimizing conversion. Optimize value.

Zoom out from one problem to the whole job hunt. Same bug.

Say your true value as an engineer is $80k. If you ran perfect interview prep, applied everywhere, and every company measured you flawlessly, you'd convert that value at 100% and get paid... $80k. That's the ceiling on the entire grind. Every hour of LeetCode and application-spraying is spent on conversion of a fixed number.

Spend those hours on the number itself instead — real problem-solving, real projects, the weeds — and your value climbs to $300k. Now even lazy conversion, a handful of applications and zero prep, lands you something like $160k. Bad conversion of a big number beats perfect conversion of a small one, and it isn't close.

Past a point there's a phase change: you stop trying to figure out how to pass the interview, and the company has to figure out how to design an interview that finds YOU. If their process can't, that's their bug.

I know how that sounds without receipts, so, receipts. What raising value instead of conversion actually got me:

  • The first app I shipped publicly was a tiny Excalidraw extension that took 5 minutes to build (and two hours to package, which is programming in a nutshell). It got 100k views on Twitter and Theo himself called out how valuable I was. Multiple times.
  • At CMU, struggling and behind, I bought a couch off a guy. Ten minutes of chatting while we carried it and he mentioned he was the CEO of a company. He hired me when I graduated — the $100k-then-$150k job, and the lifeline I needed to keep my visa alive.
  • I never applied to EliseAI. The CTO found me and DMed me on LinkedIn. That became the $265k job, offer in hand the day after the on-site.
  • What it did not buy: a shortcut past the struggle itself. The five-minute extension took five minutes because of the thousands of stuck, uncomfortable hours underneath it.

The interview I aced by quitting the prep

The EliseAI loop had a system design round. I had never done one. I watched ten minutes of a video about how Netflix's infrastructure works, decided I'd rather do literally anything else, and went and played Rocket League instead.

The interview turned out to be completely open-ended: "you're designing a web service for booking apartment tours." So we just... designed it. Frontend, key features, backend, tradeoffs at every layer. I could brainstorm all of it for real, because thinking through systems was a thing I'd built, not memorized. I nailed it, got flown to New York, and they bought me a $200 lunch and a nice hotel.

The next round was better. The problem, underneath, was "implement a linked list" — and I had genuinely forgotten linked lists existed. So I thought it through, invented a data structure from scratch, and forty minutes in realized I had just rediscovered the linked list. The interviewer visibly couldn't decide whether to be impressed or the opposite. Didn't matter: thinking my way back to it was the exact thing the interview existed to measure. That's value overpowering conversion in one story. I did negative prep and it still worked, because the prep was never the load-bearing part.

LeetCode is dying anyway

Companies aren't going to keep using LeetCode. An entire company, Cluely, got famous essentially as a revolt against it. It was only ever a sanity check that a candidate can code at all, and it broke the moment people started grinding it — like studying for an IQ test, all you accomplish is making the measurement useless. With AI, more useless than ever.

What replaces it is closer to conversation: an experienced engineer vibing out whether you actually built the things on your résumé. Sounds handwavy; it's more robust than you think. Everyone is about to have impressive-sounding GPT-assisted projects, so the interviewer's job becomes telling apart who asked ChatGPT and memorized the summary, versus who got into the weeds. Open with a niche problem you personally hit, what you tried, and what failed before the fix, and you sound like nobody else in the pipeline. You can't fake the weeds.

Pre-emptive caveat, because I was there: if you're in the spot I was in — where any six-figure offer is a yes no matter how the company interviews — buy insurance. Grokking the Coding Interview. Nothing special, just LeetCode sorted into a real difficulty curve, sixteen categories each running easy to hard, so you can actually solve every problem yourself without peeking. It's how games teach: imagine learning Hollow Knight by fighting a random mid-game boss on loop. Random-order LeetCode is the boss-first version. The no-solutions rule still applies inside it.

ChatGPT is the same trap in a nicer font

"You might think you're learning but you're actually just gaining information."— the ChatGPT trap

Ask ChatGPT for the app idea, the design, how to build each component, and read along nodding — that's learning soccer by reading about soccer and watching soccer. If you never fumble around on the field, out of position, shanking the ball, you WILL NOT develop the skill. Information is not skill.

The fix isn't quitting the tool. Prompt it to act like a TA: high-level guidance, fill my knowledge gaps, never write the code. Then do the work yourself and let yourself cook. Feeling stupid and stuck isn't the sign it's going wrong; it's the sign the learning is finally happening. (I'm still tuning this balance myself.)

The caveat I owe you, then the point

This advice isn't Kantian: if every aspiring engineer executed it, everyone's skill would rise and your relative position wouldn't move an inch. But they won't. Most people reading this will close the tab and go peek at another solution, which means you, actually doing it, get an absurd edge. Even the bad market matters less than you think — hiring is down within the same order of magnitude, not 100x. The market punishes the middle of the pool, and your whole job is to not be in it.

If you're grinding LeetCode right now and losing hope: the hopelessness is real, but it's a symptom of the strategy, not of you. You've been speedrunning recognition and calling it practice. So today, one problem, thirty minutes, no solutions tab. Fail it properly. That fail is worth more than the last fifty problems you "solved," and it's the first rep of the only grind that compounds.

Keep going What the value actually converted to · Why the best schools taught me to forget

← all writing