Vasily Nemkov
Verified Expert in Engineering
Software Design Developer
Vasily is a seasoned software engineer with over 15 years of commercial experience, proficient in designing and developing C++, Python, Svelte, Flutter, and Vanilla JS software. He loves solving complex issues and creating robust, efficient, and maintainable solutions. He learns new things on the go and spreads the knowledge, sharing it with colleagues and friends.
Portfolio
Experience
Availability
Preferred Environment
MacOS, C++, Linux, Python, Svelte
The most amazing...
...thing I've done is nourishing and growing a startup—shaping a team, environment, and processes, delivering the critical cross-platform component of the system.
Work Experience
CTO | Technical Advisor
Multy
- Established and constantly improved the development experience of the team. Helped out in the identification and removal of impending factors. Established a process of peer and cross-reviews of the components of the system.
- Led a team of 10 software engineers. Investigated and identified key areas and possible technical risks. Took part in and facilitated key technical design decisions of all parts of the solution: core, mobile apps, and back end.
- 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. Formalized the release process and created a step-by-step guide for both Android and iOS.
- Refined Jira workflow to reduce ambiguity and streamline the process (review and ready for test phase).
- Designed and developed a core cross-platform component of the system. Built a framework for adding new blockchain protocol families. Developed a procedure for adding new blockchain protocols or forks.
- Chose an appropriate Git workflow, developed a guide, and conduct several training sessions. Educated and helped out fellow team members to improve their Git skills.
- Administered GitHub and other services (adding and removing users, ensuring proper access level and permissions, etc.).
- Took part and led the legal process. Chose an appropriate source code license, 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. Conducted pre-screening, tech, and behavioral interviews and helped new hires understand the domain.
Software Engineer
Percona, 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.
Senior C++ Software Engineer
Solarwinds 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.
Python Software Engineer
Wargaming.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.
C++ Software Engineer
Yandex, 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.
C++ Software Engineer
ScienceSoft, 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.
Experience
Multy Core
https://github.com/Appscrunch/Multy-CoreFeatures:
- Single seed phrase for all your wallets
- Private\public blockchain-specific keys
- Creating and signing blockchain transactions
- Supports Bitcoin, Ethereum and Golos blockchains
- Testnet keys differ from Mainnet keys
- Supported BIPS: BIP32, BIP44, BIP125
- Paying to P2PKH and P2SH (+ Segwit) Bitcoin address
- Easy to add new blockchain protocol support into existing framework
Helped lead mobile and back-end teams in order to release a complete wallet solution with best UI, UX, and security possible.
Chess Game
Skills
Languages
C++, Python, C++11, UML, C, Bash, Go, Processing, QML
Tools
Git, CMake, Jira, Buildbot, TeamCity, Stash, RabbitMQ, Jenkins, Subversion (SVN), CTest, Qmake, GDB, LLDB, Travis CI
Paradigms
Object-oriented Programming (OOP), Metaprogramming, Template Metaprogramming, Design Patterns
Frameworks
Google Test, Cocoa, Qt, Boost, Qt Quick, Svelte
Libraries/APIs
Standard Template Library (STL), NinjaScript
Platforms
Linux, Symbian, FreeBSD, Android, iOS, MacOS, Windows
Storage
SQLite, MySQL
Other
Technical Leadership, Software Design, Algorithms, Multithreading, Data Structures, Team Leadership, BigWorld, Team Management, Interviews
Education
Bachelor's Degree in Telecommunication
Belarusian State University of Informatics and Radioelectronics - MInsk, Belarus
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring