Senior Software Engineer – Python / Hardware Systems
Do you want to build real-world machines that handle complex tasks with speed and precision. This isn’t app or web dev, it’s embedded Python, hardware integration, and system-level thinking. We’re looking for someone who writes robust code, understands how systems behave in the wild, and knows how to push hardware and software to work together seamlessly.
What you’ll be doing :
- Writing Python to interface with motors, sensors, relays, power systems, and I / O
- Designing and maintaining services that run on embedded Linux (often headless)
- Working with serial protocols (UART, I2C, SPI), MQTT, CANbus, Modbus etc.
- Handling real-time constraints, task scheduling, and resource-limited environments
- Debugging across layers : device logs, serial traces, signal timing, and hardware behaviour
- Building automated test rigs and simulation tools to catch bugs early
- Optimising code for performance, memory, and reliability at the edge
Tech you might use or encounter :
Python (asyncio, multiprocessing, struct, ctypes, pytest)Linux (systemd, udev rules, shell scripting, device trees)Microcontrollers and SBCs (Raspberry Pi, BeagleBone, STM32, ESP32)Networking and messaging : ZeroMQ, MQTT, TCP / UDP socketsROS, FreeRTOS, or similar frameworks for real-time or roboticsDocker, CI pipelines, version control (Git), and hardware-in-the-loop testingOccasional interaction with backend systems (Nest.js, Postgres) for telemetry and configWhat we’re looking for :
Strong Python skills in embedded, automation, or device-heavy environmentsConfident with low-level comms, device integration, and hardware abstractionKnows how to debug flaky hardware, noisy signals, and time-sensitive codeUnderstands performance trade-offs, concurrency, and memory managementBonus if you’ve worked on robotics, IoT, industrial control, or real-time systemsComfortable owning problems end to end, from code to field deploymentWhy join :
Small team, real impact, and problems that require actual engineering.