Skills for Frontend Developers
Deep CSS, real JavaScript, and the performance bar that 2026 interviews set
Frontend development job postings oscillate between "must know React" and "must know the web platform" — and the best candidates know both. In 2026, the hiring bar has shifted: companies want engineers who understand why their code is slow, not just that it is. This guide covers what the actual technical screens test, which framework depth matters versus which is resume dressing, and the specific portfolio signals that distinguish senior frontend candidates.
Must-have
7
Nice-to-have
5
Emerging
3
HTML semantics and accessibility (ARIA, WCAG 2.1 AA)
technicalSemantic HTML is not a soft requirement — it determines whether your product works for assistive technology users, passes automated accessibility audits, and ranks in search. Hiring managers at companies with real accessibility commitments will screen for this; candidates who treat HTML as a layout primitive fail these screens.
How to prove it
Run axe DevTools or Lighthouse on a project you built and walk through every accessibility warning — what caused it, how you fixed it, and what tradeoff (if any) you made. Being able to explain a specific ARIA pattern (e.g., aria-live regions for dynamic content) in a technical interview is a differentiator.
Time to acquire
4-8 weeks of deliberate study plus auditing existing projects; MDN Accessibility documentation is the authoritative reference.
CSS (layout — flexbox, grid; cascade; specificity; custom properties)
technicalCSS is the skill most frontend developers underestimate and most interviewers probe. The gap between "can write CSS that looks right" and "understands why the cascade resolves the way it does" is where mid-level candidates fail at senior screens. Grid and flexbox are the foundation; understanding specificity, inheritance, and custom properties (CSS variables) is what separates depth from dabbling.
How to prove it
Recreate a complex UI component (a responsive navigation bar, a multi-column card grid with varying-height cards) without a CSS framework, in under 30 minutes, with accessible markup. Many frontend interviews include exactly this type of live task.
Time to acquire
4-8 weeks with deliberate exercises; "Every Layout" (free online) is the best resource for CSS layout fundamentals.
JavaScript core (closures, async/await, event loop, prototype chain)
technicalFramework knowledge is hired — JavaScript internals are what separate senior frontend engineers from people who can copy components. The specific things that get tested: the event loop (why setTimeout(fn, 0) doesn't mean "immediately"), closure behavior in loops, how async/await differs from Promise chains, and prototype-based inheritance. Getting these wrong in a technical screen is a fast-fail at senior levels.
How to prove it
Walk through a code snippet involving closures in a loop (the classic let/var gotcha) without running it — explain what the output will be and why. Then explain what the call stack and event loop are doing during a fetch() call. These two demos cover the most common JS internals interview failures.
Time to acquire
6-12 weeks of deep study; "You Don't Know JS" (free online) is the canonical resource for this layer.
React (hooks, state management, re-render optimization, component composition)
toolReact is the dominant framework in 2026 and being the default expectation at most companies. The hiring bar has moved past "can write a component" to "understands when components re-render and why, can design component APIs that do not cause prop-drilling nightmares, and knows when NOT to reach for useEffect."
How to prove it
Show a component you built, explain a re-render problem you fixed (with React DevTools Profiler as evidence), and describe the state management decision you made (local state, Context, Zustand, or something else) and why. Candidates who cannot explain a re-render optimization are screened out at most senior frontend roles.
Time to acquire
3-6 months to reach production-quality fluency; the React docs (react.dev) were completely rewritten and are now excellent.
Browser performance (Core Web Vitals, LCP, CLS, INP optimization)
technicalGoogle's Core Web Vitals (LCP, CLS, INP as of 2024) are ranking signals and user experience metrics that senior frontend engineers are expected to understand, measure, and improve. The ability to run a Lighthouse audit, interpret the results, and make targeted optimizations is now a near-universal expectation at product companies.
How to prove it
A Lighthouse audit result showing scores before and after an optimization you made — with a written explanation of what you changed and why it affected the specific metric. "I optimized performance" is not a signal; "I reduced LCP from 3.8s to 1.9s by lazy-loading the hero image and preloading the first viewport font" is.
Time to acquire
2-4 months of hands-on profiling and optimization on a real project.
TypeScript (type system, generics, discriminated unions)
technicalTypeScript adoption has crossed 60%+ in frontend codebases as of 2026 and is now the default at most companies using React. The hiring bar is not "can add type annotations" — it is understanding generics, discriminated unions for type-safe state, and how to write types that help rather than hinder the developer experience.
How to prove it
A TypeScript codebase with non-trivial types — a generic utility type, a discriminated union for component state, or a well-typed API response shape. Explain one decision where you chose to use an `as` cast and why it was acceptable, versus a case where you avoided it.
Time to acquire
2-4 months on top of JavaScript fundamentals; "Total TypeScript" (Matt Pocock) covers the advanced patterns most interviews probe.
Testing (Vitest, Playwright or Cypress, React Testing Library)
toolThe frontend testing bar has consolidated around: unit/component tests with React Testing Library (test behavior, not implementation), end-to-end tests for critical user flows with Playwright or Cypress. Engineers who write tests only in React Testing Library without ever touching a page-level test miss bugs in navigation, auth flows, and multi-step forms.
How to prove it
A test suite with at least one React Testing Library test that tests behavior (what the user sees and can interact with), one test that intentionally skips implementation details, and a Playwright test for a login or checkout flow. Explain what you chose not to test and why.
Time to acquire
4-8 weeks; the Testing Library documentation is excellent and sufficient for the component testing bar.
Next.js (App Router, server components, streaming, ISR)
toolNext.js App Router is the current production standard for React-based web applications and is explicitly required at an increasing share of frontend roles. The shift to server components changes where data fetching belongs and how you think about bundle size — candidates who have only used the Pages Router are working with outdated mental models.
How to prove it
A Next.js App Router project with at least one server component, one client component, one server action, and ISR configuration — deployed and publicly accessible. Explain the loading.tsx / error.tsx pattern and when you would use each.
Time to acquire
4-8 weeks after React fundamentals; the official Next.js docs and vercel.com/templates are the fastest path.
CSS-in-JS or utility-first CSS (Tailwind CSS)
toolTailwind CSS has become the dominant CSS strategy at product companies, particularly those building design-system-driven UIs. Hiring managers increasingly list it explicitly. The hiring bar: not just using the classes, but understanding when to extract a component, how to configure the theme, and when utility-first creates maintenance problems.
How to prove it
A project using Tailwind where you extended the config (custom colors, spacing tokens) rather than using defaults — and where the component structure is sensible rather than a wall of class names.
Time to acquire
1-3 weeks to reach proficiency; the Tailwind documentation is comprehensive and well-organized.
State management (Zustand, Jotai, TanStack Query)
toolRedux has been largely replaced in new codebases by Zustand and Jotai for client state, and by TanStack Query (React Query) for server state. Understanding the distinction between client state (UI state, user preferences) and server state (fetched data) is the architectural insight that informs this choice.
How to prove it
A codebase using TanStack Query for data fetching — showing query invalidation, optimistic updates, or background refetching — with an explanation of why you chose it over useState+useEffect.
Time to acquire
2-4 weeks per tool; TanStack Query documentation is the most complete.
Design-to-code accuracy (Figma reading, design token implementation)
domainFrontend developers who can take a Figma file and implement it pixel-accurately — including hover states, spacing tokens, and responsive breakpoints — reduce design-engineering friction and build trust with design teams. This is increasingly screened in take-home exercises.
How to prove it
A take-home or portfolio piece where you implemented a design spec — show the Figma (or similar) alongside your implementation. Point to one specific decision where you had to interpret an ambiguity in the design and how you handled it.
Time to acquire
2-4 weeks of deliberate practice with real design files.
Build tools and bundlers (Vite, webpack fundamentals, tree-shaking)
toolUnderstanding why your bundle is large and how to make it smaller — code splitting, dynamic imports, tree-shaking configuration — separates frontend engineers who can diagnose performance problems from ones who add flags hoping for improvement.
How to prove it
A before/after bundle analysis (using rollup-plugin-visualizer or webpack-bundle-analyzer) with a specific optimization you made and the size reduction it achieved.
Time to acquire
2-4 weeks; Vite documentation covers modern build tool concepts and is the current standard.
React Server Components and edge rendering
technicalThe mental model shift from "everything renders on the client" to "some components run only on the server" is where the Next.js 13+ and React 18+ ecosystem has moved. Engineers who understand which components should be server-only (data fetching, secure access) versus client-only (interactivity, browser APIs) will design faster, more secure UIs.
How to prove it
A Next.js App Router project where you can explain the server/client component boundary, why you chose to make a specific component a server component, and what would break if you moved it to the client.
Time to acquire
4-8 weeks with App Router hands-on work.
AI-assisted UI building (v0, Copilot for frontend, prompt-to-component patterns)
toolTools like v0.dev (Vercel), GitHub Copilot, and Cursor are changing how frontend code is written. Engineers who know how to prompt effectively for UI components — and then critically review and refine the output — ship faster. The skill is in the review and refinement, not the prompting.
How to prove it
Describe one component where you used an AI tool to generate the initial scaffold, then describe specifically what you changed and why — accessibility issues, incorrect state management, layout problems. Pure "AI wrote it" is not a signal; "AI generated it and I fixed these three things" is.
Time to acquire
2-4 weeks of deliberate integration into your workflow.
WebAssembly (WASM) for performance-critical browser code
technicalRelevant for companies building compute-intensive browser experiences: video editing, image processing, collaborative real-time documents, or game-adjacent products. Not a general frontend requirement but increasingly relevant at specific product categories.
How to prove it
A working WASM integration in a browser project — even a small one (image filter, audio processing) — with a performance comparison against a pure-JavaScript equivalent.
Time to acquire
4-8 weeks; Rust + wasm-pack is the most ergonomic entry point.
Certifications: what's worth it
Meta Front-End Developer Professional Certificate (Coursera)
Meta / Coursera • $200-$400 (Coursera subscription) • 80-120 hours over 6-9 months
A credible entry-level cert for career-changers. Covers HTML, CSS, JavaScript, React, and UX basics. The Meta brand is recognized and the curriculum is legitimate — but it does not go deep enough in any area to clear a senior technical screen. Worth it for a bootcamp graduate or career-changer who needs a structured path and a recognizable credential. Not worth it if you already have 1+ year of frontend experience.
W3Schools Frontend Development Certification
W3Schools • $95 • 10-20 hours
Essentially unrecognized by hiring managers at companies with serious engineering cultures. The W3Schools brand has weakened significantly as MDN became the authoritative reference. Save the money; the time is better spent building a portfolio piece.
freeCodeCamp Certifications (Responsive Web Design, JavaScript Algorithms)
freeCodeCamp • Free • 100-300 hours per certificate
Legitimate for building foundational skills and the project-based requirements produce real portfolio pieces. The certifications themselves carry limited signal to hiring managers — but the portfolio projects you build to earn them do. Complete the projects, publish them, and let the work speak for itself rather than leading with the certificate.
Google UX Design Certificate (Coursera)
Google / Coursera • $200-$400 • 80-120 hours over 6 months
Useful for frontend developers who want to move into design-engineering or product design roles — it covers Figma, design thinking, and user research. Not a frontend engineering credential per se. Worth it if your goal is to differentiate as a design-savvy frontend engineer.
AWS Certified Developer – Associate
Amazon Web Services • $300 • 40-70 hours prep
Rarely relevant for pure frontend roles. Frontend developers who deploy with Vercel, Netlify, or Next.js don't need AWS cert-level infrastructure knowledge. If you are in a full-stack or frontend-plus-infrastructure role, there is marginal value. For pure frontend work, this time is far better spent on accessibility, performance, or TypeScript depth.
ATS keywords that get frontend developers through screening
Group these correctly on your resume. The wrong section placement costs you the match.
Frameworks and libraries
Where on resume: List frameworks in Technical Skills AND use them in context in bullets. "Built a Next.js App Router application serving 100K monthly users" is higher value than "Next.js" alone in a skills list.
Why it matters: React is the most-filtered-on keyword in frontend job postings. Missing it (or listing only a minor framework) causes automatic filtering at most product companies.
Core web technologies
Where on resume: Use web accessibility and WCAG in a bullet with context, not just as a skill tag. "Audited and remediated 23 WCAG 2.1 AA violations in the checkout flow" is a strong bullet.
Why it matters: "Responsive design" and "CSS" are baseline must-haves. Missing them suggests very limited experience to ATS systems.
Build tools and performance
Where on resume: Performance keywords are differentiators — most resumes do not include them. A bullet with a specific Core Web Vitals improvement stands out in automated scoring.
Why it matters: Senior frontend roles increasingly filter on performance-related terms. Missing them positions you as a junior-to-mid candidate.
Testing tools
Where on resume: Name specific tools rather than generic "testing." "Playwright" is more ATS-effective than "E2E testing."
Why it matters: At senior levels, missing testing keywords signals an engineer who cannot write maintainable code — a fast filter at quality-conscious companies.
Collaboration and tooling
Where on resume: "Design systems" and "Storybook" are differentiators for mid-to-senior frontend roles. Include them if you have built or maintained component libraries.
Why it matters: Figma is a near-universal expectation for frontend roles that work with design teams. Missing it signals isolation from the design-engineering workflow.
How to weave these skills into resume bullets
Demonstrates: Performance optimization (Core Web Vitals)
Improved website performance.
Reduced LCP from 4.1s to 1.7s on the homepage by lazy-loading below-the-fold images, converting the hero to WebP format, and preloading the critical web font — improving Lighthouse performance score from 54 to 91 and reducing bounce rate by 14%.
Demonstrates: React and TypeScript
Built React components for the product.
Designed and built a reusable data table component in TypeScript with sorting, filtering, and virtualized rendering for 10K+ rows — used across 7 product pages, reducing duplicate implementation from 4 separate codebases and cutting table-related bug reports by 60%.
Demonstrates: Accessibility
Made the website more accessible.
Led an accessibility audit of the core product (axe DevTools + manual screen reader testing) identifying 31 WCAG 2.1 AA violations; remediated 28 within one sprint including keyboard trap in modal dialogs, missing skip-nav link, and 14 form label associations — bringing the product to AA compliance ahead of a government contract requirement.
Demonstrates: Next.js and server components
Used Next.js to build the frontend.
Migrated the marketing site from Next.js Pages Router to App Router with full server component architecture — reducing client-side JavaScript bundle from 340KB to 87KB, dropping TTFB by 38%, and achieving a Lighthouse score of 97 on the main landing page.
Demonstrates: Testing coverage
Wrote unit tests for frontend components.
Established component testing standards for a 12-engineer frontend team using React Testing Library and Playwright; grew test coverage from 18% to 74% over 6 months, with three critical regression bugs caught by new tests before reaching production.
Portfolio signals that work for frontend developers
A public Next.js App Router project with documented server/client component architecture, Lighthouse score above 90, and deployed to a real URL
Why: Hiring managers in 2026 look at whether candidates have worked with App Router specifically — it signals current knowledge. A high Lighthouse score is verifiable proof of performance knowledge that cannot be faked.
How to build it: Build a content-heavy project (a personal blog, a recipe site, a documentation site) with Next.js App Router. Use server components for data fetching, client components only where interactivity is needed. Deploy to Vercel. Run Lighthouse, fix anything below 90, and document your optimizations in the README.
An accessibility audit write-up for a real website — before/after screenshots, specific violations, specific fixes
Why: Accessibility knowledge is consistently over-claimed and under-demonstrated. A written audit with specific WCAG criterion citations and before/after evidence is rare and immediately differentiating for accessibility-conscious employers.
How to build it: Run axe DevTools against any publicly accessible website (your portfolio, a side project, or a public site with appropriate context). Document each violation: which WCAG criterion, why it fails, and the specific HTML change that fixes it. Share as a blog post or GitHub issue.
A published component library or Storybook that other people have starred, forked, or installed
Why: Real adoption is the strongest proof of code quality and API design. A component library that other developers choose to use signals that your abstractions are useful, your documentation is clear, and your code is maintainable.
How to build it: Start small: publish one genuinely useful component to npm (a date picker, a virtualized list, a Toast notification system). Add Storybook stories, accessibility tests, and a README with clear examples. Promote it in the relevant communities.
A before/after performance case study with Lighthouse screenshots, DevTools recordings, and bundle analysis — for a production website
Why: Performance claims without evidence are common and dismissed. Evidence — actual tool output, actual before/after numbers — is rare and compelling. It demonstrates both the analytical ability and the tooling fluency that senior roles require.
How to build it: Take your own portfolio or a side project with a performance problem. Capture a Lighthouse report and a Chrome DevTools performance recording before any changes. Make one targeted change (lazy load images, preload a font, code-split a route). Capture again. Write up the delta.
Where to actually learn this
You Don't Know JS (Kyle Simpson) — free on GitHub
book • freeThe most thorough treatment of JavaScript internals available for free. Covers the event loop, closures, prototypes, and async patterns at the depth that senior technical interviews probe. Not a tutorial — a deep reference.
Best for: JavaScript core skills; must-have tier.
react.dev (official React documentation)
documentation • freeThe React team completely rewrote the documentation in 2023. It now covers hooks, the mental model for state, and common mistakes with useEffect at a depth that most blog posts do not reach. Read the "Thinking in React" and "Escape Hatches" sections thoroughly.
Best for: React hooks and component patterns; must-have tier.
Every Layout (Heydon Pickering and Andy Bell)
book • paidThe best resource on intrinsic CSS layout — flexbox and grid beyond the basics, with explanations of why the layout algorithms work the way they do. More durable than framework-specific tutorials because it teaches the underlying model.
Best for: CSS layout fundamentals; must-have tier.
Total TypeScript (Matt Pocock)
course • mixedThe most practical TypeScript training for working React developers. Covers generic types, conditional types, discriminated unions, and template literal types through hands-on exercises. The free workshops alone cover 70% of what interview screens test.
Best for: TypeScript depth; must-have tier.
web.dev (Google's web platform documentation)
documentation • freeGoogle's authoritative reference for Core Web Vitals, performance patterns, and modern browser APIs. The performance section is the best free resource for LCP, CLS, and INP optimization with real measurement guidance.
Best for: Browser performance optimization; must-have tier.
Testing Library documentation (testing-library.com)
documentation • freeCovers the philosophy and implementation of behavior-driven component testing. The "common mistakes" article by Kent C. Dodds covers the anti-patterns that most candidates reproduce from outdated tutorials.
Best for: Frontend testing; must-have tier.
Next.js official documentation and App Router walkthrough
documentation • freeThe App Router section was rewritten and is significantly better than the Pages Router docs. The "Data Fetching" and "Rendering" sections explain the server/client component mental model with code examples and interactive diagrams.
Best for: Next.js App Router; nice-to-have tier.
MDN Web Docs Accessibility Guide
documentation • freeThe ARIA authoring practices guide and the WCAG understanding documents are essential reading for anyone serious about accessibility. MDN accessibility documentation is more practical than the W3C spec itself.
Best for: Web accessibility; must-have tier.
Patterns.dev (JavaScript and React patterns)
documentation • freeA free, visual reference for design patterns relevant to frontend development: rendering patterns (SSR, SSG, ISR, CSR), JavaScript patterns (module, singleton, observer), and React-specific patterns. Good reference before senior interviews.
Best for: Architectural patterns; nice-to-have tier.