Overview
Develop and maintain Python services and system automation supporting IoT and edge devices, working within an established architecture alongside senior engineers on scientific instrument software.
What you'll do
- Develop and maintain Python modules, APIs and utilities for file processing, configuration, process execution and device communication within an established architecture.
- Configure and onboard IoT gateways or edge devices using existing tools and procedures; maintain device inventory, software versions and configuration records.
- Integrate with existing device APIs or SDKs to read telemetry, check status and exchange commands using documented interfaces.
- Support installation, container deployment and approved software updates on Linux devices; perform validation checks and follow documented recovery procedures.
- Implement input validation, error handling, logging and basic retry behaviour; handle disconnected devices and report failures clearly.
- Investigate Python errors, service failures and connectivity issues using logs and basic Linux/network tools; resolve assigned defects and escalate complex issues with useful diagnostics.
- Write unit and integration tests using pytest or unittest, mock external dependencies, and run checks through existing CI/CD pipelines.
- Follow secure coding and credential-handling practices, participate in code reviews and Agile delivery, and maintain setup guides and troubleshooting notes.
What you'll need
- 4–6 years of software development experience with hands-on Python coding, including functions, classes, modules, collections, exception handling and file operations.
- Experience developing or maintaining Python APIs, services or automation scripts, with working knowledge of JSON, configuration files and reusable code.
- Working Linux knowledge covering command-line tools, processes, services, permissions and logs; ability to perform basic system troubleshooting.
- Practical exposure to setting up, integrating, testing or supporting IoT devices, gateways or edge systems; willingness to work hands-on with lab hardware.
- Basic understanding of IP addressing, ports, HTTP/REST and device connectivity; familiarity with MQTT or a comparable messaging protocol.
- Experience with Git, unit testing, debugging and documenting changes; ability to deliver assigned tasks independently and seek guidance on unfamiliar system-level issues.
- Bachelor's degree in Computer Science, Electronics, Electrical Engineering or a related technical field, or equivalent practical experience.
Nice to have
- Exposure to Docker, CI/CD tools such as Jenkins, and Python frameworks such as FastAPI or Flask.
- Familiarity with Raspberry Pi, NVIDIA Jetson, industrial PCs or similar devices, or experience supporting software updates and remote diagnostics.
- Basic experience with SQL/SQLite, shell scripting, Windows or PowerShell, or Azure/AWS IoT services.
- Exposure to sensor integration, MQTT, OPC UA or Modbus; awareness of authentication, certificates and safe handling of device credentials.
- Interest in AI-enabled edge applications or experience using AI-assisted development tools, with appropriate review and testing of generated code.
- Experience collaborating with software, hardware or QA teams in an Agile product-development environment.
Details
- Work schedule: standard Monday to Friday.
- Environmental conditions: office.
Read the full description and apply on the company’s own careers page.