Professional skills
Programming languages
- C++ developer with over 20 years of professional experience
- Good experience with modern C++17 / C++20
- Know Python well (up to version 3.9)
- NumPy, SciPy, pandas; virtual environments
- Some practical experience with Java, BASIC dialects and JavaScript
I specialize in
- Desktop development, mostly Windows
- Worked with Linux and other *nix too, but not as a professional developer
- Software optimization and high-performance computations (mostly CPU)
- 3D graphics and 3D data processing, 3D scanners, SLAM
- Complex and math-heavy algorithms
- Qt for UI development (both widgets and QML)
Professional skills
- Knowledgeable in multithreading. Synchronization primitives and related problems, atomics, actors
- Know how to use profiler tools (VTune, etc.) to identify the right place to optimize
- Can optimize code manually with SSE / AVX / AVX2 intrinsics
- Know x86 assembler and can use it to debug particularly nasty problems
- Understand software vulnerabilities and how to find and fix those
- Rapid prototyping and helper tools written in Python
- Interfacing between Python and C/C++ components
- Used regular expressions and compilers-of-compilers
- Wrote software that was part of custom hardware
- Coauthored 24 patents
- Know the value of unit tests and test-driven development
- Know how to build good automatic SQA pipelines
- Some experience with LLMs and related SW development (Cursor)
- Some experience with generic machine learning and traditional neural networks
- Participated in the full product development cycle, software deployment, tracing bugs and solving problems reported by customers in the field
- Old enough to understand where it's better to settle on "just good" instead of "the best" for some components and yet still get the best software overall :)
Specific software tools and libraries
- Git, JIRA, Bitbucket, Conan and other essentials
- Visual Studio, Clang, Intel C++
- Eigen, OpenCV, Boost, Qt
- Extensive experience with MSBuild, limited experience with CMake
Soft skills
- Quick learner, adapt easily
- Know the value of team collaboration
- Worked as team leader for many years (team size: 5-7 people)
- Worked with geographically distributed multinational teams
- Know how to work with difficult people and not to start stupid fights
- Excellent documentation skills (worked as a journalist...)
Languages
- Russian - native
- English - C1 level
- Armenian - A1 level