Overview As an engineer in the Internal Tooling team, you'll build the software that runs on our physical devices. That includes test stations, manufacturing rigs, lab equipment and the computers that control them. Your applications control and read from custom hardware and instruments, then reliably send that data to backend services where the rest of the company can use it. Our users are our own colleagues, across engineering, manufacturing, and all other departments. Feedback loops are extremely fast; our work exists to enable the company to move faster and increase our resilience. You'll work across hardware interfaces, device applications and backend integration. You should be comfortable picking up new protocols, devices and technologies as projects require. Responsibilities Lead the design of applications and services that run on physical devices and talk to custom hardware and lab instruments Build reliable data pipelines from devices to backend APIs that cope with network outages, hardware faults and restarts without losing data Design device software for easy deployment, configuration, updates and remote diagnosis Work with hardware, test and manufacturing engineers to turn physical processes into dependable software Work with backend and platform teams to define APIs and data contracts between devices and services Mentor teammates and share hardware-integration best practices Look for opportunities to automate and instrument more of our physical processes Requirements Strong proficiency in Python, C++ or similar (e.g. Rust, Go, C#) Experience writing software that talks to hardware over interfaces such as serial, USB, CAN, and Ethernet/TCP Experience building clients that send data to backend APIs (e.g. REST), including retries, buffering and offline operation Solid Linux experience: services (systemd), networking, permissions and device access Understanding of concurrency, async I/O and robust error handling in long-running applications Experience owning the full development lifecycle: requirements, design, implementation, testing, documentation and handover Comfortable with standard engineering practices: Git, code review, agile planning Preferred Qualifications/Experience Embedded firmware or microcontroller development (e.g. STM32) Device fleet management: provisioning, over-the-air or remote updates, configuration management, device monitoring Containerised deployments on edge devices with Docker Testing hardware-dependent code: hardware-in-the-loop (HITL) testing, simulators and mocks Improving CI/CD pipelines, including cross-compilation and building device images Familiarity with backend storage and cloud services (e.g. Postgres, AWS S3, DynamoDB, Lambda) Simple operator UIs (e.g. tkinter, web-based local UIs, TypeScript) Using AI tools to speed up your work while keeping quality high and your own understanding solid Manufacturing, aerospace, or other hardware-focused industries Start-ups or other fast-paced engineering environments What We Offer Competitive compensation and stock options Private Medical
Software Engineer (Device & Edge Applications) employer: Cambridge Aerospace
Cambridge Aerospace is an exceptional employer, offering a dynamic work environment that fosters innovation and collaboration in the aerospace and defence sectors. With a strong commitment to employee development, we provide ample opportunities for growth through training and mentorship, ensuring that our team members can advance their careers while contributing to cutting-edge projects. Located in the vibrant city of Cambridge, employees enjoy a rich cultural scene and access to a network of industry leaders, making it an ideal place for those seeking meaningful and rewarding employment.