e are currently seeking an individual who can take on the role of our R&D Software Engineer. This individual will
work in a development team environment, so a positive attitude and teamwork spirit is an essential.
This position requires an individual with quality experience in software development for real time embedded systems and
familiarity with developing control system software. The candidate must have previous experience in
developing/negotiating verifiable system requirements with customers and the ability to drive those requirements down to
a software architecture. S/he must be able to select and apply adequate software development models and testing
methodologies and tools while following the formal product development process. The position will require significant
interface with product development engineers, verification & validation teams, product managers, program managers and
other team members to develop products that fulfill customer, manufacturing, service and regulatory requirements.
As a Software Lead the incumbent will provide leadership and knowledge to the software team during all phases of the
product development from requirements gathering to product launch. Project, time and risk management skills and a
proven track record of multitasking and working with short delivery cycles are required. Consistent with the philosophy,
the individual will be responsible for tracking quality measurements relating to software design and delivery and will use
that knowledge to develop plans for continuous improvement.
Essential Functions: As described below, this position combines responsibilities for the following roles: system
engineer/software architect; software lead; project manager.
Collaborate with a multi-discipline team to define the requirements interfaces between hardware components,
microcontrollers and software, and the operational performance requirements of the integrated system.
Collaborate with controls engineers to define functional allocation and the interfaces between software and
model-based control algorithms.
Develop the high-level architecture through functional analysis and allocation of requirements, concept
development and selection.
Work closely with the software development and software verification & validation team to select the
development and testing methodology and tools that meet the system and software requirements and comply to
the enterprise and industry level processes and standards.
Work closely with the software verification & validation team to develop software and hardware integration
plans. Use SiL, MiL and HiL methods and tools as applicable for system validation and integration testing.
Develop, deploy, and continually improve software processes and architectures, based on applicable standards and
Lead a small team in the design, implementation, testing and maintenance of embedded software and, to a lesser
extent, of PC tools used for service and as engineering tools.
Own the project software development deliverables and development from conceptual design to production.
Provide technical guidance and leadership to the development team during design, development, testing and
validation of software.
Lead technical reviews of the software to support development process and ensure technical integrity of software
Participate in end-product development activities by contributing ideas, concerns, risk analysis and mitigation as
Participates in end-product design reviews associated with each product development phase including system
level reviews and FMEA's.
Participate in end-product team meetings to communicate software development status.
Lead at least one or two large size projects or several small to medium sized projects by providing estimates on
work scope and creating a plan/ schedule.
Create software work break down structures for specific projects for development. Work closely with the
development team to ensure that tasks are further decomposed, properly assigned, verified and closed.
Conduct risk assessments on software development and create mitigation plans.
Assist the organization with scoping, identification of project deliverables, and creation of project-specific
documentation such as engineering management plans, configuration management plans, requirements
management plans, etc.
Track and communicate software development status.
Assist product development teams by preparing and presenting required information at business reviews.
Bachelor's Degree in Engineering (Electrical, Computer, Software) from an accredited institution.
Minimum 5 years of experience with full life cycle development of embedded software and programming in C.
Must be legally authorized to work in the United States without company sponsorship.
Experience with various microcontrollers architectures and embedded software tools.
Experience with C# and C.
QNX and Assembly language experience a plus.
Experience working with formal development processes and tools, including requirements
development/management and configuration management tools.