Software Engineering & Development

How to Get a Full Stack Developer Job in 2026-27

The short answer

To get hired as a full stack developer in 2026-27, show one deployed application you own from schema to screen, plus one bug you traced from a browser symptom to a database cause. No licence or certificate gates this job; the offer is decided by a repository take-home or a live feature build, then a loop containing a product-shaped design round, a cross-layer debugging round, and increasingly a code review round. Pitch breadth by being deliberately asymmetric: name one anchor layer you can be interrogated on for 45 minutes, state what you ship on the other side without a handoff, and name your own boundary before the interviewer finds it. AI assistants now generate the cross-layer scaffolding that used to be this title's differentiator, so what employers test is judgement at the seam: an authorisation check enforced in the interface but not on the endpoint, a migration that takes a lock on a large table, and type drift between the API and the client.

What the role ownsA feature from the database to the browser without a handoff: schema and migrations, the HTTP or RPC contract, the server logic, the client that consumes it, and usually the deploy. In practice you own a vertical slice of the product rather than a layer of the stack. "Full stack developer", "full stack engineer", "product engineer", "application developer" and "web developer" overlap heavily in postings. The US Bureau of Labor Statistics does not break the title out; it falls under Software Developers, SOC 15-1252.
Licence or certificationNone. No licence is required to do this work in the US, the UK, Canada or the EU, and no certificate is a hiring gate. One naming caveat: in several Canadian provinces the word "engineer" is a protected title controlled by the provincial regulator, which is why postings there often say "developer". That constrains what the job is called, not whether you can be hired. Cloud certifications (AWS, Azure, Google) matter in two situations: consultancies and cloud partners that must report certified headcount, and candidates with nothing shipped who need something concrete on the page. A bootcamp certificate is not a credential; the portfolio it produced is the only part anyone reads.
Education and time to job-readyA computer science degree is the most common route and the default screen in large-employer graduate pipelines, but it is not required and a large share of working full stack developers do not have one. From a standing start, interview-ready is roughly 12 to 24 months of building and operating real applications, longer than for a single-layer role because there is more surface to be credible on. Moving across from QA, support engineering, data analysis, IT or a frontend or backend seat is much faster, because you already have production context and a manager who can vouch for you.
How hiring actually worksRecruiter screen, then a technical screen that for this role is most often a repository take-home or a 60 to 90 minute live feature build, then a loop of 3 to 5 rounds: a feature-build or pairing round that crosses layers, a product-shaped design round (data model plus API contract plus interface states), a cross-layer debugging round, often a code review round, and a hiring-manager round. Two to six weeks at a large employer. A 15-person startup may run one pairing session and a founder call inside a week.
What decides the offerDepth at one end plus demonstrated judgement at the seam. The design and debugging rounds set your level and therefore your pay. The most common rejection reason for this title is breadth that collapses under one follow-up question, so the fix is asymmetry: be interrogation-proof on one layer and honest about the edges of the others.
Core proof to have readyOne deployed application with real users and a URL you control, its schema with an index you chose and can justify, auth you implemented yourself including a server-side permission check, one migration run against live data, one cross-layer performance fix with before and after numbers, an error path the user actually sees, and a monthly running cost figure.
Where pay figures come fromFor a defensible national and metro baseline, use the BLS Occupational Employment and Wage Statistics for Software Developers, SOC 15-1252 (bls.gov/oes). For public-company bands, use levels.fyi and the employer's own posted range. A growing number of US states and cities require a pay range in the posting itself (California, Colorado, New York and Washington were among the first, and more have passed since, some with staggered start dates), so check the current rule where you are applying rather than assuming: where it applies, the band is published before you ever speak to a recruiter. Note the title effect: the same work often carries a lower band under "full stack developer" at an agency than under "product engineer" or "software engineer" at a product company, so search both.
The 2026-27 AI expectationEmployers assume you use a coding assistant and screen for what you do about its failure modes, especially on change sets that touch a migration, an endpoint and a screen at once. Full stack postings increasingly also mean shipping model-backed features: streaming to the interface, long-running inference moved to a queue, per-user token cost, and retrieval. Ask in writing whether an assistant is permitted in each technical round; the policy varies by company and sometimes by round.

What "full stack developer" means on a 2026 posting, and the four jobs behind the title

The title is not a skill level. It is a staffing decision. A company writes "full stack" when it wants one person to carry a feature from the database to the browser without a handoff, usually because it does not have enough engineers to split the work, or because handoffs were costing it more than specialisation was buying. That is a real and valuable job. It is also at least four different working lives, and they interview differently, pay differently, and lead to different second jobs.

Read the verbs before the technology list. "Own features end to end", "work directly with design and product", "ship weekly" describes a product engineer. "Build and maintain internal tools", "support the operations team" describes a line-of-business developer, which is a stable job with a narrower ceiling. "Deliver client projects", "multiple concurrent engagements" is agency work, where throughput and estimation matter more than depth. "Own the platform", "manage our AWS footprint" means the posting is also the infrastructure job and nobody has said so.

