Roman is a full-stack developer and database designer with great attention to detail and team spirit. He takes the initiative to communicate ideas or architectural suggestions to maximize efficiency and minimize expense and effort, which is a win-win for everyone. His areas of expertise include Node.js, TypeScript, Go, .NET, Java, PHP, Transact-SQL, MySQL, NoSQL, and interoperations between them, APIs, and communication protocols.
ExperienceMicrosoft SQL Server - 14 yearsС++ - 10 yearsC# - 9 yearsMySQL - 5 yearsJava - 5 yearsNode.js - 4 yearsTypeScript - 3 yearsGo - 2 years
NetBeans, Visual Studio Code (VS Code), Visual Studio, IntelliJ IDEA
The most amazing...
...project I've worked on is a private byteball fork, a blockchain or DAG that is confirmed by signatures of the majority of trusted nodes.
- Fixed bugs and added features to open-source Flowcrypt-browser extension.
- Implemented S/MIME support, PKCS#7 signing/encryption/decryption. Imported PKCS#8 and PKCS#12 private key data, PEM format support.
- Took part in the peer code review of the Flowcrypt-browser and the private back end repositories.
Lead Software Engineer
IX-7 Asset Management 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 a 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 and PHP client.
- Fixed bugs and made updates to Merkle Patricia Trie's implementation for the blockchain engine.
- Made improvements to the module that saves the currently calculated state to RocksDB.
- Implemented complex integration tests with multiple nodes running in Docker containers.
- Solved various technical issues of the RNP library and applications, including Unicode support on Windows.
- Added additional options for CLI key generation (e.g. key expiration date).
- Adjusted RNP's CMake project for building with Visual Studio tools.
- Set up GitHub Action handlers for CI testing on various platforms, including Windows, Ubuntu, CentOs, Debian.
Freelance Web Developer
- Designed and implemented a Node.js and TypeScript-based REST API with Express.js, routing deployed as a Google Firebase function.
- Set up a Google Firebase hosting for a simple web front end.
- Used TypeScript-JSON-validator to generate DTO validation based on the TypeScript source code and annotations.
- Integrated Firebase Authentication into the plain REST API, specifically Firebase ID Token.
- Implemented persistence with Google Cloud Firestore featuring transactions, Batch writes, and partial updates.
Lead Software Engineer
404 Publishing, Inc.
- 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.
Aminal Open-source Project
- 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 an extended mouse support using OpenGL.
Senior Software Engineer
Logican Solutions, Ltd.
- Designed an MS SQL database via SSDT with subsequent Entity Framework model generation and editing with a database-first design.
- Created a Web API service layer 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.
- Implemented Auto Configuration Server according to TR-069 specifications. MSSQL database is used for storing configuration parameters reported by the router devices and queuing configuration tasks like firmware upload, parameter updates, and others.
- Worked on the project where the transport agent was initially supposed to be built upon the WCF infrastructure, but as the protocol occasionally uses non-SOAP empty body POST requests, another solution was needed.
- Solved the problem by building the agent upon the WebAPI framework from Microsoft.
Lead Software Engineer
A1 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 and some updates to AngularJS front end.
- Improved a legacy WPF application by adding new forms and reports.
Lead Software Engineer
Global 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, specifically Stop Loss, Stop Limit, OCO groups.
- Designed and implemented a high-throughput signature verification server with caching for each order placed.
Lead Software Developer
Rambler Internet Holding
- Took part in developing a FreeBSD/C++ internet indexer, with indexes divided into shards.
- Tweaked search results and mapped search queries to shards and reducing the results.
- Developed extra features like adult content filtering.
Lead Software Developer
JC System Integration
- Developed multi-user video and audio manipulation software for TV broadcasts.
- 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.
X5 Retail Group
- 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 operators 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++.
WPF and Web for Debt Management Software
Retail Compliance WPF Application
Effective Calculation of Financial Data using MS SQLhttps://ix-7.com
C# PDF Report Builder
Media Research Project
I also supported and issued hot fixes for a legacy WPF/MSSQL project.
Online Trading System
Node.js/Express/TypeScript Firebase Back End for a Dating Application
Node.js/Serverless/Express/TypeScript/TypeORM Back End
TypeScript and TypeORM was used to access the MongoDB cluster.
IoT Scooter Control (Omni)
The service performs lock/unlock operations as well as firmware updates based on requests queued in PostgreSQL database.
AWS Lambda Development in Golang
For easier deployment of the project to AWS as well as potentially to other platforms, the Serverless framework was used.
Interactive Brokers Order Management Plugin
C#/QuickFix Plugin For Ninja Trader
Cryptoexchange Plugins for Ninja Traders
Java/QuickFix Order Management Platform
C++/ACSIL Studies for Sierra Chart
Custom IQFeed Order Management and Chart Analyzer Platform
Progressive Web Apps for Customers and company CRMhttps://mobile.ix-7.ch
Business Reports for Fintech Company
Flowcrypt Browser Extensionhttps://flowcrypt.com
.NET, ASP.NET Web API, .NET 4, Kendo UI, MVC Razor, VB.NET WinForms, Express.js, Windows Presentation Foundation (WPF), ASP.NET, .NET Core, MVVM Light Toolkit, PEG.js, Swagger, Windows Communication Framework (WCF), Windows PowerShell, Serverless Framework, Boost, JUnit, Razor
Node.js, ODBC, JSON API, NinjaScript, Microsoft Foundation Class Library (MFC), Interactive Brokers API, Windows Forms (WinForms), REST APIs, React, Experian, Stripe API, Stripe, Web API, Standard Template Library (STL), OpenGL, Protobuf
Visual Studio, NinjaTrader, Syncfusion, Stripe Checkout, Apache Maven, Plesk, Terminal, Ninject, Git, Subversion (SVN), Balsamiq Mockups, Microsoft Visio, Firebase Authentication, ANTLR 4, Mocha, IntelliJ IDEA, Microsoft Power BI, Gradle, Eclipse IDE, GoLand, Firebase Cloud Messaging (FCM), MongoDB Atlas, DataStax, GitHub, Dapper, Docker Compose
MVC Design, Model View Viewmodel (MVVM), Azure DevOps, Model View Controller (MVC), REST, Socket Programming, PKCS
Visual Studio Code (VS Code), Telerik WPF, NetBeans, Azure, Linux, Ubuntu, Blockchain, Bitcore, Firebase, AWS Lambda, WordPress, Oracle, Telerik, Eclipse, RStudio, MetaTrader, FreeBSD, Docker, Amazon Web Services (AWS)
Database Modeling, SQL Server Data Tools (SSDT), Microsoft SQL Server, Database Triggers, JSON, Databases, Relational Databases, SymmetricDS, MySQL, SQL CLR, Couchbase, Elasticsearch, SQLite, Cloud Firestore, JSON/XML Schemas, NoSQL, Oracle RDBMS, MongoDB, PostgreSQL, Firebase Realtime Database, Amazon DynamoDB, SQL Server Agent, Redis, RocksDB, Cassandra
Coding, Back-end, APIs, RS485, RS-232, FIX Protocol, QuickFIX, Order Management, Windows Services, Distributed Software, Security Design, SSH, Modbus Protocol, SMPP, SOAP, Cryptocurrency, VNC, SSL Certificates, Internet Information Services (IIS), Web App Deployment, Applied Cryptography, Webhooks, Directed Acrylic Graphs (DAG), Serverless, Protocol Buffers, TCP, CLR, WebSockets, Chrome Extensions, CI/CD Pipelines, Asymmetric Encryption, Xamarin Studio, Dynamic Data Exchange (DDE), Elliptic Curve Cryptography, Firebase Hosting, PGP, TypeORM, OpenPGP, Firefox Extensions, Lambda Functions, X.509 Certificates, S/MIME
Master of Computer Applications (M.C.A.) Degree in Information Technology
Bauman's MSTU - Moscow