Senior Software Engineer
- Kyiv, Ukraine
- [email protected]
All I can say about me is that I'm always looking to learn new things and improve my skills in an effort to make the world a better place.
elastic.io is a hybrid integration platform. Make a long story short, it means, that you can sync your data across cloud-based and on-premises data sources, using easy-2-use UI designer for that or implementing your own integration component.
Though, 99% you don't need your own integration component, 'cause elastic.io provides a lot of connectors for common cases. Otherwise, it provides with all tools that helps to build your own integration component.
Each of yours integration flows are running on multi-tenant platform that is a combination of Docker containers, connected to each other via queue. So that, each of steps in your integration flow can be scaled independently.
For instance, the problem elastic.io try to solve. Let us assume integration flow that synchronize stock data for products from SAP to Magento. With elastic.io, you can configure flow in UI designer, by defining the following steps: "Query Products from SAP" -> "Map data" -> "Update inventory in Magento". These 3 steps are actually 3 different components you can use in designer and configure them without any code. That's a rough explanation of what's going on and why that.
I was participating in a project, which is responsible for provide integration to different kind of devices: thermal\impact printers, barcode scanners, line displays, magnetic stripe recorders (MSR), card readers, etc... All of these devices can be connected to a system via different types of protocols: TCP\IP, USB, RS-232, Bluetooth, etc...
In scope of our development is to provide an npm library which acts as an SDK for main application - Point of Sale system.
Target platforms for SDK the following: NodeJS, Cordova, Browser, NW.js, Electron.
A short list of devices I was working on:
I rewritten the standalone application, written in PHP, in NodeJS. The project is known as adoric. Was responsible for architecture, code-reviews, tech leading, etc... on that project.
Also, during that time, I built NodeJS department and was responsible for consulting on other projects there.
I was responsible for supporting WordPress plugin which allowed users to build banners for their WordPress-based website. Soon, plugin was rewritten as a standalone application with different types of integration with customer's site.
I was responsible for processing data from GPS devices and rendering it on the client-side. That way, managers could view vehicle's exact location from browser in realtime. Also, they could build tracks from archive data and play timelines, based on that.
Here are some projects I've worked on.
adoric - is a project that helps you effectively convert your website traffic into customers and maximizing your conversion rate. The main idea behind this is to build HTML-based banners via Drag-n-Drop editor which can be integrated in any website. Afterwards, it provides you with a statistic like impressions count, clicks count, CTR, etc... that you can track in your dashboard.
Jumper - streaming realtime videos from your phone to your followers. Same way Periscope does it, but we were trying to do this a long time before Periscope was born. I was responsible for REST API development based on NodeJS\Sails and highload configuration for Flussonic streaming servers.
generator-sails-rest-api - Yeoman generator for scaffolding Sails REST API with predefined features. Most of the projects during my job was based on REST APIs. So, I've decided to create a scaffolder that simplifies most of the issues with REST API development. That way, it decreases estimates for a "project from scratch" by 2-3 times.
pascal-interpreter - I was driven by idea to get know how do compilers and interpreters work. That's why I created a simple interpreter for Pascal language in NodeJS. It supports all the basic constructions in Pascal and even can support some basic scopes and symbol tables in those.
KittikJS is an engine for creating presentations in terminal via ASCII graphics. It's bundled as SDK you can use it in your NodeJS projects or you can use CLI tool to create YAML files with presentation declaration. KittikJS supports different shapes, animations, embedding code, etc...
SimpleOS - I was inspired to know more about OS internals and how do they work. So, I've started to read a lot of articles\guides\tutorials\white papers and implement my own simple operating system with C and Assembly. It has few drivers for screen and keyboard support and a simple echo shell.
Besides participating in conferences, I also maintain a personal blog. I don't know if its a huge number, but in total I have 55K+ views of my articles and it grows constantly. Make a long story short, my articles are about NodeJS\V8 internals, useful hacks, etc...
Here are some of my publications: