Job Description
Develops real-time embedded control system software. The role will include all aspects of the product development lifecycle – planning, requirements, design, code, test and maintenance.
DUTIES AND RESPONSIBILITIES:
· Work with Algorithms and Systems engineers to understand complex algorithm and system level requirements and translate these to clear concise and coherent software requirements.
· Generate software requirements, design documents, interface control documents and unit test plans.
· Maintain and develop embedded control system software application software written in C and C++
· Work with complex hardware interfaces in a real-time environment.
· Develop and perform unit testing of real-time embedded or application software.
· Translate, statistically analyze data, and effectively report problems through written and/or graphical formats.
· Use MS Word, Excel, PowerPoint, and electronic e-mail systems.
· Follow a Software Development Process that includes elements of planning, estimation, gathering and analyzing requirements, developing concepts and designs, implementation, developing and executing test plans’ and engaging in work product reviews.
· Perform other duties as assigned.
Education
· Bachelor’s Degree in Computer Science or Computer Engineering preferred. Minimum of a High School diploma or GED required.
Experience
· Minimum of five (5) years of experience is required.
· Experience in C/C++/ programming.
· Experience developing embedded software for VxWorks RTOS.
· Excellent written and verbal communication skills.
· Knowledge of software engineering processes, including Software configuration management and the ability to read and create appropriate project documentation.
· Knowledge of real time operating systems, control system theory, embedded software design, real time system interactions in an embedded environment.
· Knowledge of microcontroller architectures and principles of operation.
· Knowledge and ability to work with oscilloscopes, and signal generators.
Must have knowledge and intermediate experience in at least 3 or more of the following:
· Embedded microprocessor development environments.
· Serial communications (SPI, RS422, RS232, etc.)
· I2C bus
· PCIe device drivers
· Object Oriented Design with UML
· Assembly language programming
· Networking technologies such as TCP/IP, UDP, etc.
· Embedded Web Server design and implementation
· CAN communication
Preferred experience:
· Multi-core design
· Semiconductor capital equipment
· Multi-processor/distributed systems
· Python
MATLAB