Vasily Nemkov, Software Design Developer in Minsk, Minsk Region, Belarus
Vasily Nemkov

Software Design Developer in Minsk, Minsk Region, Belarus

Member since December 12, 2016
Vasily is a seasoned software engineer with over twelve years of commercial experience, proficient in designing and developing software in C++ and Python. He loves solving complex issues and designing robust, efficient, and maintainable solutions. He learns new things on the go and spreads the knowledge, sharing it with colleagues and friends.
Vasily is now available for hire

Portfolio

Experience

  • C++ 13 years
  • Object-oriented Programming (OOP) 13 years
  • Software Design 9 years
  • Boost 5 years
  • Data Structures 4 years
  • Algorithms 4 years
  • C++11 3 years
  • Technical Leadership 2 years

Location

Minsk, Minsk Region, Belarus

Availability

Part-time

Preferred Environment

MacOS, C++, Linux

The most amazing...

...Nourished and grown a startup, shaped a team, environment, processes and procedures. And developed a core component of the product at the same moment.

Employment

  • CTO/Technical Advisor

    2017 - PRESENT
    Multy
    • 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, Android
  • Software Engineer

    2017 - 2018
    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.
    Technologies: Jenkins, Linux, Bash, MySQL, C, C++
  • Senior C++ Software Engineer

    2016 - 2017
    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.
    Technologies: SQLite, Multithreading, Boost, FreeBSD, Linux, C++
  • Python Software Engineer

    2014 - 2016
    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.
    Technologies: BigWorld, RabbitMQ, Subversion (SVN), Python
  • C++ Software Engineer

    2014 - 2014
    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.
    Technologies: NinjaScript, Google Test, Stash, Jira, TeamCity, LLDB, GDB, Linux, MacOS, Windows, Python, Cocoa, Git, C++
  • C++ Software Engineer

    2005 - 2013
    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.
    Technologies: Symbian, Linux, MacOS, Windows, CMake, Qt, Boost, Python, C++

Experience

  • Multy Core
    https://github.com/Appscrunch/Multy-Core

    Designed and developed a cross-platform mobile-first multi-blockchain wallet core.

    Features:

    - 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.

Skills

  • Languages

    C++, Python, C++11, UML, C, Bash, Go, Processing, QML
  • Paradigms

    Object-oriented Programming (OOP), Metaprogramming, Template Metaprogramming, Design Patterns
  • Frameworks

    Google Test, Cocoa, Qt, Boost
  • Libraries/APIs

    Standard Template Library (STL), NinjaScript
  • Tools

    CMake, Jira, Buildbot, Git, TeamCity, Stash, RabbitMQ, Jenkins, Subversion (SVN), CTest, Qmake, GDB, LLDB, Travis CI
  • 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
    2003 - 2008
    Belarusian State University of Informatics and Radioelectronics - MInsk, Belarus

To view more profiles

Join Toptal
Share it with others