•
Build high-quality user interfaces using TypeScript, React, HTML and CSS.
•
Work with React Router, Next.js and similar React application frameworks.
•
Work closely with designers to turn ideas and designs into usable, responsive interfaces rather than simply reproducing static screens.
•
Make accessibility part of the way software is designed and built, not something added at the end.
•
Pay close attention to browser performance, loading behaviour and the experience across different devices and connection speeds.
•
Help shape component architecture and contribute to reusable design systems and shared patterns.
•
Write automated tests at the right level, from component and interaction tests through to browser-based end-to-end testing.
•
Review code, talk through approaches and help less experienced engineers develop their skills.
•
Work alongside other engineers to understand APIs, application behaviour and how the front end fits into the wider platform.
•
Contribute to the front-end engineering community at Code, sharing ideas and helping us improve how we build for the web.
•
Highly competent across core front-end skillsets: HTML, CSS/SCSS, JavaScript (Vanilla) etc.
You’ll have good experience building production web applications and strong browser fundamentals.
HTML, CSS and JavaScript matter to us. You should understand how browsers work and be able to build interfaces that are responsive, accessible and robust without relying on a framework to solve everything.
You’ll also need solid TypeScript and React experience, with experience working in applications built with React Router, Next.js or similar approaches.
Accessibility should be familiar territory. You should understand semantic HTML, keyboard interaction, focus management and the practical application of WCAG when building interfaces. You should also have experience testing interfaces with screen readers and understand how common interaction patterns are experienced by people using assistive technology.
Performance matters too. You should be able to investigate and improve things such as loading, rendering, JavaScript execution, images and Core Web Vitals.
You’ll need experience with automated testing. The exact tools are less important than knowing what to test and why, but you may have worked with tools such as Vitest, Jest, React Testing Library, Playwright or Cypress.
Working well with designers is important. That means understanding the intent behind a design, talking through interaction and responsive behaviour, spotting problems and contributing to the solution rather than waiting for every detail to be specified.