About this role
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