Evgeny Orlov, Developer in Moscow, Russia
Evgeny is available for hire
Hire Evgeny

Evgeny Orlov

Verified Expert  in Engineering

Software Developer

Location
Moscow, Russia
Toptal Member Since
August 23, 2021

Evgeny has 28 years of development experience. He now focuses on .NET and DB engines such as Microsoft SQL Server, PostgreSQL, SQLite, and MongoDB. He began as a game developer and now specializes in databases, algorithms, and refactoring. He has been ahead of his time since the start of his career, having invented numerous approaches such as measuring underground train activity based on vibrations and distance, a tracing framework, and dynamic sea-wave algorithms when it was unheard of!

Portfolio

Micromine
.NET, C#, Microsoft SQL Server, SQLite, Git, Jira, TeamCity, Inno Setup...
Vizitech ltd (Skolkovo)
.NET, C#, Node.js, Entity Framework, Microsoft SQL Server, PostgreSQL, Docker...
Self-employed
.NET, C#, Windows Presentation Foundation (WPF)...

Experience

Availability

Part-time

Preferred Environment

Windows, Jira, Git, Visual Studio, Teams, Subversion (SVN), Visual Studio Code (VS Code)

The most amazing...

...invention I developed is a prediction algorithm, based on ML that detects the activity of giant underground loaders and trains 1km beneath the Earth's surface.

Work Experience

Team lead

2018 - 2022
Micromine
  • Invented and applied a tracing framework with optimized tracing, compact stack trace logging for all and particular messages, and asynchronous tasks path support, instantly resulting in investigating issues on the client-side.
  • Designed and implemented a custom code-first ORM similar to EF migrations for Microsoft SQL Server and SQLite, including SQL converter from T-SQL syntax to SQLite.
  • Designed two proxy-based communication frameworks based on WCF and gRPC technologies to implement a shared contract pattern. Refactored the source code to replace all communication with a gRPC proxy.
  • Invented and implemented signal filtering logic and a high-level state machine to convert raw machine learning output states into the business logic for underground loaders.
  • Invented two approaches to measuring underground train activities using vibrations and distances to position system tags.
  • Managed a group of seven developers as a part of the international software development team at the Australian headquarters. All communication was in English, including regular meetings, daily stand-ups, chats, and email trails.
  • Participated in many third-party integrations, completed a lot of refactoring, bug fixing, produced new features, and implemented ideas, which helped achieve the best performance the company ever had.
Technologies: .NET, C#, Microsoft SQL Server, SQLite, Git, Jira, TeamCity, Inno Setup, Windows Communication Framework (WCF), SignalR, gRPC, C#.NET, SQL, Databases

Chief Developer

2017 - 2017
Vizitech ltd (Skolkovo)
  • Supported single sign-on (SSO) for the company web app based on the .NET Core microservice app.
  • Created and EF-style migration mechanism for Node.js Sequelize ORM with PostgreSQL.
  • Deployed recursive full object storing and retrieving from the database mechanism to simplify its interaction.
  • Built a Node.js back-end project template for microservices.
  • Supported JWT token-based authentication in a .NET 4.6 C# back-end.
  • Improved an existing MVC back-end to provide configurable JSON scenarios and solved various EF configuration requests.
Technologies: .NET, C#, Node.js, Entity Framework, Microsoft SQL Server, PostgreSQL, Docker, Jira, TeamCity, Postman, Slack, SQL, Databases

Software Developer and Manager

2011 - 2016
Self-employed
  • Developed a complete payment system applications set, including server, client, ATM software, interactive user interfaces, and a payment module.
  • Implemented many third-party integrations with payment systems and service providers.
  • Supported different ATM hardware, including bill validators, fiscal printers, and watchdogs.
  • Provided 24/7 technical support for clients for the past five years.
  • Invented and applied a special optimized tracing technique to have compact, readable logs on a client-side to investigate issues faster.
  • Developed tools to reduce time spent on support and continuous delivery.
Technologies: .NET, C#, Windows Presentation Foundation (WPF), Windows Communication Framework (WCF), Remoting, Borland C, Microsoft SQL Server, JavaScript, Inno Setup, SQL, Databases

Сhief Technology Officer

