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