

Andrei Smirnov
Verified Expert in Engineering
Full-stack Developer
Antalya, Turkey
Toptal member since December 11, 2014
Andrei is a passionate back-end and protocol engineer with 23 years of experience working for industry leaders such as Chainlink Labs, Microsoft, EMC, Motorola, and Deutsche Bank. He's built numerous successful projects across various mobile, desktop, and web software stacks. Currently, Andrei focuses on back-end, protocol, and blockchain development, leveraging his expert-level Go skills.
Portfolio
Experience
- Cryptography - 10 years
- Go - 8 years
- Blockchain - 4 years
- PostgreSQL - 4 years
- Ethereum - 4 years
- Web3 - 4 years
Preferred Environment
Linux, MacOS
The most amazing...
...things I’ve built are distributed systems that empower oracle networks, distributed validators, and more.
Work Experience
Principal Blockchain Protocol Engineer
Blockchain Startups
- Designed and built various blockchain projects: distributed oracles networks, distributed validators technology, consensus algorithms, Web3 protocols, Web3 apps, and more.
- Designed distributed systems and implemented observability and alerting.
- Contributed to open-source projects in the blockchain space.
Lead Software Engineer
mode.io
- Designed and developed a post-quantum, secure messaging system that included client framework, client applications, back end, and web portal management.
- Refactored legacy crypto code using the newest C++17 features, with full test coverage and a new build system with CMake and Conan.
- Designed and integrated voice and video calls with WebRTC.
- Added support to WebAssembly (Emscripten) to enable messaging applications to run in browsers.
- Mentored new team members, conducted technical webinars, and maintained detailed documentation.
Freelance Software Engineer
DreamFactory
- Designed and developed .NET SDK for DreamFactory API: https://github.com/dreamfactorysoftware/.net-sdk.
Technical Lead
Return On Intelligence
- Designed and developed a web portal for employee benefits management (insurance, retirement, etc.).
- Introduced a web services mocking approach to ease local debugging and troubleshooting.
- Enabled automatic testing using Selenium. Implemented and enforced product quality tools.
- Dramatically improved corporate build and deployment strategy to minimize day-to-day efforts.
Lead Application Developer
Deutsche Bank
- Designed and developed a metadata-driven framework for desktop interoperability and enabled several existing applications to use this framework. Currently, all Autobahn software is using this framework called Synapse.
- Enhanced WPF applications (FX trading) for investment banking in respect to performance, security, and code quality.
- Developed a number of WPF controls (MVVM) for banking applications.
Software Developer
Microsoft
- Developed a rapid data serialization SDK (similar to Google ProtoBuf), including the C# code generator for it: Github.com/microsoft/bond.
- Built an object-oriented logging framework (business data logging) for in-house cloud infrastructure, now used by AdCenter and Bing.
- Implemented a remote-procedure calls (RPC) engine and toolset for a brand new key-value store (NoSQL) currently used by Azure.
Senior Software Engineer
EMC Corporation
- Worked on a high-availability Linux-based cluster (HA), integrating and configuring Pacemaker for network-attached storage (NAS).
- Introduced cgroups feature usage to the HA cluster.
- Developed an out-of-memory (or overcommit) monitoring daemon in C.
Senior Software Engineer
Motorola, Inc.
- Worked on several Motorola mobile device platforms, implementing security features (JSR177), branding services (T-Mobile MyFaves), etc.
- Integrated Adobe Flash Lite player to the mainstream Motorola mobile platform (P2K). Collaborated with Adobe.
- Participated in AJAR mobile platform development.
- Developed a number of internal tools for embedded software development in C# and C++.
Senior Software Engineer
The Institute of Telecommunications
- Designed and developed a 3D engine for GIS (Geo informational services) in C++, STL, and OpenGL.
- Developed a cross-platform computational geometry math library in C++.
- Designed and built a full-featured application suite for manipulating GIS data.
- Programmed a large-images processing engine (satellite imagery) in C and C++.
Experience
REVERSCREEN
https://github.com/pinebit/reverscreenStack: Qt, C++, OpenCV library, and more.
DB Autobahn
https://autobahn.db.comI designed and implemented a flexible interoperability protocol that connected many Autobahn products (existing and new). This system is called Synpase and is currently in production and driving the Autobahn ecosystem.
Demoscene: 4k Intro
Sochi - 3D Engine for GIS
http://www.youtube.com/watch?v=bNE4WX1v-W8#t=204Computational Geometry API for Nokia Gate5 GmbH
http://www.youtube.com/watch?v=Yh1eUudkxgcAutobahn Toolbar
https://www.toolbar.autobahn.db.comVault
https://github.com/pinebit/vaultImagine you needed to persist some user-sensitive information in a password-protected file—this little library addresses this need.
React-CR
https://github.com/pinebit/react-crThe Largest App
https://github.com/pinebit/largestappStack: C++ and Qt5 with QML UI.
Jet Pipes
https://github.com/pinebit/JetPipesStack: C++, Qt 5, Qt3D.
Yet Another Ethereum Brute Force Tool
https://github.com/pinebit/eth-brute-forceEvery other blockchain engineer implements this exercise, for fun.
If you are really serious about using this tool, then bear in mind the probability of encountering a private key that corresponds to someone else’s Ethereum address is around 1 in 2^256. To cover just 1% of that keyspace, even if we used computing resources that would allow us to generate 100 trillion keys per second, it would take us roughly years. Eventually, your electricity bills and the cost of hardware you used will exceed the benefit of "hacking" someone's address. You've been warned.
ETH Transactions Listener
https://github.com/pinebit/eth-listenerStack: Go, Geth
Balabol AI Translator App
https://balabol.app

.NET Best Practices and Tips by Toptal Developers

The Missing Article About Qt Multithreading in C++

A Vital Guide to Qmake

How to Boot-strap and Create .NET Projects

Meet Bond, Microsoft Bond - A New Data Serialization Framework
Education
Specialist Degree in Engineering
Baltic State Technical University - Saint-Petersburg, Russia
Skills
Libraries/APIs
Protobuf, React Redux, React, OpenGL, OpenSSL, Win32 API, WebRTC, REST APIs, jQuery
Tools
Stash, Jira, ReSharper, Microsoft Visual Studio, Git, Roslyn, CC.NET, SonarQube, CMake, Qmake, Grafana, Pacemaker, Visual Studio, GIS, JSX
Languages
C, Go, QML, C++, C#, UML, JavaScript, Visual Basic for Applications (VBA), Domain-specific Languages (DSLs), Python 3, SQL, Solidity, C++17
Frameworks
Redux, .NET, Qt, Google Protocol Buffer, Windows Presentation Foundation (WPF), AngularJS, NUnit, ASP.NET Web API, Chromium Embedded Framework (CEF), Qt 5, Next.js
Paradigms
Concurrent Programming, Unit Testing, Test-driven Development (TDD), REST, MapReduce, RESTful Development
Platforms
Ethereum, Windows, Blockchain, BlackBerry, Linux, Docker, MacOS, Windows Phone
Storage
NoSQL, Microsoft SQL Server, SQLite, PostgreSQL, MySQL, RocksDB
Other
Cryptography, IPC, WebSockets, APIs, 3D Graphics, Windows Communication Foundation (WCF), Code Contracts, MSYS2, Cryptocurrency, Web3, Ethers.js, Prometheus, Web Services, JetBrains IDE, Chromium, WebAssembly (Wasm), People Management, Mentorship, Embedded Systems, Qt 3D, Custom Protocols, App UI, Ethereum Smart Contracts, Decentralized Finance (DeFi), Interviewing, Forge, Grafana 2
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