Almost every full stack role is actually 70/30 one way. Find out which way before you prepare. The question that gets a straight answer is specific: ask the recruiter or the hiring manager what the last three tickets the person in this seat picked up actually were. A vague answer is itself information. A good one tells you whether to spend your preparation on query plans or on render behaviour.

One thing that is specific to this moment: in the frameworks most full stack jobs now use, the line between server and client runs through the code itself rather than between two repositories. Next.js server components and server actions, Remix or React Router loaders and actions, Rails with Hotwire, Laravel with Livewire, Django with HTMX. The interview question that follows is "where does this run, and what crosses the boundary", and it is worth being able to answer it for whatever framework the posting names: what gets serialised, what the client is trusted with, what a cache or CDN sees, and what happens on the second render. Candidates who have only ever used the framework's happy path tend to discover in the round that they could not say which half of their own code executed where.

Establish one more thing early, because it changes the job materially: at a company under about twenty engineers, "full stack" frequently includes the deploy pipeline, the cloud account, and being the only person who knows how production works. That is a gift at two years of experience and a trap at eight. Ask who is on call, whether on-call is compensated, and what broke most recently.

Pitching breadth without reading as shallow: be deliberately asymmetric

The fear in the hiring manager's head is specific, and you should name it before they do. It is that "full stack" means a person who can assemble a CRUD application from a template and cannot be left unsupervised at either end of it. Every generic breadth claim feeds that fear, because a list of six technologies invites the interviewer to find the hollow one, and finding one hollow claim discounts all six. This is the single highest-leverage adjustment most full stack candidates can make, and it costs nothing.

The fix is asymmetry. Claim one anchor layer where you can be interrogated for 45 minutes without running out of road. Claim honest working competence on the other side. Then name your own boundary out loud. In practice that is three sentences, and they should be ready before the recruiter screen: "I am strongest on the server side, and I can go as deep as you want on Postgres schema design and query performance. I have shipped the React side of every feature I have built, including the state and data-fetching layer, so I do not need a handoff to finish my own work. I have not built a design system from scratch and I would want a designer or a frontend specialist for that."

The mirror image works just as well: "My depth is the interface. I can talk about render behaviour, accessibility and Core Web Vitals with numbers. I write the endpoints and the migrations my features need in Node and Postgres, and I have run migrations against live data, but I have never operated a system at a scale where sharding was on the table." Both of these buy trust, because the interviewer was going to discover the limit within ten minutes anyway and you got there first.

Choose the anchor your evidence supports, not the one you enjoy. Depth is not a feeling, it is a set of specific things you can be asked. On a backend anchor, depth means you can read a query plan, justify an index, say what your isolation level does under two concurrent writes, and describe a migration you ran without taking the site down. On a frontend anchor, depth means you can explain why a list re-rendered, show a keyboard trap you fixed and how you found it, and name an LCP or INP number you moved and what moved it. If you cannot produce those sentences for either end, you do not yet have an anchor, and the honest move is to build one before you apply widely rather than spreading the gap evenly.

The strongest form of breadth is never a list. It is a decision that required two layers at once, told in one sentence. Those sentences are what the title is actually for, and they are hard to fake: you moved pagination from offset to cursor because the interface needed stable ordering while new rows arrived underneath it; you denormalised a counter because the dashboard aggregate was the page's largest contentful paint; you moved a CSV export to a queue because the request was timing out at the proxy and the interface needed a job id to poll. Collect three of these from your own work and you will never again have to claim breadth in the abstract.

One pattern to avoid: hedging downward. Candidates who are genuinely backend-leaning often describe themselves as "full stack but mostly backend, a bit of everything really" and read as weaker than they are. Lead with the depth, then the span. "Backend engineer who ships the whole feature" is a stronger self-description than "full stack", and it is the same person.

The end-to-end project that actually convinces a hiring manager

One project. Deployed. With users who are not you. The number of users can be small: thirty real people using a thing for a real purpose beats a clone with a million imaginary ones, because thirty real people generate the problems that tutorials stop before. That is the whole mechanism. Tutorials end at the happy path, so the awkward parts are the proof that it was not a tutorial.

The subject does not matter, and dull subjects work better than exciting ones. A booking tool for a local club, a stock and reorder tracker for a one-van business, a shift swap board for a restaurant, a submission and review system for a small journal. What matters is that somebody depends on it, because dependency forces auth, data integrity, error handling, backups and a support conversation, and those are exactly the things a hiring manager is scanning for. A beautiful clone of a famous product proves you can follow a specification that already existed.

This bar moved in 2026, and you should know why. A deployed CRUD application is no longer evidence of much on its own, because assistants will produce one in an afternoon and reviewers know it. What is still scarce is the operating history: the thing has been running for months, real people have hit it, and you can describe what went wrong and what you changed. Lead with that rather than with the feature list.

