How to Interview Software Engineers in the AI Coding Era
The Problem
I sat across from a senior engineer candidate, watching them struggle with a whiteboard coding problem. The algorithm was straightforward—nothing fancy, just a tree traversal with some edge cases. But the candidate kept second-guessing their syntax.
“Sorry, I usually have Copilot autocomplete this,” they said, erasing the same line for the third time.
That moment crystallized something I’d been feeling for months. Our interview process was testing the wrong things. We were evaluating candidates on skills they’d never use on the job, while ignoring the skills that actually mattered.
Why Traditional Coding Interviews Fail
I’ve been running technical interviews for years. The standard format goes something like this:
- Phone screen with algorithm questions
- On-site with 4-5 rounds of whiteboard coding
- Maybe a system design round for senior candidates
But here’s what I noticed: candidates who aced these interviews often struggled on the job. Meanwhile, some of our best engineers had struggled during interviews.
The disconnect became obvious when I started using AI coding tools myself. I rarely write code from scratch anymore. I describe what I want, iterate on the output, and focus on architecture and edge cases.
Yet our interviews tested none of this. They tested syntax memorization and algorithm recall—skills that AI handles effortlessly.
Traditional Interview Tests:- Syntax memorization- Algorithm recall- Writing code from memory- Speed coding under pressure
What Actually Matters Now:- System architecture thinking- Problem decomposition- AI collaboration skills- Critical evaluation of generated codeMy Failed Experiments
I tried incremental fixes first. I allowed candidates to reference documentation. I gave take-home challenges. I focused on “practical” problems.
None of it worked. Candidates still optimized for the interview format rather than real skills. Take-home challenges became take-home opportunities to over-engineer.
The breakthrough came from a Reddit discussion where hiring managers shared similar frustrations. One approach caught my attention:
“We allow LLMs in take-home challenges but require prompt logs. We want to see how candidates communicate with AI, not just what they produce.”
This shifted everything. The problem wasn’t the coding—it was what we were evaluating.
The New Interview Framework
I redesigned our interview process around four components:
1. AI-Permitted Take-Home Challenge
Candidates can use any AI tools they want. But they must submit:
- All prompts used
- The complete codebase
- A working demo
- Architecture decision documentation
This reveals how candidates actually work. Some send vague prompts and accept whatever AI produces. Others iterate, refine, and explain their choices clearly.
// Vague prompt (red flag)Write a REST API for user management
// Effective prompt (green flag)Create a FastAPI REST API for user management with:- JWT authentication with refresh tokens- Role-based access control (admin, user, guest)- PostgreSQL database with SQLAlchemy ORM- Endpoints: POST /users, GET /users/{id}, PUT /users/{id}, DELETE /users/{id}- Input validation using Pydantic models- Unit tests with pytest (target 80% coverage)- Follow clean architecture principles- Handle concurrent requests safelyThe difference is stark. Good prompts demonstrate understanding of constraints, security considerations, and architectural preferences.
2. Architecture Deep Dive
Instead of coding puzzles, I give candidates a real feature request and ask:
“Walk me through how you would break this down for implementation.”
I want to see their decomposition skills. Can they identify the components? Do they understand dependencies? Can they explain trade-offs?
A strong answer includes:
- Understanding existing architecture first
- Breaking the feature into incremental tasks
- Identifying edge cases and error scenarios
- Considering testing strategy for each component
3. AI Output Review
I present candidates with AI-generated code containing subtle bugs or security issues:
// AI-generated code with issuesapp.get('/users/:id', async (req, res) => { const user = await db.query(`SELECT * FROM users WHERE id = ${req.params.id}`); res.json(user);});Can they spot the SQL injection? Do they notice the missing error handling? Do they check for proper authentication?
This tests what matters: critical evaluation of AI output.
4. System Design Discussion
For senior candidates, I focus entirely on system design. How would they architect a notification system? How do they handle eventual consistency? What trade-offs would they make?
These discussions reveal depth that no coding exercise can. I learn how they think, not just what they know.
What Prompt Quality Reveals
The prompts candidates submit tell me more than any coding test:
Red Flags:
- Vague instructions without context
- No iteration or refinement
- No constraints or requirements specified
- Copy-paste prompts without understanding
Green Flags:
- Clear specification of requirements
- Iterative refinement visible in prompt history
- Consideration of edge cases
- Technology choices explained
I’ve found that prompt quality correlates strongly with on-the-job performance. Engineers who communicate clearly with AI also communicate clearly with humans.
The Results So Far
After running this process for three months, I’ve noticed:
- Better alignment between interview performance and job performance
- Candidates report feeling the interview was fair and relevant
- We’ve caught candidates who looked great on paper but couldn’t explain their choices
- We’ve hired engineers who would have failed traditional coding interviews but excel at the actual job
The process takes roughly the same amount of time. But we’re evaluating different things.
AI-Era Interview Structure (2-3 hours total)
1. Take-Home Challenge (2-4 hours candidate time) - Realistic feature implementation - AI tools fully permitted - Submit: code + prompts + demo + architecture docs
2. Technical Discussion (60 minutes) - Architecture walkthrough (20 min) - AI output review exercise (20 min) - System design scenario (20 min)
3. AI Collaboration Assessment (30 minutes) - Live problem decomposition demo - Prompt engineering discussion - Tool selection rationaleWhat I’m Still Learning
This approach isn’t perfect. I’m still figuring out:
- How to calibrate difficulty for different experience levels
- Whether take-home challenges create unfair advantages
- How to prevent candidates from using AI during the live system design portion
- Whether we need different processes for frontend vs. backend roles
But I’m confident the direction is right. We’re evaluating the skills that matter in 2026, not the skills that mattered in 2016.
The Bottom Line
If you’re still asking candidates to invert binary trees on a whiteboard, you’re testing the wrong things. The engineers you want to hire are already using AI tools. Your interview should evaluate how well they use them.
Architecture thinking, problem decomposition, and critical evaluation—these are the skills that differentiate senior engineers from junior ones. AI handles the syntax. Humans handle the strategy.
In this post, I shared my journey redesigning our interview process for the AI coding era. The key insight is that we should evaluate how candidates collaborate with AI, not whether they can code without it.
Final Words + More Resources
My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me
Here are also the most important links from this article along with some further resources that will help you in this scope:
Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!
Comments