Elemental Machines is building IoT gateways and devices, bringing together embedded software, hardware, firmware, application development, and verification to deliver reliable connected products. This hybrid role in the Greater Boston area gives you the opportunity to work close to the full stack of embedded system development while collaborating with a team that values clear documentation, thoughtful design, and high-quality engineering practices.
Responsibilities
- Develop embedded software applications in Python and C/C++ for IoT gateways and devices.
- Collaborate with team members on system architecture to support a robust, scalable platform.
- Review and apply user requirements, contribute to product requirements, and participate across the product development life cycle.
- Document code, APIs, and design decisions to support long-term maintainability.
- Participate in code reviews, providing and receiving feedback.
Requirements
- Bachelorβs degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field (or equivalent practical experience).
- 0β3 years of experience building software, including internships, co-ops, research, or personal projects.
- Programming experience with Python and/or C/C++ (Python and C/C++ are plus areas).
- Comfort with Linux command line, Bash scripting, and Git.
- Working knowledge of containerization tools such as Docker.
- Strong habits for clean, testable code, with a willingness to ask questions and learn quickly.
- Familiarity with software testing methodologies and design patterns.
- Understanding of application design concepts such as state machines and event-driven architecture.
Nice to Have
- Understanding of concurrency on constrained devices, including threads or tasks, queues, mutexes, and avoiding race conditions.
- Exposure to application-level communication such as TCP/IP, MQTT, BLE/Wi-Fi, or serial command protocols.
- Experience with embedded development, including microcontroller platforms like Arduino or ESP32, and RTOS concepts.
- Experience working with hardware and low-level protocols (such as I2C, UART, Modbus, CAN).
- Debugging on real hardware using JTAG/SWD debuggers, oscilloscopes, and logic analyzers.
- Experience with device fleet management platforms.
- Exposure to AWS, Azure, or GCP.
Technologies
Python, C/C++, Linux command line, Bash, Git, Docker, TCP/IP, MQTT, BLE/Wi-Fi, serial command protocols, Arduino, ESP32, RTOS, I2C, UART, Modbus, CAN, JTAG/SWD, oscilloscopes, logic analyzers, AWS, Azure, GCP
Benefits
- 401(k)
- Dental insurance
- Health insurance
- Health savings account
- Paid time off
- Stock options
- Vision insurance
Location: Hybrid remote in Cambridge, MA 02138 (Greater Boston Area).
Employment type: Full-time.
Pay: $90,000.00 per year.