Senior Full-Stack Engineer — TypeScript
WHAT YOU'LL DO
• Build and maintain full-stack applications using TypeScript, Next.js and NestJS.
• Own changes from application code through database, deployment and production verification.
• Establish reusable patterns, libraries and guardrails so teams don't have to solve the same engineering problems repeatedly.
• Plan the structure of changes before they are merged, and enforce standards through automated checks and AI agents in the development lifecycle rather than manual review alone.
• Build the test harness that turns analysts' acceptance criteria into automated checks that keep running after release.
• Review applications and code produced with AI-assisted development tools.
• Identify architectural, security, data integrity and maintainability issues that may not be obvious to non-engineers.
• Refactor or redesign implementations when the generated solution is not appropriate.
• Review database schemas and migrations before they reach production, working with the data architect, who owns the data model.
• Design reliable integrations with internal systems and third-party APIs.
• Improve testing, CI/CD and production verification.
• Debug production issues across systems you may not have originally written.
• Work closely with the person responsible for overall architecture and technical direction.
WHAT WE'RE LOOKING FOR
Must have
• Strong TypeScript fundamentals.
• Solid production experience with Next.js / React.
• Strong backend engineering fundamentals.
• Good understanding of PostgreSQL, schema design and database migrations.
• Ability to read and understand unfamiliar code quickly.
• Strong code-review skills beyond formatting and style.
• Ability to recognise poor architecture even when the code appears to work.
• Understanding of authentication, authorization and application security.
• Comfortable deploying and operating your own applications.
• Comfortable with Docker and CI/CD.
• Good SQL skills.
• Experience integrating third-party APIs.
• Ability to debug production systems and trace problems across multiple components.