Then there is the part most candidates skip: the cross-layer bug story. Have one, told in four moves, with numbers at both ends. Symptom: the list page took about four seconds to become usable and two users complained. Evidence: the browser waterfall showed one API call consuming 3.6 seconds of it, and the server log showed one query plus one per row. Cause: a lazy relation in the list serialiser, an N+1 over roughly 200 rows, with no index on the foreign key. Fix and verification: eager load plus the index, measured again at about 180ms, and a test that fails if the query count for that endpoint exceeds five. That story is more convincing than any list of technologies, because nobody can tell it who has not done it.

Write the README as though it is the only thing that gets read, because it often is, and it is frequently read before the code. One screenshot near the top. The live URL. The stack in a single line. A short architecture note including the data model. Three decisions you made and what you rejected. What is deliberately missing and why. How to run it in under five minutes. If you used an assistant or an agent heavily, say so plainly and say what you changed; reviewers can usually tell, honesty costs nothing, and being caught costs the offer.

Finally, do not take it offline to save hosting costs while you are still interviewing. If money is the problem, run it on a free tier and say so. A dead link in a portfolio reads as a project that was abandoned, which is the opposite of the signal you are paying for.

How full stack hiring works, stage by stage, and the two rounds that decide the offer

Full stack loops lean more heavily on take-homes and feature builds than pure backend or pure frontend loops do, because the thing being tested is whether you can move across an unfamiliar codebase rather than solve a puzzle inside one file. Ask the recruiter for the exact round list in writing: round names, durations, whether you use your own machine and editor, and whether an AI assistant is permitted. A recruiter who will not say what the technical screen is has told you something about the organisation.

The repository take-home is the dominant format at mid-size companies. You get a half-working application and a task: add this feature, fix this bug, write the tests. They are graded on things candidates do not expect. Did you follow the conventions already in the codebase rather than importing your own? Did you write a migration or edit the schema by hand? Did you handle the error paths and the empty state? Are your commits legible? Did your change touch all the layers it needed to, including types and tests, or did you leave the client out of sync? Budget the stated time, stop when it is up, and write a short NOTES.md saying what you assumed, what you deliberately left out, and what you would do with another day. That file is often read first.

The live feature build, typically 60 to 90 minutes, is the other common screen: here is a small running application, add a filter and persist it, or add a field end to end from the column to the form. They are watching the order you work in and whether you verify as you go. Work outward from the data, say what you are doing, run the thing often, and when you take a shortcut name it as a shortcut out loud. Candidates lose this round by going silent and by leaving no time to check whether their change actually works.

Company size changes the shape more than anything else does. A large employer may still run a timed online assessment of data structures and algorithms before anyone looks at your work; treat it as a scheduled exam, get a brute-force solution passing before optimising, and cover empty, single and maximum inputs. A 15-person startup may do one pairing session and a founder call inside a week, and will weight your deployed project much more heavily. An agency will often replace coding rounds with a portfolio walkthrough and a conversation about estimates and client communication.

The cross-layer debugging round is the signature full stack interview, and it exists because the job's actual value is that one person can follow a problem across a boundary that would otherwise require a meeting. You are given a symptom and some access: the page hangs for eight seconds after clicking save; the list sometimes shows a stale row after an edit; uploads over 5MB fail silently in Safari only; the dashboard is correct on staging and wrong in production. They are grading method, not the answer. The method that scores: state the symptom precisely and get a reproduction before theorising. Say where you would cut the problem in half first, and why, which for a web request usually means establishing whether the server returned the wrong thing or the client displayed the right thing wrongly. Ask for the specific evidence, by name: the network waterfall entry, the response body and status, the server log line, the query count, the query plan, the cache headers. Form one hypothesis at a time and say what observation would disprove it. Candidates fail this round by listing plausible causes rather than asking for evidence, and by stopping at the first thing that is wrong instead of checking that it explains the symptom.

The product design round is where full stack candidates most often prepare the wrong thing. It is almost never "design Twitter" at planetary scale. It is "design the feature": commenting with mentions, a scheduling flow with timezones, a bulk import, an approval workflow, a notification preference centre. What they want to see is a data model drawn quickly, an API contract that includes the error responses, the interface states enumerated, and an explicit first slice that could ship on its own.

The enumeration of states is the clearest differentiator in this round and it takes thirty seconds. Loading, empty, error, partial success, stale while revalidating, offline or flaky connection, permission denied, and the slow case where the response takes ten seconds. Most candidates design the happy path and stop, and every interviewer has watched that happen many times. Say the states out loud, decide which ones you will handle in the first slice, and name the ones you are knowingly deferring.

