Lev Yastrebov, Developer in Antalya, Turkey
Lev is available for hire
Hire Lev

Lev Yastrebov

Verified Expert  in Engineering

.NET Developer

Location
Antalya, Turkey
Toptal Member Since
April 29, 2020

Lev is an accomplished C# and .NET developer who leverages test-driven development, static analysis, and in-depth knowledge of technologies to solve business tasks with effective, robust, and clean code. Lev has strong abstract thinking abilities, which he applies to develop anything from complex algorithms to web apps, frameworks, and APIs.

Portfolio

Freelance
.NET Core, Moq, xUnit, Design Patterns, Matrix Algebra, Computational Geometry...
Freelance Client
C#, C#.NET, .NET, Algorithms, Computational Geometry, Matrix Algebra...
Wärtsilä Voyage (formerly Transas)
SQL, .NET, Python, OpenGL, xUnit, TypeScript, JavaScript...

Experience

Availability

Part-time

Preferred Environment

.NET, Visual Studio 2022

The most amazing...

...and science-intensive algorithm I've created constructed realistic 3D surfaces of the sea bottom based on incomplete and conflicting data from nautical charts.

Work Experience

Freelance Software Engineer

2020 - PRESENT
Freelance
  • Provided ongoing services as a remote developer for Toptal clients using C#, .NET, and algorithms.
  • Designed architecture and implemented various applications, from spatial data processing algorithms to sophisticated enterprise applications.
  • Implemented automated tests: unit tests, integration tests, functional tests, and automated UI tests.
  • Explored the most effective technologies and devised ideas to achieve the client's business requirements and goals.
  • Reported status updates and plans daily to appropriate audiences.
Technologies: .NET Core, Moq, xUnit, Design Patterns, Matrix Algebra, Computational Geometry, Geometry, Algorithms, SQL, APIs, C#, .NET, Software Architecture, Technical Leadership, Agile, Architecture, CI/CD Pipelines, Visual Studio, RESTful Web Services, Test-driven Development (TDD), Visual Studio Code (VS Code), WireMock, Gang of Four (GOF) Design Patterns, Relational Databases, Microsoft SQL Server, Refactoring, Unit Testing, Concurrent Programming, Inversion of Control, SOLID Principles, Model View ViewModel (MVVM), Object-oriented Programming (OOP), T-SQL (Transact-SQL)

Freelance Software Engineer

2020 - 2021
Freelance Client
  • Developed an application using C# that processed spatial datasets with up to 1 million points with streets, buildings, and luminaires to calculate street illuminance. It optimized the set of luminaires to achieve the most energy-efficient lighting.
  • Modernized an existing full-stack web application using JavaScript, Django REST Framework, and PostgreSQL by adding and utilizing a new ASP.NET Core back end, which performed fast local lighting calculations.
  • Helped the client to recover broken web apps in Google App Engine and Google Compute Engine (GCE).
  • Established the complete CI/CD pipeline on GitHub Actions with automatic releases and unit, integrational, and functional tests.
Technologies: C#, C#.NET, .NET, Algorithms, Computational Geometry, Matrix Algebra, ASP.NET Core, Back-end, Google Cloud, Google Cloud Console, Google App Engine, Google Compute Engine (GCE), GitHub, API Design, PostgreSQL, DXF, Testing, Unit Testing, Integration Testing, E2E Testing, Dependency Injection, DI, Design Patterns, Console Apps, Web API, Web, xUnit, xUnit.net, Moq, Software Architecture, Google Cloud Platform (GCP), CI/CD Pipelines, Visual Studio, Test-driven Development (TDD), Gang of Four (GOF) Design Patterns, Concurrent Programming, SOLID Principles, Object-oriented Programming (OOP)

Senior Software Engineer

