Full Stack Developer (Edge)
Role details
Job location
Tech stack
Job description
We're looking for a Full Stack Developer to build software across our edge platform, from services running on constrained devices in the field, through the control plane that manages them, to the interfaces operators use to monitor and control systems. This is full stack development in environments where normal assumptions do not hold. Connectivity is unreliable. Memory and compute are limited. Systems disappear for days and come back unexpectedly. The work involves building APIs that fail gracefully, interfaces that remain usable with delayed telemetry, pipelines that can pause and recover, and services that continue working after long periods offline. You'll work across different parts of the stack and follow problems wherever they lead. Some days that will mean backend services or orchestration systems. Other days it will mean frontend tooling, deployment workflows, or debugging behaviour on edge devices. The work is technical, practical, and important. You'll build systems used by people operating in demanding environments where reliability matters. You'll see how your software performs in real conditions and learn quickly which design decisions worked, and which did not. We do not expect you to know every part of the stack from day one. We're looking for someone curious, adaptable, and comfortable working through difficult engineering problems in unfamiliar areas. This role offers hybrid working with a minimum of 3 days per week on-site at our Bristol HQ. Candidates must be eligible for SC clearance. More information about security clearance is available here: https://www.gov.uk/government/publications/united-kingdom-security-vetting-clearance-levels, * Building services that run on edge nodes: lightweight, event-driven, and resilient to intermittent connectivity, with careful attention to memory, CPU, and storage budgets.
- Building control-plane services that coordinate fleets of devices, manage configuration and state, and integrate with backend data and analytics systems.
- Building operator-facing web interfaces for monitoring, control, and decision support, including UIs that remain usable when underlying data is stale or partial.
- Designing and implementing APIs that work well over intermittent connections: idempotent, versioned, tolerant of partial connectivity, and clear about state.
- Wiring up streaming and messaging pipelines between edge and core, choosing the right protocol and the right semantics for each link.
- Integrating with sensors, payloads, and hardware-connected systems, often through unconventional protocols and constraints.
- Contributing to test coverage, CI/CD, and shared engineering practices that keep delivery fast and the codebase healthy.
- Working directly with users to validate that what you've built actually solves the operational problem in front of them.
Requirements
Do you have experience in TypeScript?, We are looking for someone who is passionate about technology and who actively invests in their technical skills. You'll be constantly learning in this role, but some key skills and experience you should already have include: Essential
- Strong full-stack experience: comfortable building production frontends (React or similar, TypeScript) and production backend services (Go, Python, Node.js, or similar).
- Solid API design experience, both REST and event-driven, with an understanding of where each fits.
- Practical experience with message brokers, streaming, or pub/sub systems (MQTT, NATS, Kafka, or similar).
- Experience working with containers and deploying into orchestrated environments.
- Comfortable on Linux: navigating systems, debugging across the stack, reading logs that nobody curated for you.
- Sound software engineering fundamentals: clean code, automated testing, and a feel for when to optimise and when to leave it alone.
- Awareness of secure software development practices and a proactive approach to identifying and mitigating risks.
- Experience building software that handles sensitive data or operates in security-conscious environments.
Desirable (not essential)
- Experience building software for constrained or embedded targets (Raspberry Pi class, single-board computers, IoT, ruggedised hardware).
- Experience with offline-first or intermittently-connected applications, including conflict resolution and reconciliation.
- Familiarity with edge-style stacks: container orchestration at the edge, lightweight messaging, time-series data, telemetry.
- Experience in regulated sectors delivering complex connected systems, such as defence, national security, telecommunications, financial services, or automotive industries., * Curious and adaptable: Our work crosses domains and you should be comfortable picking up new technologies, languages, and problem spaces.
Benefits & conditions
- Ownership: You finish what you start and you care about the user.
- Pragmatic: You choose solutions that work in practice, and you know when to use the standard tool and when the problem genuinely needs something different.
- Collaborative: You share knowledge generously and you're happy to step into someone else's part of the stack when it helps.
- Resilient: You're comfortable in a fast-paced environment where requirements evolve as we learn more about the operational problem.
- Quality-driven: You take pride in building software that holds up, particularly in environments where retrying is not free.