İşin təsviri
Responsibilities:
- Design, build, and maintain efficient, reusable, and reliable C++ code
- Implement performance and quality modules
- Develop and implement software systems from requirements to production and commercial deployment
- Identify bottlenecks and bugs, and devise solutions to these problems
- Help maintain code quality, organization, and automatization, testing and debuging
- Analyze and enhance efficiency, stability and scalability of system resources
- Integrate and validate new product designs
- Support software QA and optimize I/O performance
- Interface with computer hardware and development
- Assess third party and open source software
Requirements:
- Proven working experience in software engineering
- Bachelor or master’s degree in Computer Science, Computer Engineering or equivalent degree
- Proven experience in windows and unix-like operating systems
- Familiarity with software configuration management tools, defect tracking tools, and peer review
- Excellent knowledge of OS coding techniques, network protocols, interfaces and hardware subsystems
- Strong documentation and writing skills
- 2 or more years of professional experience
Skills and knowledge:
- 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
- Excelent knowledge in compiler and toolchain technologies such GNU Compiler Collection (GCC), Microsoft Visual C++, MinGW, LLVM and others
- Familiarity with templating in C++
- 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.
- 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 others)
- Familiarity with continuous integration
- Make sure to mention other frameworks, libraries, or any other technology relevant to your project
- Strong proficiency in C++ UI Frameworks (Qt, wxWidget, GTK and others)
- Experience with Linux or other POSIX compatible operating systems
- Software Build Systems such as CMake, NMake
- Windows and Linux OS lower-level API-s knowledge
- Assembler or Java skills are a plus
- Good source-level debugging skills
- Strong problem-solving skills
- Good knowledge in software development environments and tools including IDE (MS Visual Studio, MS Visual Code, Qt Creator, CLion and others), editors, compilers, linkers, emulators, debuggers, analysis and monitoring tools
- Knowledge of minimum of C++11, Standard library knowledge, Boost C++ library knowledge, Multi-threaded programming using standard C++, ANSI C knowledge to be able to read and possibly extend some lower level modules, Unit-testing, Knowledge of concepts such as code coverage
- Security, encryption libraries is a plus
- Http(s) libraries knowledge is a plus
- Specific knowledge of RDMS and NoSQL databases, SQL, Open Source, Shell Script, Perl is a plus
Salary Range: 2,500-4,500 AZN
Monthly salary will be negotiated during the interview, depending on the knowledge, skills, and experience of the candidate.
Working days/hours: Monday – Friday from 09:00 to 18:00. Saturday/Sunday – weekend.
Eligible candidates are asked to send their resume with the “C++ Developer” in the subject line.