AI Proof Interview Questions for Full-Stack Developers

    Matt Watson
    By Matt Watson · CEO of Full Scale, 4x Founder, Author of Product Driven
    14 min read
    AI-proof interview questions for full-stack developers, a developer's dark workspace
    In this article

    A full-stack developer’s hardest skill is not writing both the front end and the back end. It is knowing, when something breaks, which of the two is actually at fault, and deciding where a feature’s logic truly belongs in the first place. Most full stack developer interview questions test neither. They test definitions from both sides, and the day your candidate started using AI, definitions stopped telling you anything.

    Look at the usual list. Walk me through the request and response cycle. SQL versus NoSQL. What is REST. What is CORS. Client-side versus server-side rendering. What is a JWT. For years that was the standard full-stack screen, and it made sense when the only place to find the answer was inside a developer’s own head.

    Not anymore. A candidate with a chat assistant in the next tab returns every one of those in seconds, and explains them well. The knowledge still matters, you cannot design a feature across the stack without it, but it has stopped being something you can *screen* on. A clean answer no longer reveals whether the person earned it shipping real features or read it off a screen a moment ago. A fluent recital used to be a fair sign of experience. AI made it a coin flip.

    The work underneath moved too. AI now writes the component, the endpoint, the query, the routine code on both ends that used to fill a day, which pushes the scarce part of the job up a level. A senior full-stack developer is not worth more for typing faster on either side. The worth is in the judgment: knowing which layer a piece of logic belongs in, where a bug actually lives when both ends point fingers, how the whole request path performs rather than one slice of it, and whether the feature should be built the way the ticket reads at all. The developer who only writes code is the one AI replaces; the one who can see the whole system end to end is the one who ends up owning it.

    So the questions have to follow the job. I built VinSolutions across the entire stack, the front end, the back end, and the database, because like most early-stage founders I could not afford a specialist for each layer. Being the person responsible for all of it teaches you something a deep specialist rarely sees: most hard bugs and most wasted effort live at the seam between the layers, not inside any one of them. At Full Scale we vet every full-stack developer on that kind of judgment, not on syntax quizzes, before they ever join a client team. This is the question set we use to find the ones who think.

    Why both-sides trivia stopped working

    The trivia rested on one assumption: that recall stood in for skill. If you could explain CORS, you had probably been blocked by it on a real project and worked out why. Recall was a shortcut to the real thing.

    AI removed the shortcut. A developer who has never shipped a feature end to end can now explain server-side rendering as fluently as someone who has debugged a hydration mismatch and a slow query in the same afternoon. You are not measuring what you think you are measuring. The trivia is not useless to *know*. It is useless to *test*, because everyone passes and the pass tells you nothing.

    What is left is the work AI cannot do for you. A model will generate a component and the endpoint it calls in seconds. It will not tell you that the validation lives only on the client where a user can skip it, that the two sides now disagree about the shape of the data, or that the feature does not need to exist. Those are judgment calls, and judgment is what a senior hire is for.

    Watch for the trap here. When the syntax is free, the cheapest developer who can pass the puzzle looks like the obvious hire, and full-stack makes it tempting because one person seems to cover two jobs. That is the mistake I named cheapshoring: chasing the lowest rate and treating engineers as interchangeable people who produce code on both ends. It was a weak bet before and a worse one now, because the cheap part is what AI already does for free. And a shallow generalist is dangerous in a way a shallow specialist is not, because the damage spreads across the whole stack before anyone catches it.

    Here is the shift in full-stack terms:

    What the old questions testedWhy it no longer screensWhat to test instead
    Reciting the request and response cycleAI answers it instantly; everyone passesWhere they would put a piece of logic, client or server, and why
    REST, CORS, and JWT definitionsFree to look up; can’t tell who has shippedHow they design the contract between the front end and the back end
    Implement an algorithm on a whiteboardAI writes it; the job is rarely thisHow they break down a vague, end-to-end feature
    “Client versus server rendering” recallAI fills it inWhether they can tell which layer a bug actually lives in
    full-stack interview questions before and after AI: what used to screen versus what screens now

    What to interview full-stack developers for

    If recall no longer screens, what replaces it? Five things, and they line up with the five groups of questions below.

    End-to-end architecture judgment. Whether they can defend where they put things and name the cost. Shipping a feature end to end is not the same as owning it end to end. Anyone who finished a tutorial can wire a form to an endpoint. Owning a feature means reasoning about which layer each piece of logic belongs in, treating the API contract between front and back as the shared source of truth, and seeing the whole request path rather than the half they like best. That is the knowledge a memorized definition only pretends to cover.

    Problem-solving on open-ended messes. Real full-stack work rarely arrives as a clean spec. It arrives as “this feature feels slow and nobody knows if it is the front end or the back end” or “the two sides keep breaking each other.” You want to watch how they cut an ambiguous, cross-layer problem into parts, and whether they ask what you are really trying to build before they start.

    Performance across the whole stack. A feature can be slow because of a heavy bundle, a chatty API, or a query that does not scale, and a full-stack developer is the one person who can see all three. Senior judgment is finding which layer actually owns the slowness instead of optimizing the layer they are most comfortable in.

    The boundary, the contract, and the user. The hardest and most valuable full-stack work lives at the seam between front and back. The strongest developers design that contract deliberately, handle errors as they cross it, and keep the user’s experience coherent even when one side fails. The MDN Web Docs are a good shared reference for the web platform both sides depend on, and a full-stack developer should actually use them.

    Curiosity and working with AI. When anyone can generate a component or an endpoint, the developer who asks “should we build this, and what problem does it solve” is worth more than the one who silently builds the ticket. The same goes for AI output: you want someone who treats it as a draft to review and steer, the way a lead reviews a junior’s pull request.

    Under all five sit the three traits we screen hardest for on every stack: communication, curiosity, and courage. Communication is whether they can explain why a piece of logic belongs on the server. Curiosity is whether they are genuinely adapting to how AI changed the craft. Courage is whether they will say “this should not be duplicated on both sides” instead of quietly copying it. We wrote the long version in our book on engineering leadership, and it holds up especially well for full-stack work, where one person’s judgment shapes the whole feature.

    The AI-proof full-stack developer interview questions

    The fair objection is that AI can answer these too. It can, every one will get a fluent reply in a chat window. That is fine, because the question is not what does the screening, the live format is. Push into the *reasoning* with follow-ups, ask them to walk through a real feature they shipped, throw a curveball, and a pasted answer comes apart on the second question while a genuine one gets sharper. So ask these, then keep pulling the thread.

    End-to-end architecture judgment

    1. Pick a feature you built end to end and tell me one decision about where the logic lived that you would make differently now. A rehearsed answer falls apart the moment you ask why, so chase it. It shows whether they think about the boundary at all, and whether their opinions came from shipping or from a tutorial.

    2. You inherit an app where the same business logic is duplicated in the front end and the back end, and the two copies have fallen out of sync. How do you decide what to fix first? Strong answers find the single source of truth and reconcile the two deliberately. The weaker instinct is to patch whichever copy is in front of them and move on.

    3. When would you push logic to the client, when would you keep it on the server, and when would you refuse to put it in both? This catches developers who default to one side out of comfort. Knowing that validation has to live on the server, that some work belongs on the client for responsiveness, and that duplicated logic is a bug waiting to happen is a senior signal.

    Cutting through a cross-layer problem

    4. A feature feels slow, and you do not yet know whether it is the front end, the API, or the database. How do you find out? This is the full-stack signature, and it separates the developers who can trace a request across every layer from the ones who only know how to profile the half they live in.

    Building a development team?

    See how Full Scale can help you hire senior engineers in days, not months.

    5. A feature request lands as one vague sentence from the CEO. What do you do before you write any code? The answer you want is full of questions, not assumptions. The developer who clarifies the problem builds the right thing. The one who guesses builds the wrong thing fast.

    6. Design a feature where the interface updates instantly but the server is the real source of truth, and handle the case where the server rejects the change. Talk me through it. Listen for optimistic updates, how they reconcile when the server disagrees, what the user sees when it fails, and how they avoid leaving the two sides out of sync. This is a pure seam problem, and naive answers either feel sluggish or quietly lie to the user.

    Performance across the whole stack

    7. A page is slow. It turns out the front end is fine and the back end is firing an N+1 query. How would you have known where to look, and how do you fix it without the two teams blaming each other? You want someone who measures across layers before pointing a finger, and who can speak to both sides because they understand both. The blame game is the failure mode this question exposes.

    8. The front-end and back-end teams keep breaking each other on every release. What is going wrong, and what would you change? The senior answer goes to the contract between them: a shared, versioned, ideally typed interface, and a way to catch a breaking change before it ships. A weaker answer just asks everyone to communicate more.

    9. After a deploy, some users see stale or wrong data. Walk me through how you would tell whether it is caching on the client, a CDN, or the server. You want a layer-by-layer process of elimination, because the answer could live in any of the three, and knowing how to isolate it across the stack is exactly the full-stack skill.

    The boundary, the contract, and the user

    10. How do you design the contract between the front end and the back end so a change on one side does not silently break the other? A senior developer talks about a shared schema or typed contract, versioning, and tooling that fails loudly when the two fall out of sync. Treating the contract as a first-class thing, not an afterthought, is the whole point.

    11. The clock says you can go deep on the front end or the back end for this bug, but not both. How do you decide, and what is the real risk of being a generalist who is shallow everywhere? This is the thesis in one question, and it is the most honest one you can ask a full-stack candidate. The answer reveals whether they know their own depth, when to pull in a specialist, and that breadth is only valuable when it is paired with enough depth to be trusted.

    Working with AI across the stack

    12. How has AI changed the way you work across the stack day to day, and where do you not trust it? This is the easiest trait to test and the hardest to fake. A genuinely curious developer lights up and gets specific. The “where do you not trust it” half matters most. Veracode’s 2025 GenAI Code Security Report found that 45% of AI-generated code samples introduced a known security flaw, so a developer who reviews the output, catches the validation that only runs on the client and the contract that does not match, and steers it is worth far more than one who pastes it and hopes.

    The strongest version of this question is to stop asking and start watching. Hand them an AI-generated feature that spans a front-end component and the API endpoint it calls, and ask what they would change before it ships. The developer who spots that the two disagree about the data shape, that validation lives only on the client, and that the endpoint has an N+1 is showing you the exact judgment the job now rewards. The one who says “looks good” is showing you something too.

    Reading answers across the stack

    These full-stack interview questions only work if you know what you are listening for.

    Strong answers start with the whole feature and the boundary before the syntax. They reference real tools and real scars: a slow page they traced to a backend query, a contract mismatch that broke a release, a bug that lived in exactly the layer nobody owned. They weigh trade-offs out loud instead of declaring one right answer. And they connect technical choices back to whether the feature worked end to end for the user.

    Red flags cluster into a few habits. The candidate is clearly comfortable on one side and hand-waves the other. They duplicate logic across the stack without seeing the problem. They cannot trace a slow request past the layer they prefer. They assume the front end and back end will just agree on the data. And they hand back AI output as finished work rather than a draft to review. None of those are about syntax, which is exactly the point.

    Strong full-stack interview answers versus red flags

    How we vet full-stack developers at Full Scale

    Our screening is built on exactly this, because we put our name behind every developer we place. The technical round is real end-to-end problems that cross the boundary between front and back, not a syntax quiz on either side. Around it we check communication, English fluency, work ethic, and how someone operates on a distributed team, with background checks thorough enough that we have interviewed candidates’ neighbors. Fewer than 3% make it through. The full process is in our guide to interviewing a software engineer.

    I am wary of that 3% number, though, because an acceptance rate is the easiest thing in this business to dress up as marketing, and it is not what makes a hire succeed. What does is whether the developer stays long enough to learn your whole system and become part of the team, which matters even more for a full-stack hire who touches every layer. So the number I trust is retention, and ours runs over 93%, going back to 2018. A selective filter only matters if the people who clear it stay.

    It is also why we staff integrated teams rather than run a body shop. The engineers we place at AMC Theatres sit in the standups and the roadmap conversations next to AMC’s own staff, not behind a vendor account manager. That is staff augmentation the way it should work, and it only pays off when you hire for judgment and keep people long enough for that judgment to compound.

    If you are hiring for one side specifically, our guides to front-end developer interview questions and backend developer interview questions go deeper on each. And if you would rather skip the interviewing and start with developers who have already cleared this bar, you can hire full-stack developers through us directly.

    It comes down to this. The facts are free now, so stop grading people on them. Grade them on the judgment that decides whether a feature works end to end for the user or breaks at the seam nobody was watching. That is what the questions above are built to surface.

    Full Scale: under 3% applicant acceptance versus 93% plus developer retention

    Frequently asked questions

    Are technical full-stack questions like REST, CORS, and the request cycle useless now?

    The knowledge is not useless. A developer still needs to understand the request cycle, how the front end and back end talk, and how the web platform works to debug real problems. What changed is that those topics no longer work as *screening* questions, because any candidate can recite a clean answer in seconds. Use them as a way into a real debugging story instead of as a recall test.

    What should I ask a full-stack developer instead of coding trivia?

    Ask open-ended questions that reveal judgment: where they would put a piece of logic and why, how they would resolve logic that has drifted between the front end and back end, how they would find which layer a slow feature actually lives in, and how they would design the contract between the two sides. Then drill into the reasoning with follow-ups.

    Can a candidate get through these with AI help?

    You do not block it, you make it pointless. In a live conversation, follow-up questions surface a pasted answer almost at once. Ask the candidate to walk through a real feature they shipped, hand them an AI-generated component and endpoint and ask what they would change before it ships, and stay on the reasoning instead of the answer.

    What is the difference between a senior and a junior full-stack developer in the AI era?

    Both can generate working code on both ends with AI. The senior knows which generated code to trust, where each piece of logic belongs, which layer a bug actually lives in, and whether the feature should be built that way at all. The value moved from writing the code to judging it.

    Want a team that has already passed these questions? Book a call and we will walk you through who we would put on your full-stack work.

    Get Product-Driven Insights

    Weekly insights on building better software teams, scaling products, and the future of offshore development.

    Subscribe on Substack

    Ready to add senior engineers to your team?

    Book a 15-minute call. Tell us your stack and where the gaps are, and we'll show you the engineers we'd put on your team.