2012 - 2020
Wärtsilä Voyage (formerly Transas)
  • Designed and implemented the science-intensive algorithm of 3D sea bottom modeling based on the data from the nautical charts. I read dozens of scientific articles in English to understand and implement suggested algorithms using C++.
  • Created the front end for a web-based internal system for chart database management, which handled more than 13,000 charts. I used JavaScript with Vue.js and TypeScript to build a useful web application with unit test and integration tests included.
  • Designed architecture for the plug-in interaction system of the 2D editor platform for cartographic data using design principles, best practices, and C#. Five internal and external products were successfully built on that platform.
  • Engineered functionality in 2D cartographic data editor for interactive texture mapping of land objects using OpenGL, C++, and C#. Achieved acceleration of texture adjustment by an average of eight times.
  • Improved Azure Application Insights telemetry coverage and structure for a large 177 projects included and complicated ASP.NET based fleet management service back end.
  • Implemented diff and merge functionality for cartographic data, where objects could have changed properties and positions. The nav data update process sped up from hours to minutes by eliminating manual objects lookup and comparison.
  • Created an internal MVVM like WPF framework that removed all the boilerplate from dialogs and took over work with apply cancel actions, validation, and layout serialization. That dropped the amount of code by 3-5 times and made it more manageable.
  • Introduced integration testing for the complicated desktop application written using C#, C++, C++/CLI, and registration-free COM. The main problem was to run tests in single-threaded apartments and to write the custom assembly activation context.
Technologies: SQL, .NET, Python, OpenGL, xUnit, TypeScript, JavaScript, Windows Presentation Foundation (WPF), C++/CLI, C++, C#, Azure Application Insights, Technical Leadership, Agile, Architecture, CI/CD Pipelines, Visual Studio, RESTful Web Services, Agile Software Development, REST API Architecture, Visual Studio Code (VS Code), Gang of Four (GOF) Design Patterns, Relational Databases, Refactoring, Unit Testing, Concurrent Programming, SOLID Principles, Model View ViewModel (MVVM), Object-oriented Programming (OOP), Extreme Programming, COM, T-SQL (Transact-SQL)

Software Engineer

2011 - 2012
The State Financed Institution for Investment Management
  • Studied network interaction basics and connected the organization to the system of interdepartmental electronic interaction using C# and WCF. It was a step towards creating e-government.
  • Explored a complicated business process and developed an electronic chart module for the organization's document flow system. It helped nearly 50 employees during their jobs and decision-making process.
  • Worked on other features, suggested, and implemented UI/UX ideas.
Technologies: Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), C#, Visual Studio, RESTful Web Services, Object-oriented Programming (OOP)

IT Engineer | CNC Engineer

2007 - 2010
Promenergo
  • Set up domain and active directory in the corporative network.
  • Mastered working with the CNC punching machine Muratec Motorum-2044 EZ as an operator, maintainer, and program writing engineer. Mentored newcomers on how to run it and make optimal programs.
  • Mastered working with other CNC machines—lathe, bending machine, and plasma cutting machine. My knowledge of electronics helped to repair the PCB of the bending machine when it stopped to allow for sustained production.
Technologies: CAD, CNC, AutoCAD, SOLIDWORKS, Windows Server 2008

Algorithm of 3D Sea Bottom Modeling

https://docs.google.com/presentation/d/138W8_Gpdq-lEifPeqPptTh9_3cDdYWZsX8MEU9zg26c
I created the algorithm for 3D sea bottom modeling based on the data from nautical charts. Charts are a unique source of navigational data because it has the best sea coverage. However, building a triangulated surface using raw chart data will be almost useless because charts have simplified, only essential bathymetry data. Thus, the surface will have large, flat areas. So, I read a lot of scientific articles about surface interpolating methods, tested them, and picked the most suitable ones.

Another big problem was physical conflicts in the chart data. For example, one chart point can have three levels. To overcome this, I developed a special method that resolves the conflicts and doesn't make conflicts with chart data.

Moreover, I added the self-testing mode to check and adjust the algorithm. My testing tool picked charts with different levels of detail in the same area, ran my algorithm on less detail, and then compared the results with a more detailed chart.

As a result, my algorithm made it possible to connect charts with different isobath levels to create a seamless sea model, which is used for automatic routing for ships. Also, it is helpful in oceanography, hydrology, fishing, and other applications.

Sample Web API Application

https://github.com/LevYas/DotnetBackendSample
I developed an example of a fully functional web API with users, roles, authentication, integration with another API, and a lot of tests. I also set up a CI pipeline, which builds and runs all the tests, including the tests against the real database.

