Position: Middle C++ Software Engineer
Category: C++
English level: upper
Years of experience: 4

- Managed a small development team during the implementation of a new feature.
- Carried out a study of existing solutions for building depth maps and proposed own stereo matching algorithm.
- Accelerated project compilation by refactoring existing modules.
- Improved word tokenization mechanism by using the ICU library.
While working on many projects, I have solved problems related to:
• developing new code in C/C ++ for multithreading using synchronization mechanisms, as well as debugging multithreaded code;
• networking (building client-server interaction, implementing database networking protocols, parsing network packets using the Wireshark, designing WebAPI);
• databases (writing queries, organizing and maintaining services);
• computer vision (research of existing solutions, development of new algorithms);
• cross-platform applications support, refactoring, and debugging.

Some of the significant projects:
1. Remote Console
The client-server application allows access to a remote terminal without using the Telnet protocol. Target platform - Windows. API for the console from Microsoft. The server is synchronous, based on the specifics of the task: the user writes a command to the console, which is executed on the server. Using the Console API, the output buffer is read and sent back to the client. The server console is running as a separate process.
Technologies: C++ 11, Cereal (for serialization), STL, QT, WinAPI, Console API.
2. SQL proxy
TCP proxy server for MySQL with the ability to log all SQL queries passing through it. Proxy has the ability to handle many connections without creating a thread for each connection.
Technologies: C++ 11, STL, Boost::Asio, MySQL, sysbench.
3. Software for calculating depth maps of stereo images
Development of a solution for getting depth maps of stereo images with minimal preparations based on the own algorithm for stereo matching. The designed algorithm uses superpixel segmentation (SLIC), which helps to enhance the quality and acuity of resulting disparity \ depth maps and gives an opportunity to move from physical pixels to superpixels - clusters of pixels with similar properties and operate on those levels.
Technologies: C++ 11, STL, OpenCV.
- Flexible working hours
- Lack of automatic time-tracking systems
- Paid vacation and sick leave