Responsibilities
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
Skills
Strong proficiency in C++, with fair knowledge of the language specification
Thorough knowledge of the standard library, STL containers, and algorithms
Good understanding of memory management in non-garbage collected environments
Understanding of dynamic polymorphism and C++ specific notions, such as friend classes
Familiarity with templating in C++
Knowledge of the latest C++11 standard is appreciated
Familiarity with embedded systems design, low-level hardware interactions
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 language tools, such as Valgrind
Knowledge of component data sheets and specifications
Implementation of automated testing platforms and unit tests
Proficient understanding of code versioning tools
Familiarity with continuous integration