
Effective Development Engineer, Петербург.
▷ Работодатель: HUAWEI
(профиль,отзывы)
💰 From 0 RUR. | Режим: office |
10
* This listing is inactive or archived *
We provide services and extensions to cover all aspects of application development related to Data Communication Product Line. The products developed by our team are widely used in all enterprise-level telecom projects at Huawei to help developers write better code and be more productive.
Our team is focused on creating automatic testing framework for embedded system software written in C/C++ language. This product is based on the open source technologies such as KLEE virtual machine, LLVM/Clang, and symbolic execution tools. The main goal is to reduce the effort of creating and maintaining unit tests for new and existing code.
The testing tool sets developed in our team are centered on the following features:
- C/C++ source code analysis;
- Symbolic execution and constraint solving;
- Dynamic coverage evaluation;
- Automatic generation of test case data;
- Automatic mocking;
- Automated generation and execution of unit tests;
Responsibilities:
- Developing components for unit testing framework to generate automated scripts in C++;
- Contributing to the development and maintenance of KLEE symbolic execution engine;
- Using LLVM/Clang API to extract information from C/C++ source code under test;
- Developing state-of-the-art algorithms in areas of compiler technologies and program analysis;
- Implementing different test-driven development features according with customer needs;
- Profiling, analyzing and optimizing the developed software;
- Collaborating with internal and external team members to solve complex issues;
Requirements:
- Strong background in C++ with knowledge of modern C++(11, 14, 17) features;
- Knowledge of Symbolic Execution;
- Good understanding of multi-threading and IPC;
- Ideally, previous experience with LLVM/Clang framework;
- Experience working in Linux based environments;
- Experience in developing complex algorithms and working with data structures;
- Strong debugging skills;
- Familiarity with SQL, CMake, testing frameworks, Rust and Git would be a plus;