Timezones, money and identity are the three traps interviewers plant in these prompts. Store instants in UTC and store the user's zone separately as an IANA name such as Europe/London rather than an offset, because a recurring event is defined in local time and the offset moves under it. Store money in minor units as integers and name the currency. Decide early whether an email address is the identity or an attribute, because changing that later is a migration everyone remembers. Naming any one of these unprompted reads as experience, because it is.

Contract and freelance hiring is a different process and worth knowing if you want the volume. It is usually a 30 minute call, a rate conversation, references or a public portfolio, and a paid trial of one or two weeks. Nobody runs a five-stage loop for a three-month engagement. Your rate, your availability date and a URL that loads are the whole screen, and the paid trial is where you are really assessed.

Breaking in at entry level, now that the easy half of the job is cheap

Be honest with yourself about the shape of the market you are entering. The part of this job that used to be handed to a junior, adding a field across the schema, the endpoint, the form and the types, is the part assistants do fastest. Fewer teams are opening seats whose whole content is that work. This does not mean there is no entry route. It means the entry routes that still work are the ones where somebody needs a whole small system looked after, rather than a pair of hands on a ticket queue.

The most reliable of those is an internal tools or line-of-business team inside a company that does not sell software: an insurer, a logistics operator, a hospital group's administration, a university, a local authority, a manufacturer, a utility. They run real systems with real users, they hire people who can carry a small system end to end, their postings get a fraction of the applications a known technology employer gets, and they take seriously a candidate with no famous logo. The work is less glamorous and the ceiling is lower, but two years there gives you production stories that a bootcamp portfolio cannot buy.

The other routes worth running in parallel: formal apprenticeships and graduate schemes, which large employers and government bodies still run and which are structured entry rather than luck; contract-to-hire and paid trial engagements, where a week of real work replaces a loop you would not pass on paper; and the sideways move, which is the highest-probability route of all. Get into a company that employs engineers in any role you can actually get, QA, support, implementation, operations analyst, data, then build the internal thing nobody has time for and ask to move. Internal transfers skip most of the screen, because the thing a screen is trying to establish, that you can be trusted with production, is already known.

What to show, given that a CRUD application is no longer a differentiator: evidence that you can be trusted near things that are expensive to get wrong. One deployed application with real users and an operating history. One cross-layer bug told with numbers at both ends. And the review skill, which is unusual in a junior and valuable now: be able to look at a generated pull request and say that the authorisation check is in the component and not on the endpoint. If you can do that in a room, you are doing something the market is short of, and you are doing it at a level where nobody expects it.

On volume and targeting: a small number of applications where you have read the product, know what the team builds, and have a named human to send two sentences to will beat a large number of portal submissions, and it is not close. The portal is where applications go to be counted. Budget your week accordingly, and cap unpaid take-home work at the stated time budget no matter how much you want the job, because a candidate who hands in a four-hour task after two days has told the reviewer something about scope discipline that they did not intend to say.

The resume: how to present breadth so that it reads as depth

A full stack resume gets a short first pass from a recruiter who is checking whether your stack overlaps the posting's, then a longer read from an engineer who is checking whether you have owned anything. Both passes are served by the same document if you structure it for the second one. The failure mode specific to this title is a resume that lists everything and proves nothing, which reads as a person who has touched many things briefly.

Replace the flat technology list with a tiered one. It is a small change with an outsized effect, because it does your own honest sorting before the interviewer has to: "Primary: TypeScript, Node, PostgreSQL, React. Production experience: Python, Redis, AWS (ECS, S3, RDS), Terraform. Working knowledge: Go, Kubernetes." Nobody has ever been penalised for that. Candidates are penalised constantly for a single undifferentiated list of thirty items that includes something they last used for a weekend three years ago.

Write bullets that name the layer, the action and a number with a unit. "Built full stack features using React and Node" says nothing a recruiter can use. "Took the order history page from 4.1s to 380ms by replacing an N+1 in the serialiser with an eager load and a covering index, verified on the same waterfall" names two layers, a measurement and a verification in one line. If you do not have numbers from a past job, derive them before you leave: row counts, request rates from the load balancer, the error rate in your tracker, the cloud invoice. If you have left already, say "roughly" and give the shape rather than inventing a figure.

Keep two versions of the same resume, backend-leaning and frontend-leaning, with the same facts in a different order and a different top line. This is not dishonesty, it is answering the question that was asked. Mirror the posting's own vocabulary where it is true of you, because applicant tracking systems match literal strings and a human screener is doing the same thing faster: if the posting says Next.js, do not write only React; if it says PostgreSQL, do not write only SQL.

What gets ignored or actively counts against you: skill bars and percentage ratings, a wall of forty technology logos, "passionate about clean code", an objective statement, every tutorial project listed individually, "familiar with" anything, and a GitHub link whose pinned repositories are all forks or coursework. One more specific to this role: do not pad with a line about every AWS service you have opened in the console. Name the three you have actually run something on.

Full stack developer interview questions, and what each one is grading

