We are seeking a Senior Linux & Edge Application Engineer to design, build, and maintain production Linux applications deployed across a growing fleet of kiosk-style and industrial edge devices. Our device fleet is currently small but expanding.
This role will play a key part in defining the architecture, tooling, and processes for application deployment, versioning, monitoring, and safe updates at scale. This position combines Python application development, Docker/Docker Compose-based deployments, and Ansible automation, with a strong emphasis on reliability, traceability, and safe operation in real-world environments.
This is a senior individual contributor role with no direct people management responsibilities. The engineer will collaborate closely with a US-based engineering team and contribute to technical design and long-term maintainability decisions.
Core Responsibilities:
- Python Application Development
- Design, develop, and maintain production-quality Python applications and services used on or to manage deployed Linux devices
- Build internal APIs, dashboards, and tools to support device monitoring, version reporting, and update workflows
- Write clean, testable, and maintainable code suitable for long-lived production systems
- Collaborate with the broader engineering team on application architecture and technical direction Containerization & Packaging
- Package applications using Docker to ensure consistent and repeatable deployments
- Define and maintain Docker Compose configurations for multi-service device applications
- Manage container versions, configuration, volumes, and networking
- Support container upgrade and rollback strategies on deployed devices Device Fleet, Versioning & Updates
- Contribute to the design and implementation of a device update and versioning strategy for Linux-based edge devices.
- Ensure devices can reliably report:
o Application and container versions
o Configuration state
o Deployment and health status.
- Build or integrate tools to monitor device health and safely deliver updates
- Support staged rollouts, per-device targeting, and controlled deployments
- Design update mechanisms resilient to:
o Network interruptions
o Power loss
o Partial or failed deployments Automation & Deployment (Ansible)
- Use Ansible to automate provisioning, configuration, and updates across tens to hundreds of devices
- Maintain device inventories, groupings, and per-device variables
- Automate installation and updates of system dependencies, Docker, and applications
- Ensure automation is idempotent, repeatable, and observable Edge, IoT & Kiosk Environment Support
- Work with long-lived Linux devices deployed in the field
- Design applications that start automatically, recover gracefully, and run unattended
- Support kiosk-style or industrial environments where stability and uptime are critical
- Collaborate on system startup flows, system services, watchdogs, and health checks
Qualifications:
- Experience with edge computing, IoT, kiosk, or industrial Linux systems
- Designing or integrating device fleet monitoring and update tools
- Experience with versioning, staged rollouts, and rollback strategies
- Familiarity with system services, watchdogs, and health monitoring
- Understanding of networking concepts (VPNs, firewalls, remote access)
- Experience evaluating build-vs-buy solutions for device management
- Strong experience developing and maintaining production Python applications
- Hands-on experience with Docker and Docker Compose
- Solid Linux systems and application development background
- Experience deploying and maintaining software across multiple remote devices
- Familiarity with Ansible or similar automation/configuration management tools
- Comfort working with distributed systems and remote debugging
- Strong problem-solving skills and attention to reliability and operational detail
- Excellent written and verbal communication skills in English