Freelance Web Developer2019 - PRESENTToptal Clients
Technologies: Cloud Firestore, Firebase, TypeScript, Express.js, Node.js
- Designed and implemented a Node.js and TypeScript-based REST API with Express.js routing deployed as a Google Firebase function.
- Set up Google Firebase hosting for a simple web front end to the API.
- Used TypeScript-JSON-validator to generate DTO validation based on TypeScript source code and annotations.
- Integrated Firebase Authentication (Firebase ID Token) into the plain REST API.
- Implemented persistence with Google Cloud Firestore featuring transactions, Batch writes, and partial updates.
Lead Software Engineer2016 - PRESENTIRISOS SA
- Developed Transact-SQL stored procedures and table-returning functions for fast and effective calculations of financial metrics.
- Created custom CLR aggregate functions for MS SQL to boost performance.
- Designed a MySQL database and developed stored procedures.
- Set up heterogenous replication between MS SQL and MySQL using SymmetricDS.
- Developed a WordPress website with PHP back-end scripts.
- Contributed to legacy ASP.NET WebForms app development.
- Developed a .NET-driven SOAP web service as well as PHP client for it.
Lead Software Engineer2018 - 2019404 Publishing, Inc.
Technologies: MySQL, SQLite, Node.js
- Worked on a private fork of https://github.com/byteball/ocore. This is a distributed blockchain system written in Node.js.
- Modified a network communication protocol to make it more robust and lightweight.
- Designed changes to SQLite and MySQL database structure to store the DAG more efficiently.
- Developed a web front end to easily enter transactions for debugging purposes.
Collaborator2018 - 2019Aminal Open-source Project
Technologies: OpenGL, Go
- Made substantial improvements to the Aminal open-source project.
- Added support for various terminal modes to meet vttest requirements.
- Implemented underline and inverse rendering (using OpenGL).
- Added support for numerous OSC and CSI control sequences.
- Implemented extended mouse support (using OpenGL).
Senior Software Engineer2016 - 2018Logican Solutions, Ltd.
- Designed an MS SQL database via SSDT with subsequent Entity Framework model generation and editing (database-first design).
- Created a service layer (Web API) using ASP.NET technology to be called by a web front end.
- Designed visual elements and bound them to business logic using MVVM Light, WPF, and C#.NET.
- Integrated the system with extraneous services such as Experian and Kontomatik.
- Created an efficient distribution algorithm per ratio with catch-up.
Software Developer2016 - 2017Atlas Labs
Technologies: Azure, Microsoft SQL Server, Web API, .NET
- Implemented Auto Configuration Server (ACS) according to TR-069 specifications. MSSQL database is used for storing configuration parameters reported by the router devices and queuing configuration tasks (firmware upload, parameter updates, etc.).
- Worked on the project where initially, the transport agent was supposed to be built upon the WCF infrastructure, but as the protocol occasionally uses an empty body POST request which doesn't strictly conform to the SOAP specification, another solution needed to be searched for.
- Solved the problem by building the agent upon the WebAPI framework from Microsoft.
Lead Software Engineer2014 - 2016A1 Media Research, Inc.
- Designed Couchbase buckets and Elasticsearch indexes. Created queries to Elastic (including aggregate queries). Adapted .NET client using Elasticsearch.Net and NEST libraries.
- Improved a scraper written in C# used to scrape the whole range of Russian and international media, blogs, and microblogs.
- Developed C# Web API back end for the internal site, as well as some updates to AngularJS front end.
- Improved a legacy WPF application, adding new forms and reports.
Lead Software Engineer2012 - 2014Global Consulting Group, JSC
- Developed a brokerage database, and back end consisting of various nodes communicating via Protobuf-based protocol.
- Developed a WPF MVVM front end and parts of a Kendo UI web client.
- Integrated the brokerage system with Moscow Interbank Currency Exchange (MICEX) and Russian Trading System (RTS) stock exchange.
- Implemented conditional orders (Stop Loss, Stop Limit, OCO groups).
- Designed and implemented a high-throughput signature verification server with caching to be used with each order placement.
Lead Software Developer2010 - 2011Rambler Internet Holding
Technologies: Boost, Standard Template Library (STL), FreeBSD, C++
- Took part in the development of a FreeBSD/C++ internet indexer, with indexes divided into shards.
- Tweaked search results (involved mapping search queries to shards and reducing the results).
- Developed extra features, e.g. adult content filtering.
Lead Software Developer2005 - 2008JC System Integration
Technologies: WinForms, Microsoft SQL Server, Microsoft Foundation Class Library (MFC), C#, C++
- Developed video manipulation software.
- Implemented custom controls using C++ (first version) and C# (second version).
- Designed an MS SQL database for concurrent project editing with optimistic locks and update notifications.
Software Engineer2002 - 2005X5 Retail Group
Technologies: Java, Microsoft Foundation Class Library (MFC), C++, Oracle
- Developed three-tier architectures for a high-load online discount system.
- Designed database, protocols, and transport agents for mobile top-ups using C++ and Oracle. The turnaround time between POS and mobile operator was under two seconds.
- Developed a thin client for PalmOS barcode scanners (using CodeWarrior) and server-side Java scripts for stock control.
- Integrated data collection from work-time control devices using C++.