These come up repeatedly in full stack loops across company sizes. Prepare an answer that is a specific instance from your own work rather than a definition, because the follow-up is always "tell me about a time" and a definition cannot survive it.

Where the jobs are, how to reach a human, and what to say about pay

Searching only the exact phrase "full stack" hides a large part of the market. The same work is posted as product engineer, software engineer (generalist), application developer, web developer, and at some companies simply as the stack itself: "Rails engineer", "Django engineer", "TypeScript engineer". Run all of them. The inverse trap is worth knowing too: some postings titled "full stack" are actually seeking a specialist and the title is aspirational, which is why reading the verbs is worth more than reading the title.

Where this role is reliably hired, in rough order of how little competition you face per opening: internal tools and line-of-business teams at non-technology companies (insurers, logistics, healthcare administration, universities, local government, manufacturing), small product companies between ten and a hundred people, agencies and consultancies, and finally the well-known technology employers, where the applicant-to-opening ratio is worst. Non-technology employers hiring for internal systems are the most consistently under-applied-to source of serious full stack work.

Reaching a human still beats the portal. The versions that actually work are specific and short: message the engineering manager or a senior engineer on the team with two sentences about the product and one line about a comparable thing you built, with the live URL. Fix something real in a dependency the company publishes and mention it. Go to a local meetup for the framework the company uses, because small-company hiring still runs heavily on who someone has met. A referral is the route with the best odds per application by a long way, and asking a former colleague to refer you is a normal professional request, not an imposition.

On pay, do the work before the conversation. Start with the BLS Occupational Employment and Wage Statistics for Software Developers, SOC 15-1252, for a defensible national and metropolitan baseline, then adjust with levels.fyi for public companies and with the posted range where pay-transparency rules apply. Those rules now cover a sizeable set of US states and cities, and more have been added over time with staggered start dates, so check the current position for the state you are applying in rather than assuming either way. The title effect is real and specific to this role: the same person doing the same work is often banded lower as a "full stack developer" at an agency than as a "product engineer" or "software engineer" at a product company, so search both and let the better-paying framing be the one on your resume if it is true.

What to actually say: if the band is published, anchor to it rather than naming a number first ("your posted range is X to Y, and given the scope you have described I am targeting the upper half, with the usual flexibility on the mix of base and equity"). If it is not published, ask them for it, which is a normal question and in some jurisdictions one they are required to answer. If you are pushed for a number before you have one, give a range with a reason attached to scope, never a single figure. For contract work, quote a day rate rather than an hourly one, decide your minimum engagement length in advance, and get payment terms in writing before the first day.

One negotiating point that is particular to this title: when a full stack role also carries the infrastructure and the pager, that is two jobs, and it is reasonable to say so during the offer conversation. Ask what the on-call rotation is, whether it is compensated, and who covers when you are away. The answer predicts your next two years more accurately than the base salary does.

Working with AI in this role

What a full stack developer has to know about AI in 2026-27

Start with the honest calibration, because the hype and the observable change point in different directions for this role specifically. The common claim is that full stack work dies first, on the theory that it is mostly glue and glue is what assistants generate best. Half of that is true: the glue did get cheap. Scaffolding a CRUD resource across the schema, the endpoint, the types and the form used to be a day and is now minutes, and that was a real part of the differentiation this title used to carry. What did not follow is the predicted collapse in demand for the generalist. Small companies that could previously afford only a specialist can now get a whole feature from one engineer with good judgement, which makes the generalist seat more attractive, not less. The squeeze landed hardest at the entry level, because the half of the job that got cheap is precisely the half a junior used to be hired to do.

What that means in an interview is that the scarce skill moved to the seam. Agents now open pull requests that touch a migration, an endpoint and a component at once, and a change set like that is exactly where generated code fails in ways review catches and tests do not. The four defects worth being able to name without hesitation: an authorisation check that exists in the interface, where the button is hidden, but not on the endpoint, which still answers anyone who calls it; a migration that reads as routine and takes a lock on a large table; an N+1 introduced in a list loader because the generator did not know the relation was lazy; and type or contract drift where the server response changed and the client was updated to match in a way that is wrong for the one case nobody had a fixture for. If you can only remember one, remember the authorisation one. It is the most common, the most damaging, and the one an interviewer will respect you for naming unprompted.

There is also a category of work that barely existed two years ago and is now ordinary: taking a prototype somebody generated into production. A founder or a product manager ships something that demonstrably works, and the job is to put a real data model under it, add the authorisation it never had, replace the parts that only worked for one user, and make it deployable. It is unglamorous and it is paid work. If you have done it, it is a strong story in a hiring-manager round, because it is exactly the judgement the title now exists for.

