Job Title: C++ Programmer
Reports To: Engineering Manager
Revision Date: 08/10/2017
NOTE: This job description is not intended to be all-inclusive. Employee may perform other related duties as negotiated to meet the ongoing needs of the organization.
We are looking for a C++ developer responsible for developing kernel modules, embedded systems, and libraries for high-level languages. Your primary responsibility will be to study the APIs of these different environments and apply your skills to develop modules that are efficient, reliable, and easy to maintain.
Duties and Responsibilities:
- Work with engineering team to develop new machine control/detection program based on code initially written in Visual Basic 5
- Design, build, and maintain efficient, reusable, and reliable C++ code
- Implement performance and quality modules
- Identify bottlenecks and bugs, and devise solutions to these problems
- Help maintain code quality, organization, and automatization
- Strong proficiency in C, with fairly complete knowledge of the language specification
- Thorough knowledge of the standard library as specified by ISO and ANSI
- Good understanding of memory management in non garbage collected environments
- Knowledge of low-level threading primitives and real-time environments
- Familiarity with system call wrapper library functions
- Knowledge of writing native modules for high-level languages such as Node.js, Python, Go, etc.
- Familiarity with embedded systems design and low-level hardware interactions Knowledge of component data sheets and specifications
- Familiarity with language tools, such as Lint, Valgrind, etc.
- Proficient understanding of code versioning tools
- Familiarity with continuous integration
- BS degree in relevant engineering, programming, or scientific field
- Past experience working on detection equipment is highly desired
- Past experience working on complex hardware systems is highly desired