Location: Onsite at ThermoWorks in American Fork, Utah. Remote/hybrid schedule NOT available.
ThermoWorks is looking for a hands-on Senior Software Engineer to join our Product Development team. You’ll build and improve the software that brings our connected products to life, with a focus on embedded firmware and some backend programming to support our devices.
You’ll contribute to multiple projects, taking software from requirements and prototypes through integration, validation, and delivery. Our connected temperature devices and gateways use technologies such as ESP32, C/C++, Wi-Fi, Bluetooth Low Energy, MQTT, sensors, displays, and over-the-air firmware updates. You’ll work across device firmware and supporting backend services, collaborating with hardware, mobile, and cloud teammates to deliver reliable end-to-end products.
We’re looking for a self-starter who loves building products, can move work forward with limited day-to-day direction, and is comfortable solving open-ended engineering problems. Familiarity with managing and leveraging multiple AI agents to accelerate software development workflows is expected. This is a firmware-focused role, not a circuit-design or PCB-layout position. Occasional travel, including international travel, may be required.
Essential Responsibilities
- Develop and maintain embedded firmware for connected products, including sensor interfaces, connectivity, diagnostics, power management, and OTA updates.
- Develop and maintain backend software and integrations that support connected devices, their data, and device-facing features.
- Take software features from requirements and implementation through unit, integration, and product testing; maintain clear technical documentation.
- Integrate device software with sensors, displays, wireless networks, mobile applications, and cloud services in collaboration with the teams responsible for those systems.
- Debug prototypes and field issues across firmware, connectivity, and hardware boundaries; improve product reliability and performance.
- Contribute to multiple projects, communicating progress and risks, managing priorities, and working with product, hardware, cloud, mobile, and manufacturing teammates.
- Support product releases, manufacturing readiness, and sustaining engineering.
- Travel occasionally, including internationally, as project needs require.
- Perform other duties as assigned.
Qualifications
Minimum Qualifications
- 5+ years of professional embedded software or firmware experience, including delivering products from development through release.
- Strong C/C++ skills and experience developing and debugging software for microcontroller-based products.
- Experience with real-time or event-driven systems and integrating firmware with hardware and connected services.
- Experience or demonstrated ability in backend programming, such as developing services or APIs that support connected products.
- Familiarity with collaborative software practices such as version control, code review, and testing.
- Self-directed approach, sound problem-solving skills, and ability to make progress across multiple projects.
- Clear communication and effective collaboration with cross-functional teams.
- Work onsite at ThermoWorks HQ.
- Willingness and ability to travel occasionally, including internationally.
Helpful Additional Experience
- ESP32 and ESP-IDF, FreeRTOS, or comparable embedded platforms.
- Wi-Fi, BLE, MQTT, device provisioning, secure communications, telemetry, or OTA-update systems.
- Experience integrating firmware with cloud services, APIs, mobile applications, or IoT platforms.
- Temperature measurement, thermocouples, thermistors, RTDs, strain gauges, PID control, or instrumentation.
- Battery-powered products, low-power firmware, and battery-life optimization.
- Hardware bring-up and sensor or display interfaces.
- Automated firmware testing, manufacturing test, reliability engineering, or production ramp experience.
- Experience or familiarity with multi-agent orchestration, agentic workflows, or integrating automated developer/task agents into CI/CD pipelines and software workflows.