A React CV is usually read quickly, often by someone deciding whether to open your GitHub profile or book a technical call. What they are looking for is narrow: which parts of React you have used in production rather than in a course, and whether you have owned a feature end to end rather than only picking up tickets.
The mistake most React CVs make is listing the framework and stopping there. "React, Redux, TypeScript" tells a reviewer very little, because almost every applicant writes it. What separates a strong CV is the sentence after the stack: which screens you built, what problem a state or data-fetching choice solved, what the performance was before and after your work, and what broke when you got it wrong.
This example is written for a mid-level developer with roughly four years of experience. If you are earlier in your career, move Projects above Professional Experience and let two or three well-documented builds carry the CV.
Opens in the editor with this content already filled in, so you can replace it with your own.
Arjun Mehta
Front-End Developer · React & TypeScript
arjun.mehta@example.com+44 7700 900112Manchester, United Kingdomlinkedin.com/in/example-arjun-mehtagithub.com/example-arjunmehta
Profile
React and TypeScript developer, four years in, currently maintaining a Next.js property search used by three internal teams through a shared Storybook library. Recent work: typing an untyped listings API at the boundary so a renamed field fails in CI, and halving first render on the listing page behind a Lighthouse CI budget that keeps it there. Happy owning a feature from design review to rollout, and happy to be the person who writes the Playwright spec for it.
Tailwind CSSCSS ModulesRadix UIStorybookWCAG 2.2 AA
Testing
JestReact Testing LibraryPlaywrightMSW
Build & Delivery
ViteWebpackGitGitHub ActionsVercelLighthouse CI
Professional Experience
Front-End DeveloperFebruary 2023 – Present
Northgate Property Group · Manchester, United Kingdom
–Rebuilt the property search interface in Next.js and TanStack Query, replacing a jQuery page that had grown to 4,000 lines and was the source of most front-end bug reports.
–Halved time to first meaningful render on the listing page: code-split a 610 KB map bundle behind an intersection observer, moved two analytics scripts to after hydration, and served hero images through next/image. Lighthouse CI now fails the build if the mobile performance score falls below 85, so the win does not quietly erode.
–Typed every response from the listings API with generated TypeScript types and validated them at the boundary, so a renamed back-end field now fails in CI instead of in production.
–Designed and shipped a shared component library in Storybook, now used by the search, agent portal and marketing teams; new landing pages went from roughly two days to half a day.
–Introduced Playwright coverage for booking, enquiry and sign-in, which caught three regressions before release in the first quarter.
Junior Front-End DeveloperJuly 2021 – January 2023
Brightloom Digital · Leeds, United Kingdom
–Built customer-facing screens for four client projects in React and Redux Toolkit, working directly with designers on component specs.
–Migrated a 60-component codebase from JavaScript to TypeScript over two quarters, agreeing a strict-mode rollout order with the team rather than converting everything at once.
–Reduced the main bundle by 310 KB by replacing moment.js with date-fns and removing three unused chart libraries.
–Took over front-end code review for the team after six months and wrote the review checklist still in use.
ReactRedux ToolkitTypeScriptJestWebpack
Web Development InternJanuary 2021 – June 2021
Civic Loop CIC · Leeds, United Kingdom
–Built a volunteer sign-up flow in React used by around 600 people during a city-wide recruitment drive.
–Wrote the first set of component tests for the codebase and set up the GitHub Actions workflow that ran them.
ReactJavaScriptJest
Selected Projects
Fieldnote
Creator and maintainer
–An offline-first note-taking app for site surveyors, built with React, IndexedDB and a service worker for full offline use.
–Handles conflict resolution when two devices edit the same survey, using a last-writer-wins strategy with a visible change log.
–Around 900 monthly active users; roughly 40 issues triaged and closed since launch.
ReactTypeScriptViteIndexedDBWorkbox
github.com/example-arjunmehta/fieldnote
form-guard
Author
–A small hook library for accessible form validation: announces errors to screen readers, labels fieldsets and returns focus to the first invalid field.
–Written after solving the same three problems on two client projects; documented with a page on when to validate on blur versus on submit.
ReactTypeScriptTesting Library
github.com/example-arjunmehta/form-guard
Education
BSc (Hons) Computer ScienceSeptember 2017 – July 2020
University of Leeds · Leeds, United Kingdom
–Final-year project: a browser-based visualiser for sorting algorithms, marked at 78%.
Upper Second Class (2:1)
Certifications
Meta Front-End Developer Professional CertificateApril 2022
Coursera
Web Accessibility (W3Cx)September 2023
edX
Languages
EnglishNative
HindiC1
GujaratiB2
React Developer example on the Developer layout. All details are fictional and shown for demonstration only.
What recruiters expect
Before writing anything, it helps to know what the person reading is checking for. In this field that is usually a short, specific list:
Production React, not tutorial React: routing, data fetching, caching, error handling and forms in a codebase other people also work in.
A clear position on TypeScript. Many React teams now write typed code by default, so expect to be asked how you type component props and API responses.
Evidence that you understand rendering: why a component re-renders, how you found a slow one, and what you changed.
Testing that goes beyond snapshots. Naming a testing library is weak; describing what you test and why is strong.
Some sense of how your work reached users: build pipeline, preview deploys, feature flags, release cadence.
Recommended CV structure
This is the running order the example uses. It is a starting point rather than a rule, but the order reflects what tends to be read first in this profession.
Profile — Three or four lines positioning you for the role.
Technical Skills — Grouped skills, for example "Languages" and "Tooling".
Professional Experience — Paid roles, in reverse chronological order.
Selected Projects — Work you built, with outcomes and the stack used.
Education — Degrees, diplomas and school-leaving qualifications.
Certifications — Completed certifications with the issuing body.
Languages — Spoken languages with CEFR levels.
Sections worth adding
Open Source — Worth adding only if you have merged pull requests you can point to. Link to the pull requests themselves, not the profile, and describe what each one changed.
Awards — Only if the award is technical - hackathon wins age quickly after your second job.
Community — Meetup talks and mentoring read well for senior roles where you will be expected to raise the team.
Skills worth including
Grouped rather than listed in one block. Grouping makes a long list readable and shows that you can tell the difference between the things you use daily and the things you have touched.
Beyond the technical list: Code review, Pairing with designers, Writing technical specs, Mentoring junior developers, Estimating and scoping. These belong inside your experience bullets, demonstrated, rather than in a list of adjectives.
Core React knowledge versus ecosystem tools
React adverts often list a dozen tools, but technical interviews tend to test a much smaller core. Put the core where it can be seen, and name ecosystem tools only when you have used them for something you can describe. The split below is a working convention rather than an official definition - teams draw the line in slightly different places.
The core: expected, and tested in interview
Components, props and composition — show a component you designed for other people to reuse, and the props you chose to expose or deliberately left out.
State and hooks — useState, useReducer, useEffect and custom hooks. The convincing evidence is a hook you extracted, or an effect you removed because it never needed to be one.
Rendering behaviour — why a component re-renders, keys in lists, and memoisation used where profiling justified it rather than everywhere.
Forms and events — controlled and uncontrolled inputs, validation timing and error messages a screen reader announces.
TypeScript with React — typed props, events and API responses, including what happens when the API changes shape.
Testing components — behaviour-level tests that click and type like a user, rather than snapshots that fail on every restyle.
The ecosystem: name it when it is true and relevant
Next.js or React Router in framework mode — name it when the role is server-rendered or search-sensitive, and say which rendering approach you used and why.
TanStack Query, SWR or Apollo Client — worth naming when caching server data was part of the work - attach it to the problem it solved.
Redux Toolkit, Zustand or similar — list the ones you have shipped with. The library named in the advert matters more than how many you know.
Tailwind CSS, CSS Modules or CSS-in-JS — one line is usually enough, unless the role is design-system work where styling architecture is the job.
Vite or Webpack — worth a bullet only if you changed the build: a migration, a bundle reduction, a faster pipeline.
Storybook, Playwright, MSW — component documentation, end-to-end tests and API mocking. Tie each one to a result rather than listing it.
If an ecosystem tool appears in the advert and you have used it, mirror its exact name. If you have not, leave it off. A missing ecosystem tool is usually learnable on the job; a listed tool you cannot discuss tends to surface quickly in a technical interview.
Example professional summary
Three or four lines, positioned for the role rather than describing your personality. Two versions you can adapt:
React and TypeScript developer, four years in, currently maintaining a Next.js property search used by three internal teams through a shared Storybook library. Recent work: typing an untyped listings API at the boundary so a renamed field fails in CI, and halving first render on the listing page behind a Lighthouse CI budget that keeps it there. Happy owning a feature from design review to rollout, and happy to be the person who writes the Playwright spec for it.
React developer focused on accessible, well-tested interfaces. Experience across Next.js, TanStack Query and Tailwind CSS in a codebase of around 90,000 lines, with a habit of leaving the parts I touch better documented than I found them.
Writing your experience
The difference between a CV that gets a call and one that does not is almost always in the bullet points. Each pair below shows a real rewrite of the kind of line that appears on most CVs in this field.
Weak
Used React hooks to fetch data.
Stronger
Replaced hand-written useEffect fetching on the search page with TanStack Query, removing duplicate requests on every filter change and the stale-results bug behind most of that page’s support tickets.
Hooks are the baseline. What a reviewer wants is a data-fetching decision and the concrete problem it removed.
Weak
Optimised React components for performance.
Stronger
Profiled the results list with the React DevTools Profiler, found each filter change re-rendering all 200 cards, and fixed it by virtualising the list and moving filter state out of a page-wide context.
Reaching for memo everywhere is the reflex answer. Showing the diagnosis before the fix is what interviewers probe for.
Weak
Worked on the Next.js migration.
Stronger
Moved the account area from a client-rendered app to Next.js route by route, running both behind one domain for eight weeks and fixing the hydration mismatches caused by locale-dependent dates and browser-only storage.
A migration bullet needs the approach and the risk you handled, not just the destination.
Weak
Handled errors in the checkout.
Stronger
Added route-level error boundaries with a fallback UI to checkout, so a failing recommendations widget no longer blanked the whole page, and attached the component stack to every error report.
Names a React-specific mechanism, the failure it contained, and how the team would find the next one.
Taken from the example
The sample CV for this profession is fully written. A few sections from it, so you can see the level of specificity that works:
Experience
Front-End Developer, Northgate Property Group
Rebuilt the property search interface in Next.js and TanStack Query, replacing a jQuery page that had grown to 4,000 lines and was the source of most front-end bug reports.
Halved time to first meaningful render on the listing page: code-split a 610 KB map bundle behind an intersection observer, moved two analytics scripts to after hydration, and served hero images through next/image. Lighthouse CI now fails the build if the mobile performance score falls below 85, so the win does not quietly erode.
Typed every response from the listings API with generated TypeScript types and validated them at the boundary, so a renamed back-end field now fails in CI instead of in production.
Designed and shipped a shared component library in Storybook, now used by the search, agent portal and marketing teams; new landing pages went from roughly two days to half a day.
Projects
Fieldnote — An offline-first note-taking app for site surveyors, built with React, IndexedDB and a service worker for full offline use.
form-guard — A small hook library for accessible form validation: announces errors to screen readers, labels fieldsets and returns focus to the first invalid field.
Education
BSc (Hons) Computer Science, University of Leeds — Upper Second Class (2:1)
Certifications and registration
Meta Front-End Developer Professional Certificate — Coursera
Web Accessibility (W3Cx) — edX
Common mistakes
A skills list that is really a syllabus
Thirty technologies with no grouping suggests exposure, not competence. Group them by what you would reach for unprompted, what you have shipped with once, and what you have only read about - then publish the first group and put the second inside the role where it happened. The third group is not a skill yet. A reviewer who picks the weakest item on the list and asks about it is doing the normal thing, and the list is where you choose which item that will be.
Treating the framework as the skill
Next.js, Redux and Tailwind sit on top of React. A CV that lists all three but never shows a component decision, a state decision or a rendering fix leaves the core unproven.
Claiming full-stack because you once touched an endpoint
If the role is front-end, depth beats breadth. Mention back-end work under the relevant job rather than restyling yourself as a full-stack engineer.
Portfolio links that 404
Front-end demos rot faster than the code behind them: a free hosting tier expires, an API key is revoked, a dependency stops building on the platform's current Node version. The link is the one claim on your CV a reviewer can test in two seconds, so check each one on the day you apply, and where a demo cannot stay up, link the repository and say what the screenshots show instead.
Describing the scaffold instead of the app
"Built with Create React App" says how a project started, not what it does. Describe the product and the problems you solved; mention the tooling only if changing it was the work.
ATS considerations
Applicant tracking systems behave differently by sector, and generic advice is often wrong for a given field. These points are specific to react developer applications:
Write "React" as a standalone word somewhere in the skills section. A recruiter searching a candidate database may type the exact token, and not every search expands "ReactJS" or "React.js" to match it.
Keep framework names out of image-only logos or skill bars. A rating out of five is unreadable to a parser and unconvincing to a human.
Spell out both forms once where they differ in the wild: "CI/CD (continuous integration and delivery)", "UI/UX".
If the advert names a specific state library, mirror its exact wording in your CV where it is true - "Redux Toolkit" and "Redux" can be searched as different terms.
Put your GitHub as plain text as well as a link. Some parsers keep the anchor text and drop the address.
The Minimal ATS layout is built for this, and the ATS guide covers what parsers do to a file in more detail.
Guides that go deeper
This page applies general CV advice to one field. The full treatment of each part is here:
How to Write a Software Developer CV — What technical reviewers look for, why the stack list is not enough, and how to write about work you cannot show.
How to Describe Work Experience — The difference between listing duties and demonstrating impact, and a repeatable way to rewrite any weak bullet point.
How to List Skills on a CV — Group them, be specific, and cut anything you would not want to be interviewed on for ten minutes.
How to Make an ATS-Friendly CV — What applicant tracking systems do to your file, the four failures that matter, and which of the usual claims about them anybody can actually stand behind.
Questions about react developer CVs
Should I list Next.js separately from React?
Yes, if you have used it. Next.js is a framework built on React with its own concerns - routing, server rendering and caching - and adverts often ask for it as a separate requirement. List it only if you can explain which rendering approach you used on a page and why.
Is Create React App experience still worth mentioning?
The React team deprecated Create React App for new apps in February 2025 and now recommends starting with a framework, or a build tool such as Vite. Having used it is not a negative, but the scaffold is rarely the interesting part. Describe the app. If you migrated a project off it, that is a strong bullet in its own right.
My React experience is mostly class components. Is that a problem?
Maintaining an older codebase is real work, so describe it plainly. Most new React code is written with function components and hooks, so show that side somewhere too - a component you converted, or a project built that way.
Does React Native count as React experience?
It shares the component model and hooks, but it targets a different platform with different constraints. Keep it as its own line or role rather than merging it into web React, so a reviewer can see which one you are strongest in. The mobile app developer example covers that side.
Should I say which React version I have worked with?
Only when it carries information. A bare version number says little; "shipped forms using React 19 Actions" says something specific. React 19 has been the stable major version since December 2024, so a CV that only mentions older patterns may prompt a question about recent work.