THE OPPORTUNITY
We are seeking a highly skilled Signal Processing Software Engineer with strong proficiency in C++ and a solid grounding in mathematics and signal processing, capable of developing and integrating complex models into robust, high-quality software solutions.
The role involves working within a model-driven engineering environment, translating theoretical and mathematical models into efficient, reliable, and maintainable code. You will contribute across the full software lifecycle, collaborating closely with architects, systems engineers, and project stakeholders in a structured, quality-driven engineering environment.
A strong commitment to clean code, static analysis, and software best practices is essential. Experience in Linux-based development environments and modern development toolchains is expected, with exposure to UML modelling and MATLAB/Simulink considered advantageous.
KEY RESPONSIBILITIES
- Design, develop, and maintain high-quality software solutions using modern C++
- Implement complex mathematical and signal processing models into efficient, production-ready code
- Work within a model-driven development approach, integrating auto-generated and hand-written code
- Develop software for Linux-based target environments, including deployment and debugging
- Contribute to large-scale or distributed software designs
- Apply software best practices, including unit testing, static analysis, and coding standards
- Participate in Agile development processes (e.g. Scrum, Kanban, SAFe) and adhere to defined development plans
- Use and administer standard development tools such as Git, JIRA, Jenkins, and artefact repositories
- Contribute to build and integration activities, including scripting and CI environments
- Collaborate effectively within multi-disciplinary teams and contribute to technical decision-making
- Produce and review technical documentation to support software delivery
- Support project delivery activities, including progress reporting, risk management, and stakeholder communication
- Where applicable, contribute to containerised deployments using Docker, Podman, or Kubernetes
ESSENTIAL SKILLS & EXPERIENCE
- Strong proficiency in C++ (Master level)
- Experience with software architectures and system-level software design
- Proven background in computational mathematics and signal processing
- Demonstrated ability to understand and implement theoretical or mathematical models
- Solid experience in model-driven engineering, including mixed autogenerated and manual codebases
- Experience developing, deploying, and debugging software on Linux platforms
- Working knowledge of Linux infrastructure, OS concepts, and scripting (e.g. Bash, Python)
- Understanding of networking concepts, including TCP/IP
- Experience applying high-integrity software practices (unit testing, static analysis, coding standards)
- Experience with software configuration management tools (e.g. Git, Bitbucket, Artifactory)
- Hands-on experience with unit testing and broader software test activities
- Experience working in containerised environments (Docker, Podman, Kubernetes)
DESIRABLE SKILLS
- Experience with UML modelling tools (e.g. IBM Rhapsody, Enterprise Architect)
- Experience with MATLAB/Simulink for model simulation and validation
- Exposure to software assurance, SBOM, or static analysis tooling
- Previous experience in defence or safety-related environments
BENEFITS
- Competitive Basic Salary
- 6% Employers Contribution + 6% as a salary sacrifice
- Private Medical Insurance, Life Cover and Income Protection
- 25 days holiday
- 10 days full sick pay per year
- Cycle to Work & TechScheme
- Corporate access to the Udemy platform
If you're applying for a role requiring security clearance, please be aware that foreign or dual nationality is not an automatic bar, however certain posts may have restrictions which could affect those who do not have sole British nationality or who have personal connections with certain countries outside the UK.