Software Development Engineer II - C++
Summary
C++ developer (SDE II) at a Bengaluru/Delhi defence-tech startup building unmanned aerial platforms and robotic swarms. Day to day: design, build and maintain efficient C++ code for desktop, Android and embedded applications using Qt and STL, with focus on performance, memory management, threading, testing and code quality.
About the job :
Who we are :
We are a start-up based out of Bengaluru & Delhi NCR.
We are engaged in development of next generation missions and technologies (NGM&T) towards future warfare needs of the Indian defence forces.
It is undertaking research towards enhancing persistence and autonomy for unmanned vehicles and robotic swarms.
NRT's product development portfolio includes a solar power stratospheric high altitude pseudo satellite (HAPS) unmanned platform and an air/ground launched stand-off autonomous system.
Roles and Responsibilities :
We are looking for a C++ developer responsible for building applications that may range from desktop to native mobile applications and embedded systems.
- Primary responsibility will be to design and develop applications, and to coordinate with teams working on different layers of the infrastructure.
- 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
Must have skills :
- Strong proficiency in C++, with fair knowledge of the language specification
- Thorough knowledge of the standard library, STL containers, and algorithms
- Good knowledge of QT platform and be able to build to android and Linux environments
- Familiarity with integrating opengl libraries is appreciated
- 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
- Knowledge of low-level threading primitives and real-time environments
- Familiarity with system call wrapper library functions
- Knowledge of component data sheets and specifications
- Implementation of automated testing platforms and unit tests
- Proficient understanding of code versioning tools (such as Git, SVN, and Mercurial)
- Familiarity with continuous integration
- Familiarity with Ardupilot based GCS like (QGroundControl) will be an added advantage.
Education & relevant experience :
- Bachelors/Master's in Computer Science
- 2 - 5 years of relevant development experience
