Embedded Software Engineer

Elemental Machines

Cambridge, MA0–3 yrs5d agovia LinkedIn

About the Role

Elemental Machines is looking for a Software Engineer to join our Device Engineering Team in the creation of new IoT sensors and modules. This role involves the development of high-volume embedded systems for life-changing applications. You will work closely with hardware, firmware, and applications software developers, as well as the verification team, in the development of IoT devices and gateways.

  • Location: Hybrid - Greater Boston Area, MA
  • Employment Type: Full-time
  • Pay: $90,000 per year

Key Responsibilities

  • Write embedded software applications in Python and C/C++ that run on 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.

Requirements & Tech Stack

  • 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.

Nice to Have

  • 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.

Entry-Level Software Engineer Jobs · last 7 days

150 openings · 149 need no experience

Most hiring: Boeing, American Express, BAE Systems, Inc.

See all 150 →