Contractor
2001 - PRESENTFreelance- Designed and implemented a complete back-end system for a social network application. The solution allowed the company to start from a simple mobile front end and then extend it to a web application.
- Designed and implemented back-end services to enable complex REST and websocket APIs for a trading platform.
- Performed a transition of a large and complex PostgreSQL database to MongoDB.
- Designed the architecture and some core back-end services for a complex web project. The objective was to thoughtfully split the previously monolithic application into smaller independent parts, which would act as microservices with well-defined APIs. This approach, along with using the domain-driven design methodology, significantly boosted the development process.
Technologies: Vim Text Editor, Domain-driven Design (DDD), Concourse CI, GitLab CI/CD, Protobuf, NATS, Message Queues, Messaging, APIs, Software Architecture, SQL, Test-driven Development (TDD), gRPC, REST APIs, Continuous Delivery (CD), Continuous Integration (CI), jQuery, Sass, CSS, HTML, Redux, Vue, React, MongoDB, MySQL, DevOps, Bash, Linux, Git, NGINX, Google Cloud Platform (GCP), JavaScript, Redis, PostgreSQL, Kubernetes, Docker, Microservices, GoSenior Software Engineer
2016 - 2017FuboTV- Worked in a distributed team of talented engineers on some critical parts of the infrastructure that worked 24/7 and served tens of millions requests a day.
- Analyzed and optimized heavy PostgreSQL requests which helped to significantly reduce the latency of some internal services.
- Actively collaborated with colleagues to establish a consistent approach to testing in Golang across the team. Implemented hundreds of test cases to ensure the quality of the code and stability of services in production.
- Created an internal library in Golang to encode/decode HLS data.
- Created a complete internal service top to bottom using Golang and Postgres on the back end and React, Redux, and Bootstrap on the front end. The solution highly simplified and reduced the time required for some routine internal operations.
Technologies: Vim Text Editor, Protobuf, APIs, Git, SQL, gRPC, REST APIs, Continuous Delivery (CD), Continuous Integration (CI), Docker, Test-driven Development (TDD), Microservices, PostgreSQL, JavaScript, GoSenior Back-end Developer
2011 - 2015Crazy Panda- Worked in a team of game developers on complex game projects deployed on social networks in Russia, Europe, USA, and Japan. Some of the games have become highly popular and gained tens of millions of users worldwide.
- Designed and implemented well-defined data exchange protocols between components of the system that allowed the team to focus on the business logic and not spend time on low-level coordination.
- Worked closely with front-end developers to establish coordinated and flawless interaction of back-end servers and front ends.
- Wrote thousands of unit tests to ensure the correctness of the complicated game logic and to achieve higher uptimes.
- Profiled, refactored, and optimized the codebase for some game projects in the company. It helped to improve the robustness of the application servers significantly.
Technologies: APIs, Git, SQL, Test-driven Development (TDD), NGINX, Bash, Linux, PostgreSQL, Catalyst, PerlArchitect, Senior Perl Developer
2006 - 2011Ontico- Worked on numerous web projects for clients of the company.
- Contributed to the development of a Perl-based web framework that the company used as a fundamental part of many high-load projects.
- Implemented a back end for a media library for a telecom operator. It helped to streamline the process of media uploading, processing, and streaming.
- Implemented a full-text search feature for a big (15 million messages) and rapidly growing web forum.
- Communicated with end users to gather feedback, and to understand their needs. Turned the feedback into concrete solutions.
Technologies: APIs, Software Architecture, Bash, Git, SQL, Memcached, NGINX, Apache, PostgreSQL, Linux, Mod_perl, PerlWeb Developer
2001 - 2006Chess Server iGame.ru- Founded the project and wore many hats in it, from architect to designer and full-stack web developer. The project gained a lot of buzz and became one of the most popular chess servers in Russia back in the day.
- Implemented many major features—for example, round robin tournaments, chess teams, team competitions, or forum subsystems.
- Implemented the transition to new technologies—for example, CGI to mod_perl.
- Designed the database layout, maintained its work, and introduced necessary measures to keep up with the growing popularity of the project.
- Continuously refactored the code to keep the growing codebase in good shape.
Technologies: APIs, Software Architecture, Bash, SQL, REST APIs, NGINX, Memcached, MySQL, Mod_perl, Apache, CSS, HTML, JavaScript, Perl