Job Requirements
- 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
-
Develop the next phase activities and bug fix for the released code base.
-
Communicate the weekly status and clarifications with customer.
-
Overall understand of the system and project which involves all modules (Hardware to the Management applications).
Work Experience
Required Skills (Technical Competency):
-
Strong proficiency in C++, C++ 14 with Linux and thorough knowledge of the standard library, STL containers, and algorithms.
-
Well versed with OOAD, Design Patterns and UML (Class and Sequence Diagram).
-
Familiar with Linux kernel configuration, build and packaging.
-
Good experience with tool chain, make files and build infrastructures.
-
Well versed with multithreading concepts Knowledge of Smart Pointers and Lambda function
-
Good understanding of memory management in non-garbage collected environments
-
Familiarity with embedded systems design, low-level hardware interactions
-
Familiarity with system call wrapper library functions Familiarity with language tools and other debugging tools Knowledge of component data sheets and specifications
-
Implementation of automated testing platforms and unit tests Proficient understanding of code versioning tools such GIT and SVN
-
Familiarity with continuous integration.
-
Good to have experience in using BOOST library.
Desired Skills:
-
Customer communication capability.
-
Fast learner, team player and logical thinking.
Good to Have:
Familiarity with Embedded Linux based Gateways
Familiarity with arm-on-arm architecture
Experience in customization/integration of industrial protocols like MODBUS, OPC-UA etc