Chief Technology Officer2021 - 2022FazzMe
- Researched, compared, and selected tools and technologies to create the product and designed the system's architecture, taking into account the price of cloud services and expected user growth and business direction.
- Developed several essential parts of the application, such as integration with a blockchain, moderation, and admin modules, as well as CI/CD pipelines.
- Led a 4-person engineering team to release the product to production four months from the start.
- Contributed to the building of product vision from a raw idea. Proposed several ideas and solutions, which turned out to be essential for the business. Some of these solutions were patented later.
Core Senior Back-end Developer2016 - 2021Toptal
Technologies: Ruby, Ruby on Rails (RoR), Microservices, PostgreSQL, Jenkins, Agile, CI/CD Pipelines, Jira, Sidekiq, Redis, Slack, GitHub, Grafana, Kibana, Git, NGINX, Amazon Web Services (AWS), GitHub API, APIs, GraphQL, REST APIs, CQRS, System Design, OOP Designs, API Integration, Domain-driven Design (DDD), Test-driven Development (TDD), GitFlow, Microservices Architecture, API Architecture, API/Services Architecture, Node.js, Python 3, Django, Vim Text Editor, Linux, Unix, Debugging, Performance, Optimization, Apache Kafka, Front-end, Back-end, HTML, CSS
- Made CI 30% faster and cheaper, saving thousands of hours of CI time and more than $10,000 per month. For that, I created a new tool to execute RSpec tests and Cucumber features in a parallel distributed manner, controlling through DRb protocol.
- Improved overall performance of the application by tracking down and fixing multiple bottlenecks using Grafana, Kibana, and flame graphs.
- Improved the user experience by reworking a part of the interface from Ruby on Rails views to React.
- Reworked legacy Delayed Job jobs to Active Job, and refactored them to fit best practices of the industry.
- Reduced the complexity of working with jobs by introducing a whole new concept of serializers into Active Job. It was merged into Active Job itself later.
- Increased consistency and fault tolerance of the system by introducing a new abstraction level to represent business transactions during the execution of business processes. That includes data with complex dependencies on external systems.
- Optimized RAM consumption of Cucumber suite by using object caching in factories.
- Developed a regression test selection library for RSpec. It builds a dependency tree from test files to source files, which is used to select and execute specific tests based on what source files have been changed.
Senior Ruby, Ruby on Rails, and React Developer2014 - 2016Online Freelance Agency
- Updated legacy file management system from Ruby 1.8 to 2.7, reworked it to fit best practices of the industry, and made the management of files 30% faster by introducing Active Job and Sidekiq and handling several processes concurrently.
- Improved performance and reduced complexity of a legacy Backbone and jQuery application by reworking it to React.
- Implemented a real-time chat for a social network using WebSockets.
- Implemented a tracking subsystem with the idea of not interfering with the main application in any way. It was achieved by introducing a new Ruby microservice and complex configuration of Nginx.
Ruby on Rails Developer2013 - 2014Undev.ru
- Reworked and improved the performance of a subsystem that processes ongoing business tasks by using a custom processor for Delayed Job, increasing from 100 tasks per hour to up to 1,000 tasks per hour.
- Doubled the performance of full-text search in the system by the integration of Elasticsearch.
- Educated and supervised junior developers to ensure they were a good fit and could keep up with the quality and performance requirements of the main team.
- Developed a microservice-based system using a variety of technologies to upload, transform, store, and stream videos, images, and audio.
Software Engineer2012 - 2013SimbirSoft
Technologies: C#.NET, C#, Xamarin, C++, iOS, Android, Windows Phone, Agile, Objective-C, Objective-C++, Git, APIs
- Initiated a new sub-department for cross-platform mobile development using Xamarin, which brought in a significant profit in the first months.
- Designed an abstraction layer for Google Maps to be used by Xamarin iOS and Android.
- Improved performance and user experience of several mobile applications significantly by handling data management concurrently.