CTO/Technical Advisor
2017 - PRESENTMulty- Established and constantly improved the development environment.
- Chose an appropriate Git workflow, developed a guide, and conducted several training sessions. Educated and helped out fellow team members to improve their Git skills.
- Selected and set up CI integration for the core project component. Added jobs for C++, iOS, and Android that serve as a base for further improvement.
- Refined JIRA workflow to reduce ambiguity and streamline the process. (Review + ready for test phase).
- Established a process of peer and cross-reviews of the components of the system.
- Helped out in identification and removal of impending factors.
- Administered GitHub and other services (adding and removing users, ensuring proper access level and permissions, etc.).
- Formalized the release process and created a special-by-step guide for both Android and iOS.
- Took part and led the legal process. Chose an appropriate license for the source code, defined the license template and guidelines, and initiated and reviewed the CLA. Reviewed the privacy policy for the product.
- Developed a list of requirements for potential candidates for hire, built the team profile, and curated the next-to-hire list. Did pre-screening, tech, and behavioral interviews, and helped new hires to understand the domain.
- Led a team of 10 software engineers. Investigated and identified key areas and possible risks. Took part in and facilitated key technical design decisions. Helped improve the team on day-to-day tasks.
- Designed and developed a core component of the system. Developed a framework for adding new blockchain protocol families. Developed a procedure of adding new blockchain protocols or forks.
Technologies: Processing, Interviews, Team Management, Go, C++, iOS, AndroidSoftware Engineer
2017 - 2018Percona, LLC- Improved the test system to take half the time to run all the tests. That resulted in great reduction of CI load, improved fellow engineer performance, and improved overall product quality.
- Fixed bugs and maintained a huge codebase of a MySQL fork.
- Merged the new MySQL release into PXB, which is technically a fork of MySQL.
Technologies: Jenkins, Linux, Bash, MySQL, C, C++Senior C++ Software Engineer
2016 - 2017Solarwinds MSP Technology- Created a thread-safe SQLIte wrapper with a pool of prepared statements, which allows reuse of popular queries without recompiling. The wrapper also provides an additional layer of convenience and safety, allowing session termination while it is still being used from other threads.
- Implemented a new binary storage format for backed up data that brings better storage efficiency, data consistency and better run-time performance. Implemented facilities for performance testing new vs old data formats vs. platform native file system operations.
- Worked on migrating an existing solution from the old to the new meta-data storage back-end.
- Upgraded and set up an existing build system and toolchain on CI server to support C++11 builds.
- Led a small team of back-end engineers.
Technologies: SQLite, Multithreading, Boost, FreeBSD, Linux, C++Python Software Engineer
2014 - 2016Wargaming.net- Designed and implemented a data packing protocol for Node-to-Node and Node-to-Client communication in a distributed high-load system with significantly reduced amount of traffic in certain conditions (30% to 70% reduction on average). That allowed for rollout of a new game mode that would otherwise increase traffic spikes to a level that would cause significant lag and negatively affect user experience.
- Implemented a matchmaking system for the bot sandbox mode.
- Improved the tutorial system back-end for the "Funnel" project. Also performed refactoring of the quest engine.
- Fixed lots of bugs and made improvements to the existing Python back-end of a high-load project.
Technologies: BigWorld, RabbitMQ, Subversion (SVN), PythonC++ Software Engineer
2014 - 2014Yandex, LLC- Worked on a Chromium-based web browser, implementing various UI features and fixing bugs in legacy code.
- Added unit and user interaction tests over existing and new functionality.
- Resolved integration and merge issues.
Technologies: NinjaScript, Google Test, Stash, Jira, TeamCity, LLDB, GDB, Linux, MacOS, Windows, Python, Cocoa, Git, C++C++ Software Engineer
2005 - 2013ScienceSoft, Inc.- Improved performance of image decoding in an image-processing framework by using multi-threaded decoding, smart algorithms, and common scenes. Maintained, refactored, and fixed bugs for the same project.
- Implemented an auto-update feature for Qt-based cross-platform VoIP client. Ported the application to the Linux platform and implemented platform-dependent startup code for both Linux and Windows platforms.
- Built a Symbian app client for a synchronization service. Implemented synchronizing data to/from various data sources. Updated HTTP support to allow huge files downloads.
- Worked on lots of other Symbian applications, but since Symbian has been dead for a long time now, there is little sense in describing it all here.
Technologies: Symbian, Linux, MacOS, Windows, CMake, Qt, Boost, Python, C++