Architect, Technical Lead2018 - 2019Adform
Technologies: Drone CI, MongoDB, Nginx, Kubernetes, Docker, TeamCity, Webpack, Node.js, Redux, React
- Researched and developed a new unified application development architecture to be used by all front-end teams in the company.
- Wrote educational posts and technological news on a regular basis to educate all the front-end developers in the company (approximately 50 people).
- Fixed processes and improved the development culture in mine and involved teams.
- Led a large step-by-step refactoring of a legacy codebase.
- Researched and developed a solution for convenient CI/CD integrations with the internal tools (Npm, GitHub, Jira, and more).
- Established visual tests practice in the company.
- Introduced a monorepository and led the whole front-end migration process.
Contractor2018 - 2018Prolific Interactive
Technologies: Amazon Web Services (AWS), AWS, MongoDB, TypeScript, Node.js
- Created an FSM (finite state machine) to run automated raffles.
- Improved code maintainability by introducing DI container, snapshot API tests, error handling strategy, test coverage policies, and more.
- Increased the performance in a number of endpoints.
- Reduced boilerplate and thus cost of adding new endpoints.
- Integrated a MongoDB migrations framework.
- Integrated number of external services such as Datadog, Bronto SOAP client, Slack, etc.
- Created and deployed AWS Lambda functions.
Senior Software Engineer2016 - 2018Yandex
- Worked on the Yandex.Collections service which allows users to collect images and research interesting topics through enriched image content.
- Implemented a robust streaming server-side rendering for Node.js which improved the metrics TTFB (time to the first byte) from approximately one second to 70 milliseconds (14 times).
- Scaled a Node.js application to run on a cluster of 15 machines in three separate data centers under a load of ~100 requests per second (RPS); also set up the rolling update deployment and weighted balancing.
- Created an Elastic and Kibana cluster to process server and client logs. Set up logging and logs rotation in a multiprocess Node.js application.
- Moved a large codebase from ES6 to TypeScript.
- Created a Python MapReduce job which processes large amounts of crawled data and enriches MongoDB collections with related entities.
- Designed the front-end architecture with the support of server-side rendering using React, MobX, and the Dependency Injection stack.
- Launched three internal startups starting from scratch (NDA).
- Developed, from scratch, an extensible masonry solution working at 60 FPS.
- Created a Lodash-compliant library which reduced its size by three times.
Team Lead2015 - 2016Blue.bi
- Worked as a scrum master, product owner, and delivery manager for a client—managing a team of four developers.
- Created a REST specification with usage examples and covering a real-world API with tests.
- Synchronized the code written with the complex business logic specification (financial sphere).
- Built a dozen of complex interactive SVG components using D3.js; examples include a circle-shaped progress bar with bundled settings and interactive pagination controls.
- Developed a platform for private investments, that allows the user to invest not only in specific projects but in the whole segment (e.g., energy). The application has a very enjoyable UI and is a pixel-perfect implementation of the design.
CTO2015 - 2016Meritale
- Built a system that collected and analyzed reviews; it was designed to ease the buying process on the internet. The system crawls the internet, extracts important information, and shows it in a usable way.
- Developed an injectable widget with a web server for use on third-party websites.
- Designed the architecture, created the development plan and product's MVP scope.
- Managed successfully a remote team of two developers and one business analyst for the period of nine months.
- Won a couple of hackathons, participated in a Moscow accelerator (GenerationS) and took a business trip to Israel to widen the network with the Israel startup ecosystem.
Software Engineer2015 - 2016XB Software Ltd.
Technologies: Tools, PHPUnit, Redis, Laravel, Karma, QUnit, Jasmine, Capistrano, Webpack, Gulp.js, Marionette.js, Backbone.js
- Developed a hotel market data and benchmarking platform that allows business clients to analyze performance data and see benchmarking results for the hotel domain.
- Acted as the main architect: estimated the scope, built the back- and front-end and database architecture, and set up the CI and delivery workflow.
- Built a complex FileTree component in DHTMLX library. Supported features include drag-n-drop reordering, uploading progress, subtree cloning, and many more.
- Created a platform which provides both buyers and suppliers with tools that enable real-time tender arranging.
- Refactored a large complex legacy codebase with a highly coupled business logic.
Web Developer2014 - 2015StudyQA
Technologies: MySQL, Memcached, Kohana, TortoiseSVN, Stripe, Handlebars, Bootstrap, Grunt, RequireJS, AMD, jQuery, Backbone.js
- Developed a smart search platform for programs, universities, and scholarships around the world.
- Integrated a couple of externals API, including Stripe for subscription payments, Mailjet for email campaigns, and Aviasales for partnership programs.
- Gained experience working in a remote multinational team.
- Built a system for processing a large amount of abnormal data and extracting facts from it.
Software Engineer2013 - 2015Freelance Work
Technologies: Object-relational Mapping (ORM), Doctrine, MySQL, PHPUnit, Memcached, Symfony 2, Mercurial, Payment APIs, Less, Grunt, RequireJS, AMD, jQuery, Backbone.js
- Created an educational platform which allows students to help each other in solving tasks on different subjects. Included a WYSIWYG editor, live updates with Socket.io, an integrated payment system, and much more.
- Managed a team of two developers; gained experience in tasks delegation and development planning.
- Built a new PHP framework (phpaku) from scratch to get a better understanding of all application development steps.
- Gained experience in project management: developed business requirements and epics, collaborated with freelance designers, and continuously worked on business requirements and feature planning.
- Implemented all deployment-related work: bought the domain, configured the domain records, set up the virtual machine, and implemented a CI with Buddy.Works.