Lev Yastrebov
Verified Expert in Engineering
.NET Developer
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
Experience
Availability
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
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.
Freelance Software Engineer
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.
Senior Software Engineer
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.
Software Engineer
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.
IT Engineer | CNC Engineer
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.
Experience
Algorithm of 3D Sea Bottom Modeling
https://docs.google.com/presentation/d/138W8_Gpdq-lEifPeqPptTh9_3cDdYWZsX8MEU9zg26cAnother 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/DotnetBackendSampleUsing 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
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.
Education
Master's Degree in Industrial Power Distribution
Moscow Polytechnic University - Cheboxary, Russia
Certifications
AWS Solutions Architect Associate
Amazon Web Services
AWS Certified Developer Associate
Amazon Web Services
Blockchain and Bitcoin Fundamentals
Udemy
F# From the Ground Up
Udemy
Skills
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)
Languages
C#, C#.NET, TypeScript, C++, SQL, T-SQL (Transact-SQL), XML, C++/CLI, Python, Python 3, JavaScript, CSS, F#, Assembler
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
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
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