Roman Shevchenko, Full-stack Developer in Lisbon, Portugal
Roman Shevchenko

Full-stack Developer in Lisbon, Portugal

Member since May 19, 2016
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. Areas of expertise include Node, TypeScript, Go, .NET, Java, PHP, Transact-SQL, MySQL, NoSQL and interoperations between them, APIs, and communication protocols.
Roman is now available for hire

Portfolio

Experience

Location

Lisbon, Portugal

Availability

Part-time

Preferred Environment

NetBeans, Visual Studio Code, Visual Studio

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.

Employment

  • Freelance Web Developer

    2019 - PRESENT
    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 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.
    Technologies: Cloud Firestore, Firebase, TypeScript, Express.js, Node.js
  • Lead Software Engineer

    2016 - PRESENT
    IRISOS 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.
    Technologies: SOAP, JavaScript, MongoDB, SymmetricDS, MySQL, Microsoft SQL Server, React, PHP, WordPress, .NET
  • Lead Software Engineer

    2018 - 2019
    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.
    Technologies: MySQL, SQLite, Node.js
  • Collaborator

    2018 - 2019
    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 extended mouse support (using OpenGL).
    Technologies: OpenGL, Go
  • Senior Software Engineer

    2016 - 2018
    Logican 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.
    • 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.
    Technologies: MVC Razor, JavaScript, Experian, Ninject, ASP.NET, Model View Controller (MVC), Kendo UI, Windows Communication Framework (WCF), Microsoft SQL Server, .NET, Windows Presentation Foundation (WPF)
  • Software Developer

    2016 - 2017
    Atlas Labs
    • 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.
    Technologies: Azure, Microsoft SQL Server, Web API, .NET
  • Lead Software Engineer

    2014 - 2016
    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, as well as some updates to AngularJS front end.
    • Improved a legacy WPF application, adding new forms and reports.
    Technologies: JavaScript, Microsoft SQL Server, Elasticsearch, Couchbase, REST, Web API, Model View Controller (MVC), Model View Viewmodel (MVVM), ASP.NET, Windows Presentation Foundation (WPF)
  • Lead Software Engineer

    2012 - 2014
    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 (Stop Loss, Stop Limit, OCO groups).
    • Designed and implemented a high-throughput signature verification server with caching to be used with each order placement.
    Technologies: JavaScript, Microsoft SQL Server, Protobuf, Model View Controller (MVC), Model View Viewmodel (MVVM), Windows Presentation Foundation (WPF), Telerik, Kendo UI, .NET
  • Lead Software Developer

    2010 - 2011
    Rambler Internet Holding
    • 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.
    Technologies: Boost, Standard Template Library (STL), FreeBSD, C++
  • Lead Software Developer

    2005 - 2008
    JC System Integration
    • 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.
    Technologies: WinForms, Microsoft SQL Server, Microsoft Foundation Class Library (MFC), C#, C++
  • Software Engineer

    2002 - 2005
    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 operator 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 (HTML/JavaScript) and server-side Java scripts for Symbol micro-kiosks (price-checkers).
    • Integrated data collection from work-time control devices using C++.
    Technologies: Java, Microsoft Foundation Class Library (MFC), C++, Oracle

