Full Stack Engineer

84538
  • Market related
  • UK

Full Stack Engineer

Location: Manchester, UK
Contract Type: Contract Position

About the Project

Join a specialist software development team delivering a new, business-critical technology platform for an established international organisation. This greenfield development project involves modern cloud architecture, data-intensive applications, and AI-enabled capabilities. You will work as part of a multidisciplinary team alongside experienced software, AI, infrastructure, and design professionals, directly involved in taking the platform from development through to production. Security, scalability, maintainability, data protection, and production readiness are key priorities throughout the project.

Role Purpose

As a Senior Full Stack Engineer, you will develop and maintain data-intensive software using TypeScript, React, Next.js, Node.js, and NestJS. This hands-on engineering role covers application development, backend services, relational data, and external integrations. You will take software from technical design through testing, deployment, and production support, making sound decisions about transaction boundaries, asynchronous processing, and access control, and resolving reliability or performance problems in deployed systems.

Main Responsibilities

  • Application and User Experience:
    • Develop maintainable React and Next.js applications with reusable TypeScript components.
    • Apply knowledge of server-side and client-side rendering, state management, semantic HTML, and responsive CSS.
    • Address accessibility and browser performance in implementation and testing.
    • Collaborate with design and backend colleagues to ensure application behaviour matches documented requirements and API contracts.
    • Diagnose problems across browser, network, and server boundaries.
    • Implement accessible, data-heavy forms, tables, and document views, and test for keyboard use, supported browsers, and responsive layouts.
  • Backend and Domain Services:
    • Build NestJS modules and REST APIs with clear service boundaries, validated inputs, and consistent error handling.
    • Enforce business rules and authorisation on the server.
    • Maintain versioned API contracts and automated tests for service evolution.
    • Keep the codebase modular and supportable.
    • Justify independently deployed services based on scaling, isolation, or ownership needs, understanding operational costs.
  • Data and Transaction Management:
    • Design PostgreSQL schemas with appropriate constraints, indexes, and migration procedures.
    • Apply knowledge of transaction isolation, optimistic concurrency, and locking to prevent lost updates or duplicate effects.
    • Tune queries using execution plans and representative data.
    • Preserve audit and version history where required, and test schema changes before release.
    • Handle data import and migration, including reconciliation, rejected-record handling, and recovery.
    • Ensure approved retention, correction, and deletion actions propagate through application records and connected services.
  • Event-Driven Workflow:
    • Implement asynchronous processing using message queues and durable workflow engines.
    • Handle transactional outbox publishing, idempotent consumers, retries, dead-letter handling, and controlled replay.
    • Maintain correct processing when messages are duplicated, delayed, or received out of order.
    • Ensure long-running tasks, timers, and approvals survive deployments and service interruptions.
    • Explain workflow state transitions and demonstrate recovery from interrupted execution without repeating completed business actions.
  • Integration Development:
    • Develop adapters for external APIs, webhooks, and Python-based data or model services.
    • Ensure authenticated requests, versioned contracts, timeouts, rate-limit handling, and reconciliation.
    • Isolate provider-specific behaviour from application logic.
    • Validate incoming payloads and webhook authenticity, record context for failure investigation, and test recovery from lost acknowledgements.
    • Ensure generated or externally supplied content is distinguishable from accepted records, with validation and authorised review enforced.
  • Security and Quality:
    • Implement authentication with OAuth 2.0, OpenID Connect, and Microsoft Entra ID, with role-based and attribute-based authorisation.
    • Enforce tenant boundaries and data-level permissions on the server.
    • Apply reviewed security controls for file access, secrets, and untrusted input.
    • Maintain unit, integration, API-contract, and end-to-end tests in the delivery pipeline.
    • Review code, investigate defects, and document significant technical decisions.
    • Test for access denial, concurrent updates, failure recovery, and successful execution.
    • Implement controls for secure sessions, upload validation, file quarantine, protected downloads, and request limits.
    • Work with the Technical Lead to review threats and resolve findings from independent security testing.
  • Production Support and Delivery:
    • Add structured logs, metrics, and traces for diagnosis without exposing sensitive data.
    • Agree performance targets, investigate slow queries and bottlenecks, and collaborate on load testing, release checks, and incident resolution.
    • Maintain deployment and support notes, contribute to user-acceptance testing, and remain responsible for defects after release.
    • Ensure feature work has clear acceptance criteria and is reviewed with the product owner and Technical Lead.

Requirements

  • At least six years of professional software engineering experience, with substantial hands-on delivery in TypeScript, Node.js, and NestJS, and advanced React and Next.js experience.
  • Demonstrated personal responsibility for production code and its ongoing maintenance.
  • Strong PostgreSQL and relational modelling skills, including transactions, concurrency, query optimisation, and safe migrations.
  • Experience with secure multi-user applications, REST APIs, webhooks, message queues, and distributed-system failure handling.
  • Practical experience with OAuth, OpenID Connect, automated testing, Docker, and cloud-hosted container platforms.
  • Experience integrating Python services or comparable data services, and tracing faults across application, database, and integration boundaries.
  • Experience with Azure Service Bus, Blob Storage, Azure Managed Redis, and API Management.
  • Experience with Prisma, GraphQL, and Temporal or another durable workflow engine.
  • Familiarity with Azure AI Search or OpenSearch, RDF and SPARQL, document-generation services, and migration from large legacy systems is also relevant.

Apply for this role