The second real change is a body of new work rather than a subtraction, and it lands disproportionately on this role: shipping model-backed features end to end. Full stack engineers own the user-facing half of model latency, which is a genuine design problem and not a prompt problem. A response that takes fifteen seconds breaks every assumption the interface was built on, so you need streaming, partial render, a visible stop control, retry that does not duplicate work, and an honest representation of uncertainty rather than a spinner that implies a definite answer is coming. You also own the cost, because unlike a database query the per-request price is visible on an invoice and attributable to a user. None of this requires training a model. All of it requires being able to say what you did about streaming, queuing, caching, failure and cost, which is ordinary engineering wearing a new label.

On interview mechanics: ask in writing whether an assistant is permitted in each technical round, because the policy varies by company and sometimes between rounds in the same loop. Some teams now require you to use one and watch how you prompt, review and verify. Others disable it to see whether you can reason unaided. Be able to do both. In a take-home, state plainly what you generated and what you changed. Reviewers can usually tell, honesty costs nothing, and being caught costs the offer.

Reviewing a generated change set that crosses the schema, the API and the interface at once

This is the characteristic 2026 full stack defect and the reason the code review round appeared in these loops. A change set generated or agent-written across three layers will pass tests and look reasonable, then fail on an authorisation path nobody called directly, under concurrency, on a retry, or at production data volume. Review across the seam is now a named skill rather than a by-product of having written the code yourself.

Show it: Have one concrete story ready: a generated change you rejected or fixed, with the defect class named precisely and the consequence stated. In a review round, review out loud by category rather than reading top to bottom: authorisation enforced on the server, migration lock and backfill safety, transaction boundaries, error paths and what the user sees, N+1 and missing indexes, contract and type drift between server and client, secrets in logs, and unbounded queries or memory.

Authorisation that lives on the server, stated as a principle you can defend

The most common serious defect in machine-generated full stack code is a permission check implemented only where it is visible. The interface hides the control, the endpoint does not check, and the vulnerability ships. It is also a long-standing favourite of interviewers because it instantly separates people who have operated a multi-user system from people who have built single-user demos.

Show it: Say the frame plainly: the client decides what to show, the server decides what is allowed, and every endpoint re-derives the actor's permission from the request rather than trusting anything the client sent. Then name a mechanism you have actually used: ownership checks inside the query rather than after fetching, row-level security, a policy layer, or scoped tokens. In your own project, have one endpoint you can open and show the check on.

Serving model-backed features end to end, including the interface consequences of latency

A growing share of full stack postings include a model-backed feature, and the work is overwhelmingly ordinary backend and frontend engineering: streaming, queuing, retries, caching, failover between providers, and the interface states that a fifteen-second response forces into existence. Most candidates talk about prompts. Very few can describe the mechanisms, and the mechanisms are what the job consists of.

Show it: Name the mechanisms. Server-sent events or chunked streaming, and what that does to proxy and load balancer timeouts. Moving long inference to a queue with a job id and either polling or a webhook, and what the interface shows meanwhile. Idempotency so a retry does not bill the user twice. A visible stop control and what it cancels on the server. Per-user and per-request token cost, where you log it, and what you do when a provider rate-limits or fails.

Treating model output and tool results as untrusted input, especially at the render boundary

The moment a model can read a user-supplied document or call your tools, it is an untrusted input path straight into your application, and a full stack engineer owns both ends of that path. The specific failure for this role is rendering generated markdown or HTML into the page, which is the oldest injection class in web development arriving by a new route, plus tool calls that execute with more authority than the user who triggered them.

Show it: State it as a rule: model output is user input. Then give controls you have used. Sanitise and restrict generated markup before rendering, and never set raw HTML from a model response. Expose tools through a narrow, typed interface that re-checks the acting user's permission on every call rather than inheriting the model's. Validate structured output against a schema and fail closed. Never interpolate model output into SQL, a shell command, or a URL that is then fetched server-side.

Testing and evaluating behaviour that is not deterministic

A model-backed endpoint cannot be asserted against a fixed string, and the teams shipping these features without constant regressions are the ones that built an evaluation suite into CI. Being able to describe a real harness is a strong differentiator in 2026-27 interviews, because most candidates have only hand-tested.

Show it: Describe a concrete setup: a pinned set of cases with expected properties rather than expected text, scored by assertion, by a cheaper model acting as judge, or by sampled human review; a threshold that fails the build; and a record of which model version and prompt produced each result so a regression can be attributed. Add the cost and latency budget you tracked alongside correctness, because those regress too and nobody notices until the invoice arrives.

Working fast with an assistant without losing the ability to reason unaided

Employers assume you use one and are screening for two opposite failure modes: the engineer who is slow because they refuse the tooling, and the engineer who cannot explain the code they shipped. For a full stack role the second failure is more likely, because the tooling is strongest on exactly the cross-layer scaffolding that makes up a lot of the work. An interviewer will find it in one follow-up question.

Show it: State a defensible division and stick to it: generate the mechanical layer (forms, types, fixtures, clients, first-draft migrations, one-off scripts, test scaffolding) and own the parts where being wrong is expensive (the data model, authorisation, transaction boundaries, anything touching money or identity, and the interface states on the unhappy paths). Then be able to work a round without the assistant if asked, and explain every line of anything you submit.

