Software Engineer with analytical and problem-solving skills. Believes that programming language does not matter, all the matter is algorithms / concepts / critical thinking. Passionate about software internals, including compilers, virtual machines, operating systems.
Taking part in infrastructure team, providing the in-house solutions for Wix developers. These solutions include providing frameworks, build tools, setting up CI/CD pipelines and everything else that relates to developer tooling.
Acting as a T-shaped developer I was doing a lot and nothing at once. Ranging from developing an API for our production to pushing DevOps culture. The reason behind it is that it is a startup with a limited resource but a lot of work to do. This is the place where I learned a lot about Kubernetes, Mesos, tweaking runtimes for better performance, profiling bottlenecks and the likes.
The product I was working on was an Electron-based application for Point of Sale systems. More concrete, I was a team-lead of the team responsible for developing a npm library that acts as an SDK to access hardware devices. These devices include payment terminals, card readers, keepers, etc. We had a lot of work to provide a compatibility between hardware devices and the front-end.
I was a part of outsource company that provides service in Web-related products. Right from the beginning I took part in the team that develops a product for integrating banner-based ads on customers' websites. Meaning, you, as a customer, could integrate and configure advertisements on your website without developers. Just by using an admin panel we had.
Our target audience was small businesses that had a transport park. The problem we were solving is to provide an easy-to-use web interface for those customers to monitor the status of each vehicle. Each vehicle had a GPS tracker we persistently monitor and log coordinates into the archive. Using the information from that archive we were building timelines, statistics, real-time location, etc.
When I have leisure time, sometimes I like to experiment with new technologies or learn something new. You can read more about some of the so-called pet projects I made during leisure time below. Also, on an occasion, I am contributing to open-source projects.
Hexapod - Constructed from plastic and servos. Its brains are based on Atmega and written in C++ language.
Simple OS - Transitions from 16-bit mode to 64-bit mode, few drivers for keyboard, video output and a simple shell that understands echo command.
Syntax Highlighter for JSONata - JSONata is a query language for JSON object with its own expressions and statements. I made a plugin for CodeMirror editor that able to highlight syntax of JSONata.
High-performance API for a cursor in a terminal - Written in TypeScript, exports the API you can use for cursor manipulation in your terminal. It is fast enough to draw YouTube video in real-time, check the demo.
An interpreter for a subset of Pascal language - Recursive descent parser, written by hand, AST, variable lookups, symbol table, interpret. I implemented all of it as part of my compilers education.