Embedded Software Engineer
Description

Overview:

We are looking for a professional Embedded Software Engineer to execute complete embedded software development lifecycle. The goal is to create scalable and optimized software systems.

Responsibilities

  • Design and implement software for battery management systems on ARM processors from requirements to production as part of a multidisciplinary team. 
  • Help support and troubleshoot fielded systems
  • Design, develop, code, test, and debug software
  • Participate in design reviews
  • Analyze and enhance efficiency, stability, and scalability of system resources
  • Integrate and validate new product designs and features
  • Support software QA, including perform code reviews, unit testing, measuring code statistics, and running Lint tools 
  • Provide post production support
  • Interface with hardware design and development team members
Requirements

Requirements and skills

  • 10+ years of experience in a Software Engineering/Development role
  • Proven working experience in embedded software engineering
  • BS degree in Computer Science or Engineering
  • Experience in hands-on development and troubleshooting on embedded targets
  • Solid programming experience in C and C++
  • Proven experience in embedded systems design with preemptive, multitasking real-time operating systems
  • Familiarity with software configuration management tools, defect tracking tools, and peer review
  • Excellent knowledge of CAN, I2C, SPI, ADC, and Digital IO and hardware subsystems
  • Adequate knowledge of reading schematics and data sheets for components
  • Strong documentation and writing skills
  • U.S. citizenship required; visa sponsorship is not available. 

Preferred Skills

  • Proven work experience in embedded software systems for battery management systems.
  • Familiarity with battery AFEs and gas gauges
  • Familiarity with military specifications