The Software Engineer will play a vital role in the design, development, troubleshooting, and debugging of software programs for both our existing product line and new innovations. The engineer will assess hardware compatibility and its influence on hardware design. This position involves developing software and tools that support design, infrastructure, and technology platforms, including operating systems, compilers, routers, networks, utilities, databases, and cloud-based or Internet-related tools.
Requirements
- Design, develop, and maintain scalable systems software and platform tools to support new product development
- Build and enhance high-performance applications using object-oriented programming languages such as Python and Rust
- Develop data processing pipelines, analytical models, and optimisation algorithms using scientific computing libraries including NumPy, SciPy, TensorFlow, and PyTorch
- Create intuitive data visualisation and monitoring tools using Matplotlib, PyQtGraph, and related frameworks to support engineering and operational decision-making
- Design and implement responsive desktop user interfaces using Qt, PySide6, and QML, ensuring strong usability and user experience standards
- Troubleshoot, debug, and resolve complex software and system issues across development, testing, and production environments
- Collaborate with cross-functional engineering teams to influence system architecture, software design, and hardware compatibility decisions
- Develop and maintain deployment pipelines and release automation processes using Azure DevOps Pipelines, PyInstaller, and CI/CD best practices
- Implement robust software quality assurance practices, including automated testing, static analysis, and code quality validation using pytest, mypy, and pylint
- Participate in agile software development processes, including sprint planning, backlog refinement, and technical documentation using Jira and Confluence
- Manage source code, branching strategies, and peer code reviews using Git, Bitbucket, and related version control tools
- Contribute to the continuous improvement of software engineering standards, development workflows, and testing methodologies
- Support the full software development lifecycle from requirements gathering and prototyping through deployment, maintenance, and enhancement
- Work closely with stakeholders to translate technical and operational requirements into reliable and maintainable software solutions
Benefits
- 25 days annual leave per year in addition to bank holidays
- Up to 7% employer matched pension contribution
- Private health insurance from day one plus critical illness cover, income protection and life insurance
- Give as You Earn and Cycle to Work salary sacrifice schemes
- Annual Company and Individual bonus scheme
- Paid volunteer day