Algorithms Software Engineer
Role details
Job location
Tech stack
Job description
The successful candidate will take an active, hands-on role in the development of core algorithms for a key biosensor program. Working closely with the algorithm lead, sensor design engineers, and software teams, they will develop, prototype, and refine algorithms using real experimental sensor data.
This role is well suited to an engineer who enjoys focused, in-depth algorithm development, working on complex sensing problems where solutions are not always known upfront., Algorithm Development & Data Analytics
- Take ownership of specific algorithm components, from concept through prototyping and performance evaluation.
- Develop Python-based algorithms for post-processing and analyzing raw sensor data collected from laboratory experiments.
- Apply signal processing techniques to extract robust features from noisy, real-world sensor signals.
- Explore and apply machine learning techniques to improve measurement accuracy, robustness, and reliability.
- Combine classical signal processing and data-driven approaches where appropriate.
Sensor & System Collaboration
- Work closely with sensor design engineers and technical leads to understand sensor operation, physics, and data interpretation.
- Provide data-driven insights from algorithm analysis to guide sensor and system design optimization.
- Develop automated analysis pipelines to evaluate sensor performance across large experimental datasets.
Prototyping & Deployment Support
- Develop algorithm prototypes in Python suitable for real-time or near-real-time execution.
- Support the software team with algorithm integration and porting to embedded or production environments.
- Contribute to algorithm verification, test datasets, and performance characterization., You will work on real biosensor products that directly impact patient care and clinical decision-making. This role offers the opportunity to develop deep technical expertise in algorithm development while collaborating closely with multidisciplinary teams across sensors, electronics, and software.
Requirements
- BEng, MSc, or PhD in Electrical Engineering, Computer Science, Software Engineering, Physics, Mathematics, or a related discipline.
- Experience developing algorithms for sensing, measurement, or data-driven systems.
- Strong proficiency in Python for algorithm development and data analysis (e.g. NumPy, Pandas, SciPy, scikit-learn).
- Solid understanding of signal processing techniques for transforming and optimizing raw sensor data.
- Working knowledge of machine learning techniques applied to time-series or sensor data (e.g. regression, classification, anomaly detection).
- Strong software development skills, including version control (Git) and basic software test methodologies.
- Ability to work independently, take ownership of technical tasks, and maintain focus on algorithm development goals.
- Good communication and collaboration skills.
- Willingness to learn the physics underpinning sensor operation.
- Practical experience working with experimental or laboratory data.
Desirable / Advantageous Experience
- Experience applying data analytics or machine learning to medical or biosensor datasets.
- Exposure to algorithm development in regulated industries (e.g. healthcare, automotive, aerospace).
- Experience combining signal processing and machine learning in real-world systems.
- Familiarity with embedded systems or supporting algorithm deployment to constrained platforms.
- Experience documenting algorithms and analysis results in a structured, traceable manner., We are looking for an engineer who enjoys working on open-ended problems where the solution is not known upfront, and is comfortable iterating based on experimental data.
The ideal candidate demonstrates patience and persistence when dealing with ambiguity, imperfect measurements, and noisy sensor signals, while maintaining a disciplined and focused approach to algorithm development.
They are able to take ownership of algorithm development tasks and work on them in a dedicated manner over extended periods, iterating until performance and robustness targets are achieved.