The candidate will design and program real-time embedded systems in C/C++ for machine vision and control applications. The candidate should be familiar with the entire software development process including requirements analysis, design, implementation, integration and test. Familiarity with structured analysis and design as well as object-oriented analysis and design is required. The candidate must be able to operate independently with minimal supervision in a fast-paced, dynamic, highly technical environment and work on multiple concurrent, cross-functional projects. A successful candidate must be highly self-motivated and have a fundamental understanding of real-time embedded systems that include microcontroller and embedded systems software development tools and methodologies.
- 5+ yrs real-time & embedded software engineering experience
- Experience programming in C and C++
- Working knowledge of real time system architecture and real time operating systems (RTOS) such as VxWorks, QNX, Embedded Linux, Sys/BIOS, etc.
- Demonstrated knowledge of electronic hardware, real-time computing platforms including single board computers and microcontrollers, oscilloscopes, logic analyzers, etc.
- Familiarity with scripting languages for data processing and test automation (e.g. Perl, Python, Ruby, Bash).
- Experience developing on both Windows and Linux platforms
- Ability to identify and analyze problems in a systematic and timely manner, drawing correct and realistic conclusions based on data and information, and accurately assessing the root cause before moving to a solution
- Ability to balance multiple projects and communicate project status, issues and requirements efficiently
- Demonstrated self-starter – proactive in determining goals and objectives and pursuing the necessary course of action. Takes the initiative to learn the systems, software and job duties
- Experience using version control systems such as Subversion, git
- Experience with the Microsoft Office suite of tools (e.g. Word, Excel, Project, and PowerPoint)
- Knowledge of VxWorks
- Experience in C++
- Experience with image processing algorithms and high speed controls algorithms.
- Working knowledge of general bus standard concepts (BME, PCI, PCIe, USB, CAN, etc)
- Ability to understand hardware schematics