What a screen is looking for

These are the terms that a resume screen, human or automated, is matching against for this role. Use the ones that are true of you, in the words the posting uses.

Mistakes that cost people this job

Listing thirty technologies with no tiers, so the interviewer picks the weakest one and discounts the rest.

Tier the list: primary, production experience, working knowledge. Three honest tiers read as self-aware and give the interviewer a safe place to go deep, which is where you want the conversation.

Claiming parity across the stack. "I am equally comfortable on the front and back end" sounds confident and reads as nobody's specialist.

Be deliberately asymmetric. Name one anchor layer you can be interrogated on for 45 minutes, say what you ship without a handoff on the other side, and name a specific thing you have not done. Depth at one end is what makes breadth believable at the other.

A portfolio of clones and tutorials: another chat app, another e-commerce demo, six half-finished repositories, a dashboard rendering seeded data.

One deployed application with real users, however few, and the awkward parts present: auth with a server-side permission check, a migration run against live data, background work, a visible error path, and a running cost. Tutorials stop before the awkward parts, which is exactly why the awkward parts are the proof.

Treating a freshly built CRUD application as the proof it was in 2022, when an assistant now produces one in an afternoon and the reviewer knows it.

Lead with operating history instead of feature count: how long it has run, who depends on it, what broke, what you changed so it could not break that way again. That is the part no generator can produce for you.

No live URL, or a link that has been taken down to save hosting costs while you are still interviewing.

Keep one thing running on a free or cheap tier for the duration of your search, and put the URL at the top of the README and the resume. A dead link reads as an abandoned project, which is the opposite of the signal you are paying for.

Preparing the design round as distributed systems at planetary scale, then getting asked to design commenting with mentions.

Prepare the product-shaped version: scope in a sentence, data model, API contract including the error responses, the full list of interface states, the first slice that could ship alone, and what you would measure after launch. Say the states out loud. Most candidates design only the happy path.

Guessing at causes in the debugging round instead of asking for evidence, then stopping at the first thing that is wrong without checking that it explains the symptom.

Reproduce first, then cut the problem in half (did the server return the wrong thing, or did the client display the right thing wrongly), then ask for named evidence: the waterfall entry, the response body, the server log line, the query count, the plan. One hypothesis at a time, and say what would disprove it.

Describing work without units. "Improved performance", "worked at scale", "built full stack features using React and Node".

Give the figure and the shape: "took the order history page from 4.1s to 380ms by replacing an N+1 with an eager load and a covering index". If you no longer have access, derive the numbers from row counts, the load balancer logs and the cloud invoice before you leave a job, and say "roughly" rather than inventing a precise one.

Searching only for the exact title "full stack developer", and applying only through portals.

Run product engineer, software engineer, application developer, web developer and the stack name as searches too, and include internal tools teams at non-technology employers, which are consistently under-applied-to. Then reach a human: a referral, or a short direct message to the hiring manager with one comparable thing you built and a URL that loads.

Over-engineering the take-home: adding Docker Compose, a message queue and a plugin architecture to a four-hour task, and running two days over the stated budget.

Follow the conventions already in the codebase, build what was asked, stop at the stated time, and write a short NOTES.md listing your assumptions, what you deliberately left out, and what you would do with another day. That file is often read before the code, and scope discipline is one of the traits being graded.

Submitting generated code you cannot explain, and not saying an assistant was used.

State plainly what you generated and what you changed, and be able to defend every line. Reviewers can usually tell, honesty costs nothing, and being caught costs the offer. Then be ready to work a round without an assistant, because some loops disable them deliberately.

Questions people ask

How do I pitch breadth as a full stack developer without sounding shallow?

A full stack developer sells breadth by being deliberately asymmetric instead of claiming parity. Name one anchor layer you can be questioned on for 45 minutes without running out of road, state what you ship on the other side without needing a handoff, and name a specific boundary yourself. For example: "I am strongest on the server side and can go as deep as you want on Postgres schema design and query performance. I ship the React side of every feature I build, including the data-fetching layer. I have not built a design system from scratch." A single undifferentiated list of technologies invites the interviewer to find the weakest claim, and finding one hollow claim discounts all of them.

What project convinces a hiring manager to interview a full stack developer?

Hiring managers interview a full stack developer on one deployed application with real users who are not you, even if there are only thirty of them, containing the parts tutorials stop before: authentication you implemented including a permission check enforced on the server, a schema with an index you chose on purpose, a migration run against live data, background work that survives a retry, an error path the user actually sees, error tracking you have read in anger, and a monthly running cost you can quote. In 2026 the application existing is not the point, because an assistant can produce one in an afternoon. The operating history is the point: how long it has run, who depends on it, and one cross-layer bug told in four moves with numbers at both ends.

Do I need a computer science degree to become a full stack developer?

No. No licence or degree is legally required to do this work in the US, UK, Canada or EU, and a large share of working full stack developers do not have one. A CS degree helps mainly at entry level, where large employers screen for it in high-volume graduate pipelines, and in some visa pathways. After roughly three years of professional experience it stops mattering almost everywhere, and what replaces it is an application you can describe at the level of its schema, its contract and its failure behaviour. A bootcamp certificate is not a credential; the portfolio it produced is the only part anyone reads.

How long does it take to become job-ready as a full stack developer?

A full stack developer is interview-ready from a standing start in roughly 12 to 24 months of building and operating real applications rather than following tutorials. That is longer than for a pure frontend or pure backend role because there is more surface you must be credible on, and because the differentiator is now judgement at the seam rather than the ability to assemble a CRUD application, which assistants do in minutes. Moving across from QA, support engineering, data analysis, IT or an existing single-layer developer seat is considerably faster, because you already have production context and a manager who can vouch for you.

What does a full stack developer interview consist of in 2026-27?

A full stack developer interview usually opens with a recruiter screen, then a technical screen that is most often a repository take-home or a 60 to 90 minute live feature build, then a loop of three to five rounds: a feature-build or pairing round that crosses layers, a product-shaped design round covering the data model, API contract and interface states, a cross-layer debugging round where you are given a browser symptom with a cause behind it, increasingly a code review round on a change set that touches a migration, an endpoint and a component at once, and a hiring-manager round. Large employers may add a timed online assessment of data structures and algorithms before any of it. Expect two to six weeks at a large employer, and sometimes one week at a startup.

Is AI replacing full stack developers?

Not at the core, but it removed a real part of what being a full stack developer used to be worth. Scaffolding a resource across the schema, the endpoint, the types and the form used to be a day's work and is now minutes, so demonstrating that you can wire a CRUD application no longer differentiates anyone. Demand for the generalist seat has not collapsed, and at small companies it has arguably strengthened, because one engineer with good judgement plus assistants can carry work that previously needed two people. The squeeze landed hardest at entry level, because the half of the job that got cheap is the half juniors were hired to do. What interviews test now is review across the seam: authorisation checks that exist in the interface but not on the endpoint, migrations that take a lock on a large table, N+1 queries introduced in list loaders, and type drift between server and client.

What should a full stack developer resume include?

A full stack developer resume opens with a two-line summary naming your anchor layer, your span and the thing you shipped. A tiered technology list (primary, production experience, working knowledge) rather than one flat list of thirty items. Bullets built as layer plus action plus number plus verification, for example taking a page from 4.1s to 380ms by replacing an N+1 with an eager load and a covering index. At most two projects, each with a live URL and one technical decision you can defend. Mirror the posting's literal framework and database names where they are true of you, because applicant tracking systems match strings. Cut skill bars, logo walls, objective statements, "passionate", "familiar with", and individually listed coursework.

How much do full stack developers earn, and where do I check?

Use the US Bureau of Labor Statistics Occupational Employment and Wage Statistics for Software Developers, SOC 15-1252, at bls.gov/oes for a defensible national and metropolitan baseline, then levels.fyi for public-company bands and the employer's own posted range. Many US states and cities now require a pay range in the posting itself, and the list has grown over time with staggered start dates, so check the current rule where you are applying: where it applies, the band is published before you speak to anyone. One effect specific to this title: the same work is often banded lower as "full stack developer" at an agency than as "product engineer" or "software engineer" at a product company, so search both titles.

Should I specialise instead, or stay full stack?

Stay broad early and anchor deep as you go. Breadth is most valuable in the first few years and at small companies, where owning a whole feature is the job and the learning rate is highest. Later, pay and level tend to follow demonstrated depth somewhere specific, which is why the strongest senior full stack engineers describe themselves as a specialist who ships the whole feature rather than as a generalist. You do not have to choose at the start: pick the layer where your evidence is strongest, keep shipping across the boundary, and let the anchor deepen with the work.

How do I get a first full stack job with no professional experience?

A first full stack developer job comes from employers that need a whole small system looked after rather than a pair of hands on a ticket queue, because the ticket-queue work is the part assistants absorbed. In practice that means internal tools and line-of-business teams inside non-technology companies (insurers, logistics, healthcare administration, universities, local government, manufacturing), small agencies, apprenticeship and graduate schemes, and contract-to-hire trials. The highest-probability route is sideways: join a company that employs engineers in any role you can get, QA, support, implementation or operations, build the internal tool nobody has time for, then ask to move. Apply with one deployed application that has real users and a URL that loads, and with the ability to look at a generated pull request and say that the authorisation check is in the component and not on the endpoint.

Put this on a resume in about a minute

Paste your history once and point it at the Full Stack Developer posting you are looking at. No account, no card.

Build my resume free More roles