As the Software Engineering Manager for the organization, a dual-role position with combined management and technical design responsibilities, you will be responsible for the management of the Software Engineering group as part of the larger Design Engineering department at Enercon Technologies. Additionally, you will contribute directly to the development of firmware and/or software as part of highly integrated, custom embedded processing systems used in new products developed by Enercon and its customers.
Functions & Responsibilities
In the role of Software Engineering Manager:
- You will manage the Software Engineering group and maintain responsibility for the development of embedded software for new electronic products ranging from simple microcontroller-based solutions to highly complex embedded processing systems.
- You will oversee planning of complex embedded systems development projects – identifying required development activities and directing other team members in completing those activities.
- You will collaborate with project team members to identify software requirements and develop corresponding design strategies or architecture using the best approach based on performance, cost, and resources.
- You will develop detailed software specifications based on requirements and implement embedded code in accordance with those defined requirements and/or specifications.
- You will establish software verification testing tools and methods and execute software testing activities
- You will document ideas, designs, specifications, and instructions to Enercon’s standards.
- You will operate in the role of subject matter expert with respect to embedded software design and applicable development processes – IEC 62304, etc.
- You will collaborate with the Director of Engineering to develop, improve, and maintain department processes and tools related to software development.
- You will work with Program Managers to quote software development work and plan/maintain the project schedule for development programs.
- You will be accountable, along with other members of the management team, for the successful completion of projects on schedule and within budget.
- You will be responsible for hiring, performance reviews, and fostering the personnel development of members of the software engineering group.
- You will mentor other members of the engineering staff to promote design team abilities and establish good working practices.
The skills you need to succeed:
- You must have demonstrated skill in developing original designs with C/C++ in embedded environments including bare-metal, multi-threaded RTOS, and embedded operating systems (Linux, etc.)
- You must have communication and technical leadership skills needed to interface with the customer and direct a technical team through a development project.
- You must possess a strong sense of urgency and perseverance in pursuit of project and department goals.
- You must have specific experience with common microcontroller and/or embedded processing platforms such as ARM and PIC. Experience with DSP and/or FPGA based SoCs is a plus.
- You must have strong understanding of embedded software design and architectural concepts as well as the integration between firmware and hardware.
- You must have strong understanding of software development tools and methodologies used in the context of embedded systems. Familiarity with source control via established systems such as Git.
- You must have a thorough understanding of higher-level languages, object-oriented methodologies, UI implementation, and PC application programming. Experience with Qt framework is a plus.
- You must have a strong understanding of software test and QA tools and methodologies.
- You must have demonstrated knowledge of design controls, documentation, and organization in a regulated development and manufacturing environment (ISO 13485, FDA, IEC 62304, UL).
- You must have excellent written, oral communication and presentation skills appropriate for public and professional settings.
- You must possess good interpersonal skills and have the ability to work between multiple departments in carrying out this position’s duties.
Education and experience of a successful candidate:
- A 4-year degree or equivalent experience in Computer Engineering, Electrical Engineering, Computer Science or a related engineering discipline.
- A minimum of 10 years of embedded firmware development or equivalent experience. 15+ years preferred.
- A minimum of 3 years of engineering management or equivalent experience
- Enercon Technologies offers a competitive Benefits Package.