Experience

  • WPF and Web for Debt Management Software

    A project that included database design via SSDT; Entity Framework model generation and editing; repository, business logic, and service layers; dependency injection; MVVM and MVC infrastructure for the WPF application and portal, respectively; and partial views. Various Kendo UI controls were used as well as integrations with third-party services like Experian and Kontomatik.

  • Retail Compliance WPF Application

    This WPF application is of layered architecture. I implemented some of the custom-draw controls, MVVM binding, SQLite design, and interaction. For the schedule, I used the SyncFusion library. It's buggy but I made the most of it, filing issues to the library developers and putting workarounds in place.

  • Effective Calculation of Financial Data using MS SQL

    Fast calculations of financial metrics using Transact SQL. For efficiency and maintainability, table-valued functions were defined. Also, to boost performance, custom CLR aggregate functions were created. This was an integration project that involved asynchronous calculations based on incoming signals (using jobs), Linked Servers input, and CSV output.

  • Aminal
    https://github.com/liamg/aminal

    I made substantial improvements on the Aminal open-source project, including various terminal mode support, rendering, and operating system integration.

  • C# PDF Report Builder

    My client wanted to generate PDFs using SyncFusion library. I did it precisely to the templates provided. The report included a header with page numbering, size-to-fit image placement, and tables spanning multiple pages. This was all done for a Windows 8 app.

  • Media Research Project

    An internal project for a large media research company using C#, Couchbase, and Elasticsearch on the back end and AngularJS and MVC on the front end.

  • Online Trading System

    A system with C#, Entity Framework, WCF, and Protobuf over Sockets on the back end and WPF and MVVM on the front end.

  • Rambler Services

    An internet search back end (Google competitor) written in C/C++ to be run under FreeBSD using STL.

  • Byteball Fork

    Work on a private byteball fork written using Node.js with SQLite or MySQL storage. This is a blockchain (or, to be more precise, DAG) architecture where blocks (units) are confirmed when they get a subsequent chain over them containing signed units from a majority of 12 trusted nodes.

  • Node.js/Express/TypeScript Firebase Back End for a Dating Application

    Design and implementation of a modern state-of-the-art REST API using Google Firebase hosting, functions, and Firestore database for a dating application. DTOs are validated with a JSON Schema generator based on TypeScript source code. Firestore interaction features transactions, batch writes, and partial updates.

  • Node.js/Serverless/Express/TypeScript/TypeORM Back End

    Design and implementation of REST API using Node.js Serverless framework with subsequent deployment on AWS.
    TypeScript and TypeORM was used to access the MongoDB cluster.

  • IoT Scooter Control (Omni)

    Developed a .NET Core TCP service for Air interface protocol to remotely control Omni-based scooter firmware. The service is deployed in Mono environment ruuning in Amazon EC2.

    The service performs lock/unlock operations as well as firmware updates based on requests queued in PostgreSQL database.

  • AWS Lambda Development in Golang

    Several Go-based Lambda functions to digitally sign and transform data from DynamoDB using crypto/openpgp package.

    A serverless framework was used for easy deployment.

  • Interactive Brokers Order Management Plugin

    C# plugin to manage orders and positions via native IB API and FIX bridge.

  • C#/QuickFix Plugin For Ninja Trader

    Fix4.2, Fix4.3, Fix4.4 plugins for various brokers (LumeFX, OTCXN, Integral) providing a translation of order submission, execution reports and market data between the systems.

  • Cryptoexchange Plugins for Ninja Traders

    Plugins to integrate Bitmex and Binance into Ninja Trader order management and market data.

  • Java/QuickFix Order Management Platform

    Order management system for creating complex stop-loss/take-profit conditions per business requirements.

  • C++/ACSIL Studies for Sierra Chart

    Custom studies were written in C++ for the Sierra Chart platform.

  • Custom IQFeed Order Management and Chart Analyzer Platform

    A .NET-based platform using IQFeed for market data and Instaquote API for real-time order management. The project also included a backtesting mode and custom visualizers with low-level graphic rendering.

Skills

  • Languages

    C#.NET, C#, JavaScript, Transact-SQL, F#, Visual Basic .NET (VB.NET), TypeScript, С++, Go, Java, XML, PHP, C++, Assembly Language, Solidity, R, Visual Basic for Applications (VBA), Perl, Python
  • 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, Redux, JUnit
  • Libraries/APIs

    Node.js, ODBC, JSON API, NinjaScript, Microsoft Foundation Class Library (MFC), Interactive Brokers' API, WinForms, React, Experian, Stripe API, Stripe, Web API, Standard Template Library (STL), OpenGL, Protobuf, Vue.js
  • Tools

    Visual Studio, NinjaTrader, Syncfusion, Stripe Checkout, Maven, Plesk, Terminal, Ninject, Git, Subversion (SVN), Balsamiq Mockups, Microsoft Visio, Firebase Authentication, ANTLR 4, Mocha, Gradle, Eclipse IDE, GoLand, Firebase Cloud Messaging (FCM), MongoDB Atlas, DataStax
  • Paradigms

    MVC Design, Model View Viewmodel (MVVM), Financial Information Exchange (FIX) Protocol, Model View Controller (MVC), REST, Socket Programming
  • Platforms

    Visual Studio Code, Telerik WPF, NetBeans, Azure, Linux, Ubuntu, Blockchain, Bitcore, Firebase, AWS Lambda, WordPress, Oracle, Telerik, Eclipse, RStudio, MetaTrader, FreeBSD
  • Storage

    Database Modeling, SQL Server Data Tools (SSDT), Microsoft SQL Server, Database Triggers, JSON, MySQL, SQL CLR, Couchbase, Elasticsearch, SQLite, Cloud Firestore, JSON/XML Schemas, SymmetricDS, Oracle DBMS, MongoDB, PostgreSQL, Firebase Realtime Database, AWS DynamoDB
  • Other

    Problem Solving, Coding, Back-end, APIs, RS485, RS-232, FIX Protocol, QuickFIX, Order Management, Windows Services, 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, Xamarin Studio, Dynamic Data Exchange (DDE), Elliptic Curve Cryptography, Firebase Hosting, PGP, TypeORM, OpenPGP

Education

  • Master of Computer Applications (M.C.A.) degree in Information Technology
    1994 - 2000
    Bauman's MSTU - Moscow

To view more profiles

Join Toptal
Share it with others