2008 - 2010
Data Processing Systems, Ltd.
  • Managed the IT side of the software company of ten people.
  • Developed the concept and architecture of all company products.
  • Held regular meetings with clients for business planning, drafting contracts, and personal recruitment.
  • Served as a senior software developer and code reviewer in addition to my other roles in the company.
Technologies: .NET, C#, C++, Microsoft SQL Server, JavaScript, Microsoft Project, SQL, Databases

Head of Software Development

2006 - 2007
Cyberplat Ltd.
  • Developed the concept and architecture of company products.
  • Created an intermediate payment processing software for ATM aggregator companies.
  • Held regular meetings with clients for business planning and personal recruitment.
  • Managed a department of ten people and also served as a software developer.
Technologies: .NET, C#, Borland C, Microsoft SQL Server, JavaScript, Microsoft Project, SQL, Databases

Lead Programmer

2002 - 2006
Akella
  • Participated in the creation of the 3D action game PT-Boats from the beginning.
  • Invented and implemented the dynamic sea-wave vector algorithm in 2003!
  • Invented and created clouds and particle systems (I.e., fire, 3D fog, clouds).
  • Invented the dynamic level-of-detalization (LOD) algorithm for a sea.
  • Designed the game architecture. Managed a group of programmers and designers of 17 people. Wrote the main game engine graphic and sound parts.
Technologies: C++, HLSL, DirectX, Python, Microsoft Project

Software Developer

2002 - 2002
Lunelight Software
  • Created and designed my personal brand "Lunelight Software."
  • Created the dynamic Windows desktop background application "keen background" to have an interactive background in Windows 95+ based on DirectDraw overlay technology with pushing advertisements, auto-update, and installer.
  • Designed 16 animated scenes for the interactive background app with water waves, waterfall, twinkle stars, and lamps, switching light in building windows and animated fog.
  • Built a tray application to shut down Windows after the given period of time with an installer.
Technologies: C++, DirectDraw, Assembler, InstallShield

Software Developer

1999 - 2002
Overgamer & Sun
  • Acted as the sole programmer to create a famous sampler application called Samplisizer (you can still Google it). I implemented everything except the UI design, sound samples, and the web site.
  • Implemented many 2D algorithms for GUI such as fire, blur, borders, and fading.
  • Designed a sound synthesizer tool to produce special electronic sounds.
  • Invented a special sound stretching algorithm causing a no flange effect, based on FFT.
  • Provided (and continue to do so) support to those who have lost their unlock codes.
Technologies: C++, Pascal, Assembler, InstallShield

Software Developer

1997 - 1998
TECHCENTER MIEE (the research and development center of the institute)
  • Participated as a software developer in a project build similar to Skype.
  • Created sound delivery by the peer-to-peer connection of two applications via a UDP protocol.
  • Supported audio recording and playback based on the media player library.
Technologies: C++

Software Developer

1997 - 1998
DOKA Media, Ltd.
  • Participated as a C++ software developer in a 2D tactical game project.
  • Created a very fast 2D sprite rendering algorithm with scaling and rotation using Assembler.
  • Programmed the main game menu and tactical map logic.
Technologies: C++, Assembler

Software Developer

1993 - 1996
Freelance
  • Created and sold three warehouse accounting programs for different companies. I used custom DOS pseudo graphics to provide a better GUI for users.
  • Created the "Master Of Orion 3D" game prototype with a 3D star map and GUI.
  • Built the sprite editor for Wolf3D and similar ID software games.
  • Delivered a 3D program with GUI, which calculated the shape of an object produced by a set of intersecting planes.
Technologies: Turbo Pascal, 3D Studio Max, Assembler

Machine Vision to Identify States of Underground Loaders

https://www.micromine.com/pitram-mining-software/pitram-5/
Part of my responsibilities in my last place of work was to create algorithms to determine the activity of underground loaders on mining sites. The raw input from Machine Vision told us what state and what prediction level it sees, and the goal was to create algorithms that can decide what each loader is doing. I invented and implemented algorithms within a month, including signal filtering logic and special state machine. During the deployment on-site, they were tuned and provided much greater accuracy than human reports, which is a fantastic result. Besides that, I completed a lot of refactoring in the 15-year-old legacy code to make it controllable to minimize the number of issues and time spent, including the creation of a data access layer with EF-style migrations, suitable for MsSQL and SQLite with T-SQL syntax converter to unify SQL queries for both databases, unified the communication layer, based on gRPC, created production logs, automated logs delivery from the mining site units onto the server, and many other activities. Because of my activity, the company was able to deploy the solution on several large mining sites quickly and resolve all major issues in time.

