Chief Technology Officer
2021 - 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.
Technologies: Node.js, TypeScript, React, PostgreSQL, Docker, Kubernetes, Google Kubernetes Engine (GKE), Google Cloud Platform (GCP), Blockchain, Agile, CI/CD Pipelines, Jira, Slack, GitHub, Blockchain Platforms, Customized Blockchains, Git, Vim Text Editor, Stripe, Stripe API, Stripe Checkout, APIs, GraphQL, Ethers.js, Ethereum, Non-fungible Tokens (NFT), System Design, Scaling, Performance, Debugging, CQRS, OOP Designs, API Architecture, JavaScript, Stripe Connect, Stripe Payments, Stripe Connect API, API Integration, API/Services Architecture, Unix, Optimization, IT Management, Team Leadership, Remote Team Leadership, Analytics, Research, Microservices, Microservices Architecture, CTO, Front-end, Back-end, HTML, CSS, Full-stack, JestCore Senior Back-end Developer
2016 - 2021Toptal- 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.
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, CSSSenior Ruby, Ruby on Rails, and React Developer
2014 - 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.
Technologies: Ruby, Ruby on Rails (RoR), PostgreSQL, MySQL, MongoDB, React, ECMAScript (ES6), ES7, Node.js, Agile, CI/CD Pipelines, GitHub, Slack, Sockets, NGINX, Git, JavaScript, Stripe, Stripe API, Stripe Checkout, APIs, REST APIs, GraphQL, Debugging, Optimization, Performance, API Design, System Design, API/Services Architecture, Linux, Unix, Docker, Stripe Connect, Stripe Marketplace, Stripe Connect API, OOP Designs, Analytics, Research, GitHub API, GitFlow, Vim Text Editor, Microservices, Microservices Architecture, Front-end, Back-end, HTML, CSS, Full-stack, JestRuby on Rails Developer
2013 - 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.
Technologies: Ruby, Ruby on Rails (RoR), Docker, PostgreSQL, Redis, Sidekiq, Data Processing, CI/CD Pipelines, Agile, Elasticsearch, Streaming, Sockets, NGINX, Git, JavaScript, Stripe, Stripe API, Stripe Checkout, APIs, API/Services Architecture, API Design, GraphQL, Vim Text Editor, Linux, Unix, Socket Programming, Microservices, Microservices Architecture, MySQL, Front-end, Back-end, HTML, CSSSoftware Engineer
2012 - 2013SimbirSoft- 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.
Technologies: C#.NET, C#, Xamarin, C++, iOS, Android, Windows Phone, Agile, Objective-C, Objective-C++, Git, APIs