Senior Software Engineer
I'm a software engineer with more than a decade of experience.
My experience is quite diverse: it goes from binary protocols and communication with devices to back-end services and big front-end apps. Although I worked on user interfaces in the past, I found my passion in building complex distributed systems.
During my career I designed, built and led a variety of projects that turned out to be successful. In my working environment I value evidence-based decisions, attention to detail, personal responsibility and ownership. I always prioritise user experience and prefer pragmatic solutions with a focus on maintainability, performance and security.
Working on Elastic Agent and Beats in the Ingest Data Collection team.
Worked on the platform team, mainly with Go (Golang), Kubernetes and PostgreSQL.
My team was responsible for building services that provide:
- Data/Asset Catalog for large organisations to track their data landscape: search, tags, metadata, links, glossary etc.
- IdP — identity provider for the whole platform: authentication, authorisation, user management, permission management.
- Data Store — a service that enables uploading data in formats like CSV and integrating it in relational database models, so users are able to combine them with other relational databases using our Spark-based query engine.
- PGQL — a service that allows to access any SQL-based data source via a GraphQL endpoint.
- Queue and job system.
- Notification system
- Open API spec‐first code generator that we've built our workflow around
Initially worked on the RESTful API that powers company's mobile apps (Scala, Play Framework).
Then moved to another team and worked on the API gateway for external partners which is an internally used fork of Skipper (Go/Golang). This gateway solved authorisation, throttling, routing, circuit breakers and other common problems that usually occur on the ingress level.
First worked on a set of framework agnostic components. Adopting the idea of web‐components we created our own runtime library for using components with several frameworks like Angular, React and GWT. It was used for building AWS consoles using consistent and design guideline‐compliant UI‐components.
Then worked on the static website deployment flow in AWS (TypeScript/React). This enabled AWS customers to easily deploy a static web-site seemlessly using underlying AWS services like Route 53, S3 and CloudFront.
After that switched to some back-end work and helped to create a platform for running AWS consoles (Java, Spring). This solved common integration issues faced by internal developers when adding new services to the AWS family.
Working as a lead developer on the Flamp front-end team.
Working as a .NET‐developer building a high-load service for processing and modifying streams of data. The service was a part of the integration bus system between dozens of internal services/products.
Worked in a team building custom contract-based projects (.NET, node.js).
- Push‐notification service that notifies social network users about beginning of a tournament (node.js, Socket.io).
- Administration console for a distributed gambling system (bet on sport events, etc). It allowed to view detailed analytics about the bets and to control the system remotely (ASP.net).
- Web‐application for the text‐translation workflow. It was used as a tool for managing, assigning and solving tasks among professional translators (Ext JS 4).
My assignment was to build a plugin for Microsoft Visual Studio 2010 that would visualise results produced by Intel Static Security Analyser. I proposed a concept of the GUI for the tool, created a UI component for iteration‐based loading and parsing of the large amount of XML data (LINQ‐To‐XML) and built the plugin itself using WPF.
Worked as a lead developer of a WebSCADA system that made possible to remotely monitor and control water pumps and heating systems (any type of a system in theory).
The system worked as a subscription‐based web‐app. The subscription included necessary devices and sensors for the customer.
I was responsible for the initial architecture and communication protocols and built:
- back-end service for real‐time data visualisation (node.js, Socket.io).
- data visualisation dashboard UI.
- back-end service for the management console that calculates analytics and generates reports (PHP).
- management console UI (ExtJS).
Later I used results of this work as my diploma thesis.
My assignment was to research the influence of a managed runtime environment (MRTE) on the Intel Math Kernel Library performance using JVM and CLR (.NET) as examples.
I've created a set of performance benchmarks for FFT‐related functions from MKL and proposed a validation algorithm for MKL FFT that allows to simply compare library‐produced results with the expected correct answer of the transformation.
Diploma's thesis: "Developing a SCADA system using node.js platform".
Designing and developing a supervisory control and data acquisition system as a web-application using node.js platform, Knockout.js and Ext JS framework.
Last-Writer-Wins State-based Directional Graph implementation created for educational purposes.
The purpose of this bot is to make it easier for Quake 3 players to know what's happening on the server.
CLI tool for brute-forcing private keys with DEK headers. Was created for a Hack The Box challenge and used only for educational purposes.
Catberry is an isomorphic framework for building universal front-end apps using components, Flux architecture and progressive rendering.
There are lots of related repositories in the organisation on Github