Node.js Back-end Data Access Layer

After half a year of working at Visitech in .NET 4.6 and an Entity framework back-end, I was tasked with developing the Node.js back-end where I had my first Node.js development experience. The only available option to work with databases was the Sequelize package. I built the back-end template together with a micro-service. To the basic Sequelize functionality, I added Entity framework-style code, first migrations and recursive algorithms to CRUD, and a graph of linked objects into and from the PostgreSQL database using simple mask syntax to control which parts of the object graph should be affected or obtained. In other words, the front-end sent raw JSON data containing a graph of linked objects, and with the help of my add-on, it required no data transformations to CRUD it into the database all at once. I also completed many other tasks such as converting hard-coded business logic controlled by a JSON configuration, applied SSO to the product with Node.js micro-services, made simplifications to achieve a better developing speed, and added implemented JWT tokens to Node.js and C# micro-services. All that enabled the company to continue further development with minimal resources not go under.

Banking Payment System

I spent 11 years developing and supporting a complete set of banking applications to accept and process payments from users to final providers such as mobile or home internet providers. I created a client-server solution with many integrations with providers and other payment systems and ATM software with many interactive UI skins to accept payments. I integrated these with many ATM hardware (validators, printers, dispensers, watchdogs, plastic cards) and created a payment module used directly from cash-desks, wrote reports, prepared about 50 thousand provider templates, including designing and converting their logos, and related tasks. I supported clients with a 24/7/365 schedule for many years to help them avoid long pauses in payment processing. Many challenging tasks were completed during the period, for example, processing payments through a site for users (not a payment gateway) or using SMS-sending services to provide two-factor authentication for users to access their personal accounts on an ATM. I have an author's certificate for ATM and payment module software as I am the only author and owner of the software.

Dynamic Sea Waves in On-sea 3D Action Game

https://www.dropbox.com/s/oulgsnspp3rnbrc/PT_GP_01.avi?dl=0
This was a 3D action game about patrol torpedo boats during WW2, where I was the lead programmer. In the 2003-2004 year, graphic adapters were not as good in processing pixel shaders, and it had been decided to create geometric common and dynamic waves on the sea. It was quite a challenging task, as there were hard limits on the number of polygons and the sea required to have a set of LODs. I think the result is still impressive; you can check it by downloading the video. I created all particles such as clouds, fire, and dynamic fog in the project and many other parts, including audio support for ship's devastation algorithms and others.

Samplisizer

https://www.google.com/search?q=samplisizer
In early 2000, a designer, musician, and I created fantastic software for music composing called Samplisizer. We spent 1.5 years developing it, and another 1.5 were trying to sell it. The app is excellent even now. You can still download its trial version from many sources and works in modern Windows versions. I was the only programmer and implemented cool features such as adaptive app borders to make it look great regardless of the background and effects such as fire, blur, and others. To improve performance, it has a pre-render feature. All loops in the app consist of sounds and can be used with any BPM. It is still quite a cool piece of software, considering it was created in 2002. It used to be the fourth in Google search in the music sampler app section without paying for promotion.

Languages

C#, SQL, Delphi, JavaScript, C++, HLSL, Python, Assembler, Pascal, C#.NET

Frameworks

.NET, Windows Communication Framework (WCF), gRPC, Windows Presentation Foundation (WPF)

Storage

Microsoft SQL Server, Databases, SQLite, PostgreSQL, Data Integration

Libraries/APIs

SignalR, Node.js, Entity Framework, DirectX

Tools

Jira, Git, Visual Studio, Subversion (SVN), Turbo Pascal, TeamCity, Postman, Slack, Borland C, Microsoft Project, InstallShield, 3D Studio Max, Sequelize

Platforms

Windows, Visual Studio Code (VS Code), Docker

Other

Teams, Inno Setup, Remoting, DirectDraw, Hardware Drivers, API Integration

1995 - 2000

Master's Degree in Computer Science

Moscow Institute of Electronic Engineering - Moscow, Russia

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring