The seam is the job
A developer who knows React but has never designed the API behind it builds front
ends that are awkward to serve. A developer who writes APIs without having
consumed one writes endpoints that are awkward to use.
Full stack value is not two skill sets stacked on top of each other. It is
understanding the boundary — what belongs on the server, what the client can be
trusted with, where validation must be duplicated and where it must not,
what shape of response makes the interface simple.
That understanding is also what interviews probe once you are past the syntax
round.
What is tested at each level
Fresher. JavaScript fundamentals — closures, async, the event loop. A small
build task. Basic SQL. Whether you can explain your own project.
One to two years. API design, database modelling, authentication approaches
and their trade-offs, testing strategy. Debugging something under observation.
Three years and beyond. System design. Caching, scaling, failure modes,
migration strategy. Increasingly, judgement about what not to build.
Preparing for the wrong level is a common and expensive mistake. A fresher
studying distributed systems while shaky on closures is optimising the wrong
thing.
The portfolio that works
Three applications, deployed, with public repositories.
Deployed matters more than it sounds. An application that runs only on your
laptop is hard to discuss, because the interesting problems — environment
configuration, secrets, a database that behaves differently in production — are
exactly the ones you avoided.
Each repository should have a README explaining the problem, the architecture and
one decision you would make differently now. That last part reads as maturity
and very few candidates include it.
Code generation has changed the entry-level landscape. Producing a working CRUD
application is no longer evidence of much.
What it has not changed: knowing why the generated code is wrong, choosing
between two valid designs, debugging a failure that only appears under load, and
being accountable for what ships. Those were always the actual job; they are now
a larger share of it.
The practical implication for someone learning is to spend less time on
production speed and more on comprehension — reading unfamiliar code, reasoning
about failure, understanding what the framework is doing underneath.