Position Responsibilities
We are looking for a Senior Frontend Developer to build and improve our web applications across multiple teams and markets, from internal platforms that support daily operations to new products built from the ground up.
This is not a "build to spec" role. This is a senior feature ownership role where you own features end to end, raise the quality bar of the frontend codebase, and help shape how we build frontend going forward. If you are looking for a role with fully scoped tickets, stable designs, and clear handoffs at every stage, this role will not be a fit.
- Features from requirement to release, working closely with Product, Design, and Backend, including clarifying unclear requirements before building so the team does not redo work later
- Business rules translated into dependable logic, including multi-step flows and status changes
- UI that matches design intent closely: responsive, accessible, and complete with loading, empty, error, and retry states
- Contribution to a shared component library, with reusable components other engineers can confidently build on
- Contribution to team foundations: shared tooling, coding conventions, and quality practices that make every project faster to build
- Reliability after release: error rates, page performance, and production issues
- Documentation that captures decisions and trade-offs, not just steps
- Code review and day-to-day technical guidance of junior and mid-level developers
Qualifications & Education
- 6+ years of software engineering experience, with 4+ years building production React applications
- Demonstrated experience owning significant features or applications end-to-end, not just contributing to them
- Track record of improving a codebase, such as performance gains, a component library others adopted, or tech debt meaningfully paid down
- Hands-on experience with frontend CI/CD and deployment: building, hosting, and releasing web apps on AWS S3/CloudFront, Amplify, or equivalent, including environment management and safe release practices
- Experience working in product-driven or startup environments with evolving requirements
- Strong proficiency in React and JavaScript, with working experience in TypeScript for production-grade web applications
- Deep understanding of React rendering behaviour: hooks, memoisation, and diagnosing unnecessary re-renders
- Strong experience designing state management and data flow for complex applications, with a clear view on server state versus client state (TanStack Query, Redux Toolkit, Zustand, or equivalent)
- Refactors toward low coupling and high cohesion, and knows when breaking a convention is the right call
- Traces complex bugs to the root cause, including async timing and race conditions, instead of patching symptoms
- Covers edge cases and failure scenarios as standard practice, not as an afterthought
- Understands unit testing and why it matters: knows what to test, how to scope tests, and writes code that is easy to test. Experience in any language or framework counts
- Solid command of modern HTML and CSS, responsive layout, and web accessibility (WCAG) with semantic markup, and styling that is structured to stay easy to theme and maintain
- Working knowledge of web performance: Core Web Vitals, code splitting, caching, and bundle analysis
- Understanding of common frontend security risks (XSS, CSRF, token handling, dependency risk) and how to prevent them
Engineering Collaboration Skills
- Ability to review and shape API contracts with backend engineers before implementation begins
- Ability to raise technical risks early and explain them in plain terms to non-technical stakeholders, so your decisions are clear to both Product and Engineering
- Ability to work with Design to surface implementation constraints and propose better alternatives before they become delivery problems
- Ability to integrate third-party services and SDKs independently: reading vendor documentation, weighing fit before adopting, and working with vendor support when the docs fall short
Nice to Have
- Hands-on experience with a React meta-framework (Next.js or equivalent), including SSR/SSG trade-offs
- Hands-on frontend testing with Jest or Vitest and React Testing Library, and end-to-end tests with Playwright or Cypress
- Effective use of AI-assisted development tools, with the judgement to review and own what they produce before it reaches the codebase
- Experience setting up CI checks, Git branching strategies, release processes, feature flags, or frontend observability (Sentry, Datadog RUM)
- Experience integrating analytics and tracking tools (Mixpanel, Google Tag Manager, marketing pixels, Netcore, or similar), including A/B tests
- Good UI/UX sense and judgement: fills gaps when designs don't cover a case (missing states, edge flows, small screens, long content) and makes choices that feel clear and consistent to users
- Experience building or maintaining a design system (Storybook, tokens, versioned component packages)
- Background in F&B, ordering, or back-office systems, or apps serving multiple markets (localisation, currencies, region-specific configuration)
a Necessity, not a Luxury