> Markdown version of [/jobs/ext/4363285-embedded-software-engineer](https://www.wearedevelopers.com/jobs/ext/4363285-embedded-software-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Embedded Software Engineer - **Company:** Elemental Machines - **Location:** Cambridge, MA, United States - **Experience:** Starter - **Salary:** $90,000.0 - **Contract:** Internship / Graduate position - **Skills:** Application Programming Interfaces (APIs), Amazon Web Services, Software Applications, Arduino, Microsoft Azure, Bash Shell, Bluetooth Low Energy (Bluetooth), C++ (Programming Language), Code Review, Computer Programming, Computer Engineering, Software Debugging, Software Design Patterns, Embedded Software, Firmware, Joint Test Action (IEEE Standards), Python (Programming Language), Linux Commands, Modbus, Message Queuing Telemetry Transport (MQTT), Real-Time Operating Systems, Software Construction, Software Engineering, Systems Architecture, TCP/IP, Strategies of Testing, Universal Asynchronous Receiver/Transmitter, Wi-Fi Technology, PIC Microcontroller, State Machines, Git, Event Driven Architecture, Containerization, Information Technology, Docker - **Published:** October 9, 2026 - **Apply:** https://www.indeed.com/viewjob?jk=0b386d26d7e05c33 ## About the Role * A 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 in Python, C/C++ is a plus. * Confident use of the Linux command line, Bash scripting and Git. * Working knowledge of containerization tools such as Docker. * A habit of writing clean, testable code and a willingness to ask questions and learn quickly. * Familiarity with software testing methodologies and design patterns. * Understanding of application design: state machines, event-driven architecture., * Understanding 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 / low-level protocols (e.g. I2C, UART, Modbus, CAN) * Debugging on real hardware with JTAG/SWD debuggers, oscilloscopes and logic analyzers. * Experience with device fleet management platforms. * Exposure to cloud platforms such as AWS, Azure or GCP. ## Description In this role, you will work closely with hardware, firmware and applications software developers and our verification team in the development of IoT devices and gateways., * Write embedded software applications in Python and C/C++ that run on our IoT gateways and devices. * Collaborate with team members to develop system architecture for a robust, scalable platform. * Understand user requirements, contribute to the development of product requirements and participate in the entire product development life cycle. * Document your code, APIs and design decisions. * Participate in code reviews, giving and receiving feedback.