I Got Burned
I got burned yesterday.
It’s been a discouraging couple of months trying to find a new job. Generative AI has turned what used to be a straightforward process into something adversarial. Prepare a resume. Send the resume. Interview. Get a job. That cycle used to work. It doesn’t anymore.
I’ve gone to extremes I never thought I’d visit. I hired a resume writer. I partnered with a talent network that does warm introductions to startup founders. I’ve gone through the same cycle over and over: initial interview with a recruiter, get passed to a hiring manager, and within five or ten minutes realize the recruiter didn’t match my skill set to what the hiring manager actually needs. I find myself stretching the truth about my role on projects. I find myself compromising my character. I’ve turned to using generative AI to fine-tune my resume to particular job postings, rationalizing that these companies are already using AI to screen me out. Why shouldn’t I use it to beat them at their own game?
The tenets of game theory have always applied to the job search. However, I don’t think there’s been a point in recent history where finding a new job has been more adversarial between employers and candidates.
I was refreshed when I interviewed with a seed-funded startup and the first conversation was with the founder. She gave me a take-home assignment, which was a welcome change from the typical software engineering interview cycle.
Her words about “prioritizing speed and people who build” were ringing in my ears as I opened the PDF containing five or six sentences outlining the problem statement. I’m a builder by nature. I immediately opened VS Code, spun up Claude, typed in my initial thoughts, and over the course of the first evening put together a design document outlining a solution.
I worked through the night using beads, which is essentially GitLab for agents, to turn the design document into roughly 150 issues that would need to be closed to bring this idea to life. I was particularly proud of the development process I came up with: create new issues in beads, then set a loop within Claude Code that pops the next ready issue off the stack, creates a team of software engineers to go work on it, pre-commit hook to run quality gate, commit, close issue. I stayed up until 3:00 AM three nights in a row alternating between product designer, chief architect, and AI engineer.
First day, Claude created a solution that was way too bloated with way too many features. I shudder at the number of tokens I must have burned through. I made the hard decision to scrap most of the code, take the lessons learned, and start from scratch.
This is where AI is insanely useful. The speed to go from zero to one is compressed. The trick is to take the learnings from the first prototype and fold them into your next iteration.
I stripped down the code bloat. Got rid of unnecessary features like a harness supporting multiple model providers. Got rid of complexity with multiple asynchronous API requests that were absolutely crushing my rate limit and moved to the Anthropic batch API. By the end of the second day, bleeding into the third, I had a working prototype. Fake JSON data modeled off an API spec. Postgres with model for data storage. A large language model generating summaries pushed into Neo4j. A FAISS vector store for semantic similarity. All flowing into a React TypeScript front end. I’d thought through details like jittering timestamps in the fake data to show temporal nature of the solution. I had a crisp demo ready to go.
I remember sending the email to the founder at 1:00 AM, scheduling the review for later in the day.
The first clue that this particular company was not going to be in the stars for me was that I got no-call, no-showed twice for the initial review. I played it cool. Finally, the software engineering manager dialed in to our third scheduled call. As a seed startup, “things get crazy”, he said expressing his apology for having to miss our first two meetings.
The initial review went well. I could tell in the first ten minutes that he’d done a high-level review of what I built but hadn’t truly gotten into the weeds, just based on the questions he was asking. The questions were architectural in nature, about trade-offs. Felt like a systems design review.
I thought for sure I had done well and was progressing to the next round. My belief was confirmed when the founder emailed me later that day about the positive report from the manager. She asked if I had availability for a 30-minute call. The manager sent out a list of technical follow-ups. The founder asked me for three references.
I thought I had the job in the bag. I let my guard down. I did not adequately prepare for the next round because, in my mind, my work had spoken for itself and the job was mine to lose. I figured this round would be more behavioral, to see if there was a good culture fit.
The clue I chose to ignore was that the founder set the meeting up and hid the invite list.
When I dialed into the 30-minute call, I was met by three founding engineers sitting in a conference room on video and a fourth engineer remote. I exchanged pleasantries. The founder informed me that the fourth remote engineer would be driving the interview.
This guy had scrutinized every single line of code.
He immediately pinpointed a configuration setting that didn’t make sense and asked me why I’d configured it that way. It felt like a trap. A gotcha. I could do nothing but respond that I was unaware it had been configured that way. He immediately moved on. Pinpointed a function outside my 90% test coverage. He’d found a function that fell through the cracks and asked me to walk through it live.
It was an asynchronous function called within a synchronous function. He probed at what would happen if I were to run it.
I froze.
I stuttered out an answer about how I try to avoid mixing both worlds. I beat myself up afterward when the answer was as simple as calling an asynchronous function from a sync function involves creating a new event loop, or in my case, since I was running FastAPI, adding the await keyword to let the coroutine run to completion before continuing.
I felt exposed. I did the thing I had cautioned my own mentee from doing six months earlier. I relied too much on generative AI to create a technical solution without truly understanding all the trade-offs, nuances, and details behind the code.
I hung up the phone very defeated.
I felt like I had done three days of free labor for this company and got nothing in return. This belief is something I seriously need to challenge if I’m going to get a new job in this industry. It’s the same belief that prevents me from preparing adequately for the more traditional software engineering interview cycle.
I’m 31, about to be 32 years old. I have a master’s degree and 10 years of experience. I want to keep my relationship with my girlfriend. I don’t want to solve LeetCode problems on the weekend for three months to feel ready to submit an application. To me, it’s not measuring my ability to ship and build working software. It makes me feel like a monkey dancing on a stage for a peanut. It feels like a filter to see if I am willing to do unpaid labor.
I understand this belief does not serve me in trying to find a new job. I understand it’s a belief I must challenge if I’m going to get out of working for my current employer. Understanding it and accepting it are two different things.
I called my mom after the interview. She wisely said that it seems like I’m juggling too many stressful things at the moment and that I need to go have some fun. Part of me knows she is right. I get obsessive about things. It’s a character trait of mine. Finding a new job has been the latest obsession. I don’t think it’s helpful to push the pedal to the metal the way I have been for the last couple of months. I feel the fatigue. I’m not even excited to get on the phone and do these interviews anymore, and I believe it’s beginning to show in my lack of preparedness.
I think I’m going to take some time to focus on self-study in a lower-pressure environment. I learned that the MIT study about less neural activation in students who chose to use generative AI to write their essays is a phenomenon I am not immune to either.
I used generative AI to try to short-circuit doing the work to prepare and feel ready for the technical interview.
And I got burned.