Embedded Software Engineer
Bluetooth Low Energy
Embedded Iot
Embedded Linux
Embedded Software
Embedded Software Security
Embedded Systems
Embedded Systems Software
Engineer
Engineering
Hardware Engineering
Hardware Software Co Design
Industrial Iot
Information Technology (IT)
Integration
Mqtt
Programming
Programming Language
Programming Languages
Real Time Systems
Software Development
Software Engineer
Software Engineering
Systems
Tcp/ip
Wireless Communication
Job Description
Build embedded software that powers IoT gateways and devices with Elemental Machines. This hybrid role in Cambridge, MA (Greater Boston Area) pairs hands-on development with close collaboration across hardware, firmware, applications software, and verification teams. You will work across the full product development lifecycle and help deliver a robust, scalable platform for connected devices.
Responsibilities
- Develop embedded software applications in Python and C/C++ for IoT gateways and devices.
- Collaborate with teammates to shape system architecture for a platform designed to scale.
- Review and interpret user needs, contribute to product requirements, and participate across the product development life cycle.
- Maintain high-quality documentation for code, APIs, and design decisions.
- Participate in code reviews, providing and receiving actionable feedback.
Requirements
- Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field, or equivalent practical experience.
- 0–3 years of software development experience, including internships, co-ops, research, or personal projects.
- Programming experience with Python and C/C++ is a plus.
- Confident use of the Linux command line, Bash scripting, and Git.
- Working knowledge of containerization tools such as Docker.
- Practice writing 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.
Technologies you may work with
- Languages: Python, C/C++
- Platforms & tooling: Linux command line, Bash, Git, Docker
- Communication & protocols: TCP/IP, MQTT, BLE/Wi-Fi, serial command protocols
- Embedded/hardware interfaces: Arduino, ESP32, RTOS, I2C, UART, Modbus, CAN
- Debugging tools: JTAG/SWD, oscilloscopes, logic analyzers
- Cloud exposure: AWS, Azure, GCP
Benefits
- 401(k)
- Health insurance
- Dental insurance
- Vision insurance
- Health savings account
- Paid time off
- Stock options
Location and Employment
- Location: Hybrid remote in Cambridge, MA 02138 (Greater Boston Area)
- Employment type: Full-time
- Pay: $90,000.00 per year
Nice to have
- Knowledge of concurrency on constrained devices: 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 such as Arduino or ESP32, and RTOS concepts.
- Experience interacting with hardware and low-level protocols such as I2C, UART, Modbus, and CAN.
- Debugging on real hardware using JTAG/SWD debuggers, oscilloscopes, and logic analyzers.
- Experience with device fleet management platforms.
- Exposure to cloud platforms such as AWS, Azure, or GCP.