The Evolution Never Stops: Three-Plus Years of Hiring Adventures in Engineering

It is not the strongest of the species that survives, nor the most intelligent, but the one most responsive to change.

Charles Darwin

Darwin probably wasn’t thinking about tech hiring when he wrote this, though I first encountered this quote in Kent Beck’s “Extreme Programming Explained.” But here we are. Over the past three-plus years, our engineering hiring process has been on a wild ride of transformations. Not because some consultant told us to, not because we read it in a blog post, but because… well, things kept changing and we kept trying stuff. This is that story.

Where We Started: The Traditional Days

Three-plus years ago, when I took over hiring responsibilities, I inherited what seemed like a solid, time-tested process. Private portal, comprehensive assignments, PHP specs, EER diagrams: the works. This had been the way things were done for years (I’d gone through it myself when I was hired back in 2019). Candidates would disappear for 3-5 days and emerge with their solutions.

It mostly worked. We could spot who understood patterns, who thought about security, and who could document their thinking. But my favorite discovery? README files became this unexpected window into people’s minds. The way someone explains how to set up their project, how they anticipate confusion, how they communicate with a future stranger - pure gold.

The Time We Tried to Be Nice: Live Coding Adventures

At some point, we had this collective moment of “Wait, are we asking too much?” Five days of someone’s life for maybe getting a job? That felt… heavy.

So we pivoted. Live coding! Respectful of time! Only 1-2 hours! What could go wrong?

For backend folks, we cooked up these Slim framework challenges. 30-40 minutes, boom, done. People seemed to appreciate it, and we could watch them think in real-time. Pretty cool.

Frontend was… a different story. For an entire year (I kid you not, a YEAR) we couldn’t find Vue.js developers who could handle basic tasks. “Fetch data from an API and put it in a table.” That was it. And yet, when we did find people who breezed through? They became absolute rockstars on our team.

The Pendulum Swings Back: Take-Home Redux

Then my direct reports wanted to take ownership of the hiring process. Fresh eyes, fresh ideas. Their theory? Maybe live coding was too stressful. Maybe we were losing gems to performance anxiety.

Back to take-home we went. For the frontend, we switched to Vue 3 projects with public APIs. Backend reverted to our original portal assignments. And wow, suddenly everyone was passing! Success rates through the roof! We were geniuses!

…Until these same stellar assignment-completers joined the team and proved less capable than those who’d excelled in our live coding sessions.

This got us thinking. The people who breezed through live coding consistently outperformed those who aced take-home assignments but struggled with real-time collaboration. Maybe we were onto something with that live format after all.

Then AI Showed Up and Flipped the Table

Just when we thought we had it figured out (narrator: they didn’t), ChatGPT and friends crashed the party. Our carefully crafted assignments? Obsolete overnight. What took juniors days now took anyone with decent prompting skills about 20 minutes.

The generational shift was fascinating to watch. Early on, candidates would get this deer-in-headlights look when we mentioned they’d clearly used AI. Like kids caught with their hand in the cookie jar. Fast forward a few months, and NOT using AI was the weird choice. It became as natural as breathing.

Suddenly, we’re asking different questions. If AI can write the code, what’s left? Turns out - everything that makes us human. How you think, how you communicate, how you collaborate, whether you can navigate the beautiful mess of ambiguity that is real-world software development.

Where We Landed (For Now)

After all this experimentation, we’ve learned some things. Or at least, we think we have:

The best code isn’t always the cleverest code - it’s the code your teammate can understand at 3 AM during an incident.

Seniority used to mean “can implement any spec flawlessly.” Now it means “can figure out what we should build when nobody’s quite sure, and help the team get there together.”

AI changed the game, but it didn’t replace the players. The engineers thriving now are the ones who see AI as another tool in the toolbox, not a magic wand.

We’ve gotten great feedback about our process from candidates, which makes us feel pretty good. Then we go through other companies’ interview processes and… yikes. Humbling. If we had it all figured out, we wouldn’t still be changing things.

The Never-Ending Story

Will we change our approach again? Actually, we already are. Vassilis Poursalidis, our Engineering Director, is spearheading a new unified approach that goes live-by-default for everyone—frontend, backend, QA, the whole crew. Because here’s the thing about working in tech: the moment you think you’ve got it figured out, the ground shifts. The process that works today might be laughable tomorrow. And that’s actually… kind of exciting?

We’re not adapting because we have to survive. We’re adapting because it’s interesting, because we’re curious, because every failure teaches us something new. Even when those failures are spectacular.

Our hiring journey has been messy, nonlinear, sometimes frustrating, often surprising. But it’s been ours. Every weird experiment, every “what if we tried…”, every pendulum swing - it’s all been part of figuring out how to find people we want to work with.

In technology, evolution isn’t optional; it’s the path to excellence.


At TalentLMS, we’re always trying new things and learning as we go. If that sounds like your kind of environment, come join the experiment .