Senior Design System Engineer (London)
About Fresha
Fresha is the leading AI-powered operating system for the global beauty and wellness industry, giving businesses everything they need to run smarter, grow faster and build stronger client relationships.
In May 2026, Fresha secured an $80M growth investment from KKR at a valuation of $1B, officially reaching unicorn status and bringing total funding raised to $285M. Already profitable, Fresha is using this investment to accelerate global expansion and drive the next generation of AI and product innovation.
Today, Fresha operates at global scale, with offices across Europe, North America, the Middle East and Asia Pacific. Our platform is trusted by 130,000+ beauty and wellness businesses across 120 countries, with more than 1.5 billion appointments booked to date.
Our mission is simple: help beauty and wellness businesses grow by giving them the technology they need to attract clients, manage their operations and run their business in one place.
We’re continuing to scale rapidly across markets, teams and products, making this an exciting time to join us.
Role Overview:
Senior Design System Engineer | The Bower, 207-211, Old St, Tower, London EC1V 9NR | Four days in office, Wednesday's remote
You'll join the Design System team and report to its Team Lead. The team owns Fresha's two design systems, one for the partner app businesses use and one for the consumer marketplace, and each runs across three platforms: web, iOS and Android. This role is primarily web-focused. Your users are the product engineers, designers and agents who build every screen our customers see.
The design system's customer is changing. It used to be an engineer reading docs and importing components. Increasingly it's an agent, and through agents, anyone: designers and PMs shipping UI that used to need an engineer. A component library with documentation isn't enough for that world. We're building the machine that produces Fresha UI: components and tokens that are the canonical source of truth, one interface agents can query, and quality gates that make a machine-authored change safe to land.
Humans still set taste and direction; the system enforces them. What Fresha looks and feels like, what a good component API is, and what bar a change must clear matter more as more people and agents author UI, because they're encoded once and enforced everywhere.
This is an engineering role first. You'll write production code most days, and you'll judge your work by whether product teams ship accessible, consistent Fresha UI without needing to ask us how.
This role is a decision to specialise. We're hiring a T-shaped engineer who wants to make design systems their craft: to go deep on component architecture, tokens and styling, with the breadth to own everything around them. The team owns the whole machine, so you'll move between a component API, a CI workflow, a sync script and an AI workflow in the same week, and you'll measure your impact through every team that builds on your work rather than through a single feature.
What You'll Do
Build the foundations: Design and ship the components, primitives, tokens and patterns every Fresha surface is built from, from a single button up to pages, layouts, navigation and motion. Keep their APIs consistent and hard to misuse, and keep web, iOS and Android in step so a decision means the same thing wherever it ships.
Build for every language: Fresha ships in 30+ languages, including right-to-left languages such as Arabic and Hebrew. Make sure components handle RTL layout, text expansion and locale-aware formatting, so product teams get internationalisation right by default.
Build the quality gates: Accessibility checks, visual regression, lint rules and tests that make accessibility the default and let a change from any author, human or agent, land with confidence.
Make the system legible to agents: Treat component data, usage guidance and examples as a product agents consume, through our design system CLI. Measure whether agents use it well, and improve it when they don't.
Close the gap with design: Work with designers so Figma and code describe the same system, and a design can become production UI with as few hand-offs as possible.
Work with your users: Sit with product teams, find where the system slows them down, and fix it. If using the design system well requires talking to us, the interface has failed.
Run the machinery: Own the infrastructure that keeps the system moving: sync scripts between Figma and code, CI workflows, package publishing and dependency management, and the AI workflows that build and check UI.
Retire what came before: Migrate product code off legacy components and styling, with codemods and tooling rather than tickets on other teams' boards.
Our stack: On web, where this role focuses, React and TypeScript, styled with Panda CSS and built on React Aria for accessible behaviour. Components are developed in Storybook and tested with Vitest and Playwright, including visual regression. The toolchain is pnpm, Turborepo and Oxlint, with CI on GitHub Actions. On iOS and Android, the design systems are built in Swift and Kotlin. Design lives in Figma, linked to code with Figma Code Connect.
What We're Looking For
Experience: 7+ years building frontend software in production. Time spent on a design system or shared component library that other teams depended on is a strong plus.
AI first: AI is your default way of working, not an add-on. You use AI coding tools day to day and build your own workflows around them. You keep up with new developments in AI and have opinions on which models and tools are best. You understand how an agent harness works (context, tools, skills, hooks) and have customised one to steer its results. You're interested in what a design system looks like when agents are among its main users.
React and TypeScript, deeply: You design component APIs that are consistent and hard to misuse, and you know the trade-offs between composition, configuration and escape hatches.
CSS at the system level: You understand styling architecture, theming, tokens, and how styles behave at scale, not just how to make one screen look right.
Accessibility: You don't need the specs memorised, but you know what WCAG and ARIA cover, can spot when a component might fall short, and know how to check.
Internationalisation: You understand what it takes for UI to work across languages and scripts: RTL layout and mirroring, logical CSS properties, text expansion, and locale-aware dates, numbers and currencies.
Design fluency: You're comfortable in Figma, speak designers' language, and have opinions on what should be built and how design and code stay in sync.
Systems thinking: You think about the system, not the screen. You build for many users you'll never meet, you weigh how one decision ripples across every consumer, and you care about sensible defaults, clear errors, fast and trustworthy tests, careful migrations and versioning.
Generalist under the hood: You're happy outside React. You can write and debug a sync script, a CI workflow or an AI workflow, and you understand package managers, workspaces, publishing and versioning well enough to keep a multi-package repo healthy.
Communication and EQ: You work closely with engineers, designers and stakeholders across the business, so you communicate clearly, listen well and build strong working relationships.
Nice to have
Zero-runtime or atomic CSS: Experience with Panda CSS, StyleX or Tailwind.
Native experience: Hands-on Swift or Kotlin, since our design systems also ship on iOS and Android.
Ways in
There's no single route into this role. Any of these is a good sign:
You've built or run a shared component library or token system that other teams depended on, and lived with the consequences of its decisions.
You've been the one on a product team who fixes the shared components, pushes for consistency, or builds the tooling everyone else uses.
You've led a migration across many codebases (a framework, a styling approach, a major version) and made it land without stalling other teams.
You've built AI workflows or agent tooling (skills, harness customisation, evals, or a pipeline that turns designs into code) that other people use.
At Fresha, we value passion and potential as much as specific skills. If you're enthusiastic and eager to learn, we encourage you to apply, even if you don't meet every listed requirement.
Your Opportunity at Fresha
Room to specialise: A team whose whole job is design systems, so you can go deep on the craft instead of fitting it around feature work.
Your work is on every screen: Two design systems across web, iOS and Android sit under the partner app and the marketplace, used by 130,000+ businesses and their clients in 30+ languages.
Your users sit next to you: Product engineers and designers who'll tell you within a day whether what you built helps.
A design system for the agent era: Agents are already building UI against our system in daily use. You'll shape what a design system means when they're among its main users.
Foundations already laid: One styling path, an accessibility baseline and an agent interface are in place. The next step is building on them, not arguing about them.
Interview Process
Screen Stage - Video call with a member of the Talent Team (30min)
1st Stage - Video/in-person interview with the Hiring Manager (60min)
Tech Stage - Video/in-person interview with the Hiring Team (up to 2 hrs)
Final Stage - Video/in-person interview with the CTO (up to 30min)
Inclusive workforce
At Fresha, we are creating a culture where individuals of all backgrounds feel comfortable.
We want all Fresha people to feel included and truly empowered to contribute fully to our vision and goals. Everyone who applies will receive fair consideration for employment.
We do not discriminate based on race, colour, religion, sex, sexual orientation, age, marital status, gender identity, national origin, disability, or any other applicable legally protected characteristics in the location in which the candidate is applying.
If you have any accessibility requirements that would make you more comfortable during the interview process and/or once you join, please let us know so that we can support you.
We may use artificial intelligence (AI) tools to support parts of the hiring process, such as reviewing applications, analyzing resumes, or assessing responses. These tools assist our recruitment team but do not replace human judgment. Final hiring decisions are ultimately made by humans. If you would like more information about how your data is processed, please contact us.
- Department
- Engineering
- Location
- London