Embedded Software Engineering Manager (Direct Hire)
Madison, IN
Job Requisition: 7013
Description for Embedded Software Engineering Manager:The Embedded Software Engineering Manager will lead a team of software engineers in the development of medical devices using best practices in compliance with company operating procedures. Provide feedback, coaching, and performance assessments to direct reports. Assign engineers to tasks across multiple projects and guide execution. Coordinate with project managers in creating schedules for software releases and associated documentation. Assess team’s performance and refine work instructions to better meet project goals in more efficient ways. Plan and execute software-centric projects for in-house applications and sustaining activities.
Responsibilities for Embedded Software Engineering Manager:
- Work with a cross-disciplinary team of system engineers, hardware engineers, firmware engineers, and application software developers to support program execution.
- Develop solutions for embedded systems and IoT connected devices
- Develop high-quality firmware using industry best practices, such as unit testing, and implementing agile program management
- Develop firmware development tools
- Debug firmware in a network of embedded systems using emulators and scripts
- Develop algorithms for embedded applications which utilize raw data to determine current system performance and predict future health
- Triage and debug issues found in the field
- Maintain full visibility into development through task tracking and reporting
- Perform root cause analysis of firmware issues
- Manage the embedded software group
- Direct peer code reviews
- Create process documentation and training
Requirements for Embedded Software Engineering Manager:
- Bachelor’s in Computer Engineering, Computer Science, or Software Engineering. Advanced degree desirable.
- Five or more years of experience in the design and development of software and firmware systems
- Demonstrated leader and/or technical expert within a software development organization.
- Exceptional team player with leadership responsibilities.
- Practical experience in C/C++ object-oriented analysis and programming, and multi-threaded/multi-tasking programming is required
- Capable of solving complex engineering problems through accurate interpretation of requirements and test results.
- Experience in development using multiple operating systems, which may include real-time operating systems (RTOS) such as RTXC, ThreadX, and QNX as well as traditional operating systems such as Linux, Windows (standard or embedded is required).
- Experience using software integrated development environments (IDEs) and tools including compiling/building, debugging, configuration management (version control), defect management, continuous integration, and code analysis tools.
- Software quality assurance to include unit and integration test development and execution, and code inspection and reviews.
- Understanding of development for a resource-constrained target environment with specific performance requirements is desired.
- Strong communication and problem solving skills.