So a few weeks back, I was helping to administer a live coding interview with two of my peers at work. This happens more frequently than I’d like. I hate interviewing and I hate being interviewed. What makes this incident notable is that one of my peers decided to spend half of our alloted 90 minutes doing Q&A with the candidate rather than spend most of the time going through the live coding exercise.
Why was this notable? Well for starters I generally don’t ask candidates many questions as I typically am involved only in the live coding portions of the interview process. This exercise typically consists of me and my peers introducing ourselves for a few minutes, allowing the candidate to introduce themselves and then the bulk of the time is spent watching them dissect and code a solution to the exercise in real time with a few minutes reserved at the end for the candidate to ask us any questions.
In general the harsh reality of my experiences with this can be summed up rather simply: Most candidates absolutely cannot handle a live coding interview. Most of these sessions basically amount to us watching them fail at coding simple C# solutions to a relatively simple problem with multiple tasks. We don’t vary the problem. It’s the same every time. It’s not particularly challenging. I know this because I made this same exercise my bitch when I did the exact same live coding exercise over two years ago. To be clear, the recording of my own performance is still available on the tool we used and a few months ago I went back to find it just to validate that I wasn’t mis-remembering my own performance. I wasn’t. I completed 90% of the tasks whereas most prospects can’t even complete the first one.
Also let me assure you: This isn’t one of these silly leetcode problems that come with traps. Nope. It’s a simple line of business / financial problem that is very much targeted towards the kind of work you will do when you work where I work. It is actually quite sensible and serves as a reliable barometer of whether or not one can code in these kinds of situations. Yet here I am, a person who is barely qualified by modern standards to fill the Senior role he currently has, interviewing prospective Staff candidates (the level above me) who can’t code for shit.
Like all live coding exercises, it comes with caveats. Not everybody is wired in a way that they can just sit down, read some specs (presented as C# comments in the main class) and get cracking. I can, but to be fair, I spent a large amount of my career working as a contractor so I’m used to having to hit the ground running. I’m used to live coding bug fixes while within a meeting. I’m used to doing all kinds of things with an audience that a lot of other engineers who have only worked in more traditional situations aren’t accustomed to doing.
However, with all of that having been said, most candidates can’t handle this. What makes this particular interview notable isn’t the live coding results. This candidate almost completed the first task, so in that respect he actually did far better than most. No what makes it notable is how he answered the questions that my co-worker asked him. Most of the answers started with the exact same single sentence:
I would ask Co-Pilot about it
That phrase engenders such a deep seething rage that I cannot properly put it into words. However I’m going to waste your time and mine by trying to do exactly that within the context of this blog post.
To make this stunningly clear: This candidate had over two decades of experience. He was clearly older, much like myself. He has been around the block. He has clearly seen some shit. He clearly wasn’t an idiot. And yet… his response to virtually every question was to feign deference to the AI overlord that now looms over our entire industry, much like Sauron did over Middle Earth in “The Lord of the Rings”.
The worst part is that I voted to move this candidate forward. This is primarily because live coding performances are so terribad in general, that coming close to even completing the first pithy task of the exercise basically puts this guy into the elite 1% of people who don’t immediately fail this interview. Also I’m really tired of interviewing candidates. It’s a huge time sink. The position isn’t even on my team. It’s on a sister team. The last guy they hired got fired a few weeks in. Now they basically punt on everybody because… yeah.
To be fair its a tough gig being a Staff on that team. A real tough gig. So tough that nobody wants it. So tough that the last guy who had it for awhile actively lobbied for his own demotion just so he wouldn’t have to do the job anymore. Fun fact: He helps us interview for the position now. So they can’t hire from within. That’s why we keep having to line up poor schmucks from the outside who don’t have enough information to know that taking this job is a bad move.
The real issue here isn’t the live coding interview. It isn’t the position. It isn’t the team. It isn’t the fact that the position may as well come with a portable guillotine along with the laptop. It isn’t that the company is so fucked up that they haven’t figured out that hiring for this position externally is an absolute loser (to which I want to provide more detail around, but for the sake of preserving a shred of anonymity, I won’t).
It’s the fact that nearly every single question was initially answered with the phrase:
I would ask Co-Pilot about it
If that’s the play… why the fuck do we need you? Are you a next level madman prompt engineer? Are you a soothsayer capable of inspiring the AI to perform at levels unexperienced by those of us who maintain enough of our wits to know that its mostly full of shit?
This man has over two decades of experience and due to the current climate he has reached a point where his initial answer is to disregard the entirety of his own experience and immediately pivot to asking the entity who can barely write a functional unit test. Note: If you think it can, you either probably haven’t spent much time critically evaluating that test or the testing scenario was so rudimentary that it likely didn’t require a test to begin with.
Now of course, I don’t know this fellow. Maybe he’s a true AI believer and we were being turned into collateral damage due to his AI psychosis. Or maybe he knows that this is the thing most people in tech want to hear now. Tech companies are utterly obsessed with AI. In any event, it played well enough for him here. The co-worker who insisted on asking all of these questions was very impressed with this tactic, even going so far as to say in our post meeting that “engineers who don’t use AI are on their way out”.
Believe it or not, I did not take that bait. I did not offer a response to that comment.
Why? Because he’s fucking right. I am a luddite. My future in this industry is non-existent. Years from now after burnout has overtaken me and I’ve moved onto something entirely different, I can easily envision a scenario in which companies will want to scoop up people like me. By like me, I mean those of us who willingly chose to be left behind, because regardless of how popular or cool it could make them, we collectively refused to leap off the proverbial incomplete bridge that is AI.
But in time, after this bubble has popped and it becomes stunningly clear that this tech has a ceiling and that we’ve already hit it, they’ll want people like me. People who refused to bend the knee. People who realized that at its core, tech is only an asset when it empowers people and a problem when it displaces them.
Tech is valuable when it empowers people to rise above their circumstances. Not by replacing them, not by displacing them, not by rendering them obsolete, but by giving them the tools they need to turn something good into something great. Tech is valuable when it solves real and actual problems rather than simply inventing new problems so that they can sell you a solution.
So what happens years from now after I’m gone and the entire industry is full of professionals who can’t do a single thing without Claude, Codex and Github Co-Pilot? Well as far as I can tell, they’ll probably have to start over in some respect. The seniors of tomorrow won’t be like the seniors of today. We learned how to do this by building abstract solutions to abstract problems and using our fingers and a keyboard to make it all real by writing actual code. We took chaotic inputs and produced reliable and discrete outputs.
The engineers of today though… they are increasingly reaching the point where they are relying upon the AI tools to do this kind of work for them. Even the experienced ones are beginning to slowly lose the skills they have honed over the course of the past few decades. It’s like the old saying, “If you don’t use it, you lose it”
Well as it turns out a lot of us are losing it. The rest of us, at least the ones like me, are becoming so utterly disgusted with the state of things, that all I want to do is not be part of this anymore. I’m sick and tired of hearing about Co-Pilot. I’m sick and tired of my skip level times three director pulling me into a private meeting every few months to try and convince me to make more use of AI. He hasn’t gotten around to actually saying it yet, but I know this is because my AI usage stats are quite low. I choose not to use it. Co-Pilot is so bad that I even end up turning it off entirely in Visual Studio because its extended code completions consistently involve it making up complete nonsense.
My pot and alcohol addled brain can make up nonsense on its own, thank you very much. I don’t need to 10x some poor schmucks electricity bill to reach that low standard. So yeah, when they want me back years from now, I’ll refuse ala Rorschach from “The Watchmen”:
“[When] the streets are extended gutters and the gutters are full of blood and when the drains finally scab over, all the vermin will drown. The accumulated filth of all their sex and murder will foam up about their waists and all the whores and politicians will look up and shout ‘SAVE US!’…and I’ll look down and whisper ‘No.”
I’ve spent 25 years of my life trying to turn chaos into structured output. At the end of the day that’s what we do as Software Engineers. However it’s become clear that the people holding our leashes are no longer interested in embracing structure and have instead decided to embrace chaos. Fair enough. They have all of the money and power, so I guess at the end of the day, they have the agency required to make that choice, regardless of how harshly I will judge them for it. The one thing I can do when they become desperate for more traditional talent is to reiterate my refusal to participate. Once I’m out of this shit storm… I’m never going back.
Oh and just in case you were wondering, the candidate didn’t get an offer. He rubbed some of the Principal Engineers the wrong way in the following round and rubbed all of the managers and directors the wrong way in the final round. So it wasn’t meant to be. But somewhere deep down, I know that there is a good engineer in there and I can’t help but to feel a sense of loss when I try to imagine what he used to be versus what he has turned himself into… or at least what this industry turned him into.
Damn shame, that.