Embedded Engineer
Russell Tobin
Location: Cambridge, UK
Work Arrangement: Fully onsite – 5 days per week
Contract Duration: 12 months
Working Hours: 40 hours per week
Job Type: Contract
About the Role
We are seeking an experienced Software Engineer to maintain and expand software systems supporting a specialist data collection laboratory. You will develop Python-based backend applications, integrate prototype hardware devices, and improve the reliability, accuracy, and efficiency of data collection and processing workflows.
You will work closely with software engineers, audio/video engineers, recording technicians, and research teams to build and maintain robust software solutions that support data collection across multiple modalities, including audio, video, and sensor data.
This is a hands‑on engineering role focused on backend development, systems integration, automation, and troubleshooting rather than machine learning model development.
Key Responsibilities
- Develop, maintain, and enhance Python-based backend applications and data collection systems.
- Build software components and controllers to integrate hardware devices, prototype wearables, and third‑party sensors.
- Improve the efficiency, accuracy, and reliability of data collection and processing workflows.
- Develop and maintain RESTful services and distributed systems.
- Automate data validation, processing, and transformation into required research formats.
- Deploy, test, and evaluate upgrades to distributed data collection platforms.
- Build and maintain monitoring tools to track system health and performance.
- Troubleshoot software, networking, and hardware integration issues in a physical laboratory environment.
- Conduct root‑cause analysis and resolve technical issues during live data collection sessions.
- Collaborate with cross‑functional engineering and research teams to scope requirements, prioritise tasks, and deliver maintainable software.
- Contribute to code reviews, engineering best practices, and continuous improvements to existing systems.
Essential Skills and Experience
- Bachelor's degree in Computer Science or a related field, or equivalent practical experience.
- Approximately 8–10 years of professional software engineering experience.
- Strong hands‑on experience developing and maintaining large Python codebases.
- Proficiency in Linux environments and shell scripting, including Bash.
- Solid understanding of networking fundamentals, including IP networking, TCP/IP, VLANs, a nd network topology.
- Experience developing and supporting distributed systems, RESTful APIs, and concurrent applications.
- Experience with FastAPI or a similar Python backend framework.
- Understanding of time synchronisation and its application in distributed systems.
- Strong debugging, troubleshooting, and root cause analysis skills.
- Ability to work onsite and collaborate closely with engineers and technical specialists.
- Experience integrating hardware devices, embedded systems, wearable technology, or sensors.
- Familiarity with audio, image, and video formats or multimedia data collection.
- Experience with data acquisition systems, instrumentation, or laboratory automation.
- Knowledge of relational databases and graph or NoSQL databases.
- Experience with software and hardware testing frameworks.
- Experience with Windows systems administration.
- Basic network programming experience.
Ideal Candidate Profile
The ideal candidate is a hands‑on Python backend engineer with strong Linux, networking, and distributed systems knowledge. You should be comfortable working across software and hardware interfaces, troubleshooting issues in a physical lab environment, and building reliable systems for accurate data collection and processing.
Candidates whose experience is primarily frontend development, machine learning research, or high‑volume big data processing without strong Python backend and networking skills may be less suited to this role.
#J-18808-LjbffrReference: WJ-766_23797621