Shifts of Samokat
The internal "Shifts" app helps Samokat employees plan their working hours. Couriers mark when they are ready to work in the app, and warehouse directors allocate shifts.
I built the backend of the application, integrated it with other internal and external services. Designed the API for the mobile app and the web interface. I designed and implemented the architecture of the front‑end. Conducted code and architecture reviews. Coordinated the release and execution.
Stack: JS (React, Node.js, TypeScript)
The mobile app "Samokat" is a replacement for a convenience store with instant grocery delivery (15‑30 minutes).
I made a map with delivery zones, integrated Mapbox. Built a screen for displaying electronic receipts from ATOL Online. Designed and implemented the deep link system for the application. Rewrote stories functionality from Preact (inside web view) to ReactNative.
Stack: JS (ReactNative, TypeScript).
Stomweb is an educational platform for dentists sharing articles, video lectures and webinars. We relaunched the site with a new design.
I wrote a service for converting videos to M3U and streaming them via HLS. Moved the backend legacy code to the modern version of PHP, wrapped it up into Docker, added new forms and fixed bugs in old ones. Developed the new frontend.
Stack: JS (React, Node.js, TypeScript), PHP.
"Just Ask" is a free service which helps people who face living with cancer. The service raises awareness on how to arrange high‑quality treatment.
I designed the app, managed the development with a strict‑scheduled deadline. Made app data sync with Trello boards. Wrote a Telegram bot for service experts.
Stack: JS (React, Node.js, TypeScript).
Faster is a pharmacy marketplace where you can book medications at any pharmacy in the city.
I organized refactoring of the legacy code and accelerated search by 10 times. Implemented scalable architecture. Automated the image search for products. Moved frontend to TypeScript.
Stack: JS (React, TypeScript), PHP (Yii2).
CRM for Foundation for the Development of Small and Medium Enterprises allows employees to easily process appeals, track their history and report to the regulator.
I completely developed the application: implemented the ability to sign appeals via EDS from the browser, filtering appeals by all possible fields, unloading reports for the regulator, and integration with the old system to register appeals.
Stack: JS (Vue), PHP (Symfony).
The platform "QEEP‑Pro" combines a CRM, an online store, and a mobile application. The project started in 2011, and by 2017 it had grown to a significant amount of legacy.
I was maintaining and developing the website and mobile application. I created the online‑shop generator, developed mailing lists functionality.
Stack: JS (React, ReactNative, Vue, TypeScript), PHP (Symfony).
Procraft is a CRM thanks to which self‑employed people set up ads, create landing pages to sell their services and get analytics on their clients.
I worked on the statistics module. On the backend, I integrated with Google Analytics and arranged the aggregation of the data, created and implemented charts for the website and mobile apps.
Stack: JS (React, ReactNative, TypeScript, Relay), Scala (Play, Slick, Sangria), GraphQL
Aviasales is the largest meta search for flight tickets in Russia and CIS.
I worked in the Web Platform team: we were helping frontend developers of product teams to be more efficient, developing common solutions, building development infrastructure, and onboarding new employees.
After two years, I migrated to the product team, since it, I work in the team Explore. We focus on user experience before search starts: how users choose destination and dates, how they interact with a search form and which services we can provide to simplify their path.
I work on technical design and implementation, mentor teammates and lead particular projects inside our team.
Stack: JS (TypeScript, CoffeeScript, React, Effector), Elixir (Phoenix)
Podlodka Crew is a family of online IT conferences. I ran the frontend division.
I hired and coordinated program committees for the seasons, validated conference programs, negotiated with sponsors, invented and organized community activities.
Frontend Engineer, Techlead
Samokat is an instant grocery delivery service (10‑15 minutes), with no minimum order amount. I dealt with the company's internal products: applications for warehouse workers, human resources, technical support, and the purchasing department.
I decomposed projects from "should be cool" to specific tasks for developers. Furthermore, I programmed frontends in React and backends in Node.js, supported legacy application in Angular. I was monitoring code quality, designing integrations with other internal services, coordinating releases. Managed a team of 3 developers.
Lecturer and author
I was developing courses, webinars and homework assignments at Netology Online University.
Fullstack Engineer, Techlead
Breadhead creates web services related to education, e‑commerce, and process automation. I was building the architecture of new applications and optimizing legacy code, controlling code quality. I wrote numerous complex frontends and robust backends.
Likewise, I was managing a team of 4 developers. Validated business requests, turned them into tasks, and distributed them among the developers. Led all applications to a unified technology stack. Implemented the practice of writing tests and code reviews. Automated integration and delivery, set up CI/CD pipeline.
QEEP‑Pro specializes in creating CRM and ERP systems. I created a lot of in-house products and worked on custom projects for Procraft, the SME Development Fund, and local delivery services. Instilled the practice of application continuous integration, built CI pipelint. Managed a team of 3 developers.
I was creating websites, writing jQuery plugins, deploying and polishing CMS. I had made my own content management system, ran five sites on it.
The best part of Effector
Effector is a lightweight and performant state manager. It is UI frameworks agnostic, predictable and easy to use. Almost half a year ago, Aviasales team has started migration from RxJS to Effector. While I was investigating this library, I found a completely unexpected feature. It changed my mind about Effector.