Embedded Systems Software Engineer
About Azimuth
Azimuth is developing a data platform for the live music industry, connecting artists and audiences through proprietary music and demographic intelligence. Our embedded hardware captures real-world music activity and transforms it into actionable data that supports concert programming, audience insights, and rights attribution.
About the Role
We are looking for a hands-on Embedded Systems Software Engineer to help develop, integrate, and maintain the software powering our distributed hardware platform. This role spans ESP32 firmware development, Python applications running on Raspberry Pi Compute Module 4 (CM4) systems, and the infrastructure used to deploy and manage devices in the field.
You will contribute across the entire embedded software stack, from low-level hardware communication and data acquisition to cloud integration, remote updates, and fleet management. Working closely with our hardware and backend engineering teams, you will help build and maintain a reliable, scalable system designed for real-world deployment.
What You’ll Do
- Design, develop, and maintain ESP32 firmware using C/C++, ESP-IDF, and FreeRTOS.
- Develop and maintain Python applications for Raspberry Pi CM4 systems running embedded Linux.
- Implement and troubleshoot communication between microcontrollers, host systems, and peripheral hardware.
- Build and manage containerized applications using Docker.
- Develop data acquisition, processing, and transmission pipelines that connect embedded devices to cloud infrastructure and backend APIs.
- Manage firmware compilation, flashing, version control, and software release processes.
- Implement and maintain device provisioning, remote software updates, and deployment workflows across a distributed hardware fleet.
- Debug and resolve issues across firmware, embedded Linux, USB communication, hardware interfaces, and containerized applications.
- Work alongside hardware and backend engineers to integrate custom PCB designs with embedded software and cloud services.
- Maintain technical documentation covering system architecture, deployment procedures, and troubleshooting processes.
What You’ll Bring
- Practical experience developing embedded software in C or C++.
- Familiarity with ESP32 microcontrollers and the ESP-IDF development framework.
- Experience developing applications in Python.
- Working knowledge of Linux and command-line tools for system development and troubleshooting.
- Familiarity with Docker or other containerization technologies.
- Understanding of hardware communication interfaces such as USB, UART, and I²C.
- Experience debugging embedded hardware and software, flashing firmware, and integrating software with physical devices.
- Familiarity with Git and collaborative software development workflows.
- Strong problem-solving skills and the ability to independently investigate technical issues and communicate findings.
Relevant experience can come from professional work, internships, academic research, coursework, or substantial personal projects. We value practical experience and are interested in what you have built, the challenges you have encountered, and how you approach solving them.
Helpful Experience
- Experience with BalenaOS, BalenaCloud, or similar embedded device management platforms.
- Familiarity with FreeRTOS, concurrency, multithreading, and inter-process communication.
- Experience designing communication protocols between microcontrollers and Linux-based host systems.
- Knowledge of over-the-air (OTA) updates, device provisioning, and large-scale device deployment.
- Experience with embedded audio, digital signal acquisition, or hardware peripheral integration.
- Experience deploying, monitoring, and maintaining IoT devices in production environments.
Why Azimuth
At Azimuth, you will have the opportunity to contribute directly to the development of technology designed for real-world applications in the music industry. You will work closely with a small engineering team, take ownership of meaningful technical challenges, influence architectural decisions, and see your work become part of an integrated hardware and software product.
How to Apply
Apply through Handshake with your résumé and a brief description of a relevant technical project. If available, include a GitHub repository, portfolio, or project demonstration. We encourage you to highlight the specific components you personally designed, developed, integrated, or debugged.