Using this application, users can create an account, log in, and store some food records to track sugar consumption. If the user does not provide the sugar amount, the app will fetch it from a nutrition data provider. Also, users can access API to check how much sugar they ate during the current day.

I made this educational project to show how to build custom lightweight authentication and authorization without using full-blown technologies like ASP.NET Core Identity and how to integrate different things into one working and robust application.

Highly Efficient Interval Map

The interval map is a data structure that associates intervals of keys with values, where the key can be any comparable type with a defined lowest limit, and the value can be anything checkable for equality.

I developed an extremely efficient algorithm for assigning values; it uses only two relatively expensive O(log N) operations to find range bounds. It utilizes precise iterator arithmetic to locate all other positions.

In that case, it's very important to carefully test this algorithm to be sure that it works properly. To accomplish that, I used test-driven development alongside property-based testing instead of example-based testing. That means checking that the object under tests has specific properties after the performed operation instead of comparing result data with examples. This technique made it easy to write clear and concise tests to cover all possible data variations.
Finally, I successfully built a complex, efficient algorithm that works correctly.
2006 - 2011

Master's Degree in Industrial Power Distribution

Moscow Polytechnic University - Cheboxary, Russia

APRIL 2023 - APRIL 2026

AWS Solutions Architect Associate

Amazon Web Services

DECEMBER 2022 - DECEMBER 2025

AWS Certified Developer Associate

Amazon Web Services

SEPTEMBER 2021 - PRESENT

Blockchain and Bitcoin Fundamentals

Udemy

AUGUST 2021 - PRESENT

F# From the Ground Up

Udemy

Libraries/APIs

Vue, Web API, Moq, Leaflet, LINQ, SendGrid API, SignalR, AutoMapper, OpenGL, Entity Framework

Tools

Visual Studio, xUnit, xUnit.net, Azure Application Insights, Postman, WireMock, AutoCAD, Jira, Git, CAD, SendGrid, Bitbucket, GitHub, Subversion (SVN), Jenkins, SOLIDWORKS, Google Cloud Console, Google Compute Engine (GCE)

Frameworks

.NET, Windows Presentation Foundation (WPF), .NET Core, ASP.NET Core, Entity Framework Core, NUnit, Json.NET, ASP.NET, Swagger, Cypress, Google Test

Paradigms

Concurrent Programming, E2E Testing, Unit Testing, Dependency Injection, Object-oriented Programming (OOP), Refactoring, Design Patterns, Model View ViewModel (MVVM), Testing, Gang of Four (GOF) Design Patterns, Agile Software Development, Test-driven Development (TDD), REST, Waterfall Development, Extreme Programming, Inversion of Control, REST API Architecture, Scrum, Microservices, Microservices Architecture, Agile, Functional Programming, Serverless Architecture, CNC Programming

Languages

C#, C#.NET, TypeScript, C++, SQL, T-SQL (Transact-SQL), XML, C++/CLI, Python, Python 3, JavaScript, CSS, F#, Assembler

Platforms

Windows, Web, Visual Studio Code (VS Code), Azure, Windows Server 2008, Docker, Google App Engine, Blockchain, Amazon Web Services (AWS), AWS Lambda, Google Cloud Platform (GCP)

Storage

Microsoft SQL Server, Relational Databases, JSON, SQL Server Management Studio (SSMS), Google Cloud, PostgreSQL

Other

Software Architecture, APIs, Algorithms, Data Structures, Debugging, Design Principles, API Design, Back-end, SOLID Principles, Integration Testing, Console Apps, Architecture, CI/CD Pipelines, Geometry, Profiling, COM, DI, RESTful Web Services, Computational Geometry, Distributed Systems, Technical Leadership, Matrix Algebra, Windows Communication Foundation (WCF), CNC, Containers, Containerization, DXF, Bitcoin, Public Speaking, Conference Speaking, Leadership, System Design, Decentralized Systems, Cloud, Cloud Computing, Serverless, Computational Physics, Power Electronics, Energy, Energy Monitoring, Digital Electronics, PCB Design, Physics, Science, Authorization, User Authentication, Property-based Testing

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