
Roman Shevchenko
Full-stack Developer
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.
Portfolio
Availability
Preferred Environment
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.
Work Experience
Typescript/Kotlin Developer
Flowcrypt a.s.
- 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.
Developer
0chain
- 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.
Cryptographic Engineer
Ribose
- 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
Toptal Clients
- 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.
- Ported key derivation and ECDSA signing to client-side JavaScript.
Collaborator
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.
- Created web pages using Kendo UI controls, including hierarchy grid, Razor engine, and custom JavaScript.
- Integrated the system with extraneous services such as Experian and Kontomatik.
- Created an efficient distribution algorithm per ratio with catch-up.
Software Developer
Atlas Labs
- 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.
Software Engineer
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.
- Developed a thin client with HTML and JavaScript and the server-side Java scripts for Symbol micro-kiosks, specifically price-checkers.
- Integrated data collection from work-time control devices using C++.
Experience
WPF and Web for Debt Management Software
Retail Compliance WPF Application
Effective Calculation of Financial Data using MS SQL
https://ix-7.comAminal
https://github.com/liamg/aminalC# PDF Report Builder
Media Research Project
I also supported and issued hot fixes for a legacy WPF/MSSQL project.
Online Trading System
Rambler Services
Byteball Fork
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 CRM
https://mobile.ix-7.chBusiness Reports for Fintech Company
Flowcrypt Browser Extension
https://flowcrypt.comSkills
Languages
C#.NET, C#, JavaScript, T-SQL (Transact-SQL), F#, Visual Basic .NET (VB.NET), TypeScript, С++, Go, Java, XML, PHP, Kotlin, C++, Assembly Language, Solidity, R, Visual Basic for Applications (VBA), Perl, Python, Java 11, Java 8, YAML, SQL
Frameworks
.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
Libraries/APIs
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
Tools
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
Paradigms
MVC Design, Model View Viewmodel (MVVM), Azure DevOps, Model View Controller (MVC), REST, Socket Programming, PKCS
Platforms
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)
Storage
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
Other
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
Education
Master of Computer Applications (M.C.A.) Degree in Information Technology
Bauman's MSTU - Moscow