Embedded Software Engineer

EDI Specialists, Inc. Logo
EDI Specialists, Inc.
  • Construction
  • FullTime
  • Applications have closed

Primary Function:
The Embedded Software Engineer will develop embedded software on a wide variety of technology platforms. Designing and developing embedded software for brand new architectures and performing sustaining engineering on legacy systems is a key component of this role. Engineering work will be focused on system control, connectivity integration, UI/UX support, communication protocols, and testing integration driven through requirements driven design as a key component for long term success.

Responsibilities:

  • Control Systems

  • Design, implement, and maintain embedded software microprocessor-based control systems for water heating and other appliances.

  • Implement real-time control algorithms, communication protocols (e.g., UART, SPI, I2C, CAN), and low-level drivers.

  • Optimize code for performance, efficiency, and reliability.

  • Ensure robustness and modularity of the software for future deployment in new products.

  • Participate in code reviews, system testing, and validation activities.

  • Connectivity and UI/UX Integration

  • Design and integrate connectivity software solutions with appliances for regulatory and remote management capabilities.

  • Integrate best practices for robust design, security, and future expandability.

  • Experience with design and integration of Wifi/BLE

  • Agile Software Development and Testing

  • Develop and implement embedded software development through the Agile process with the rest of the development team.

  • Use embedded C/C++/Python development for implementing new features on projects.

  • Coordinate closely with the testing team to ensure robust test coverage through CI/CD/Unit Test/HIL

  • Cross Functional Collaboration and Mentoring

  • Work closely with cross-functional teams, including product management and operations, to understand requirements and ensure alignment on quality goals.

  • Mentor junior team members and contribute to a culture of continuous improvement

Job Requirements:

  • Bachelor’s degree in Computer Science, Computer Engineering, or Electrical Engineering with a strong background in embedded systems software
  • 3+ years of experience in embedded software engineering
  • Familiarity with different microcontrollers and microprocessors (8/16/32 bit, ARM, etc)
  • Proficiency in embedded C,C++, Python scripting, and embedded OS (ROTS, Baremetal) implementations
  • Proficiency in control systems and architecture
  • Experience with design for test
  • Excellent problem-solving and debugging skills.
  • Strong written and verbal communication skills.
  • Familiarity with version control systems (e.g., Git, Azure DevOps)
  • Experience in Agile or Scrum development environments

Preferred Qualifications:

  • Experience with UL60730 Class A/B/C development or equivalent regulated environments
  • Familiarity with containerization technologies like Docker and orchestration tools such as Kubernetes
  • Experience with integration of full test methodology (CI/CD/Unit Testing) as part of the design process
  • Experience in appliance or product controls engineering