Job Title: Lead Software Engineer
Job Location: Southfield, MI
What we offer:
Veoneer develops cutting-edge technology for the Future Car. Our international, agile and highly collaborative teams aim to accelerate the growth in Autonomous Driving and be the leader in Advanced Driver Assistance Systems. We empower our people and are dedicated to their professional development and growth.
With 7500 employees in 13 countries, our growing team has the goal to lead the revolution underway in the automotive industry…and then be the pioneer for what comes next.
What you'll do:
The Lead Software Engineer is responsible for leading a team of software engineers in embedded software design and development for safety critical automotive applications. Candidates seeking this position must possess excellent software skills, a strong sense of software development process discipline, and project leadership skills. The candidate must have advanced functional knowledge of modern electronic control circuits and a thorough knowledge of multicore microcontrollers. In addition, the candidate must have strong programming skills in the C language, Real Time Operating Systems, software design methodologies and software project management skills
- Lead team of software engineers responsible for ECU software development
- Ability to adapt to changing software release schedules and multitask in a fast-paced environment
- Perform initial software project estimations based on defined customer (internal or external customer) requirements. The objective is to estimate effort required and software development resources needed to meet initial commitments as well as tools needed to support development
- Establish and adhere to estimates in project work plan for assigned projects. Conduct weekly software change control board meetings and work with stakeholders to define software milestones, establish release contents, evaluate change requests, and software issues
- Update and maintain the software project schedule based on changes/defects discovered during development and validation or based on new customer requirements.
- Champion the quality, design, development and release of assigned software project elements in accordance to a process
- Establish software project configuration management, define the software project archive configuration and usage. Collaboration between the Lead Software Engineer and the Software Architect is required to define and sustain the project archive. All the software development shall be maintained in the project archive, all changes shall be reviewed and approved by the lead software engineer and software architect to ensure meeting commitments and quality.
- Function as the main interface to all software project negotiations
- Interface with product development teams located in various geographical locations
- Plan and perform software release builds, software pre-release integration tests and release software in accordance to a process.
- Identify or propose product process or infrastructure improvements
- Possess excellent people skills, ability to work well within an interdisciplinary team
- Exemplify building trust, working together, Driving Customer Focus, and Driving Performance and Simplicity
- Ability to design, implement, and test modular embedded software for multicore microcontrollers
What you'll bring:
- BS in Computer or Electrical Engineering, Master’s Degree preferred
- Seven or more years’ work experience in Embedded or real-time software development
- C and assembly programming for 16/32/64-bit micro-controllers
- Experience with device driver development (Flash, EEPROM, CAN, SPI, ADC, Ethernet etc.)
- Electronic test equipment (oscilloscope, function generator, power supply, etc.)
- Experience in developing embedded software for Ford, GM, or other OEM Network Operating Systems
- Experience working with Embedded Realtime Operating Systems (RTA-OS, OSEK, etc.)
- Experience in industry standards like UDS Diagnostics, ISO26262, AUTOSAR, ASPICE
- Familiarity with Automotive Cybersecurity
- Experience in leading software development teams
- Good oral and written communication skills
- Experience in developing embedded software systems with multiple microcontrollers and System on chips
- Experience using the following tools or related tools: Requirements management (DOORS), Architect & Design (Enterprise Architect), compilers (TASKING compiler/linker), Static Analysis (QAC or LDRA), Debuggers (iSYSTEM winIDEA), Unit Testing (VectorCAST), Configuration Management (GIT or PTC Integrity), AUTOSAR Development (DaVinci Developer, ISOLAR-A or DaVinci Configurator or EB Tresos), Vector tools (CANalyzer, CANoe, CANdela, …)