About Me
I’m a backend software engineer and consultant, primarily working in Go, also having strong experience in Symfony and PHP.
During the last 5 years I’ve been involved in designing and developing microservice architecture, which includes CI/CD design, containerization (Docker/Kubernetes), authorization and authentication.
I worked both in a team as a team and tech lead, and as an individual. My working experience is about 70 % remote and 30 % on-site.
Main Professional Interests
- Backend architecture
- API Design and development
- Training and mentoring junior colleagues
- Transforming monolithic applications to microservices
Open Source Projects
- Symfony Prometheus Metrics Bundle
- Symfony Query Filter Bundle
- Elasticsearch Hook for Logrus
- tahwil - cyclic graph structures serialization library written in go
My Technology Stack
Type | List |
---|---|
Languages | Go, PHP, JavaScript, Bash |
Data | MySQL, RabbitMQ, Elasticsearch; Doctrine ORM |
Monitoring | Prometheus, Grafana, ELK, Google Cloud’s operations (former Stackdriver) |
Frameworks | Gin, Symfony |
Containerization | Docker, Kubernetes |
VCS | Git, SVN; Bitbucket, Gitlab, Github |
CI/CD | Bitbucket Pipelines, Gitlab CI/CD, Github Workflow, Circle CI, Travis |
Code Quality | golangci-lint, built-in go vet , php-cs-fixer , phpcs , phpstan ; phpunit, built-in go test , etc. |
Cloud | AWS, GCP |
Past Experience
Codership Galera Cluster
Senior Backend Software Engineer
Aug 2018 - Present
I joined Codership to develop a new tool to manage and monitor Galera Clusters: Galera Manager. We have a small team of two people in this project, where I’m responsible for the backend development. My main programming language is Go. In addition, I do some bash scripting.
This project involves integration of different monitoring and management solutions including internal know-hows. Among other tasks I’m also responsible for the engineering of the CI/CD process (Gitlab CI + Kurbernetes).
Jobtome
External Engineering Consultant
Nov 2020 - Present
I signed a contract with Jobtome to help the company improve the output quality of one of their development teams. This included:
- training the team members
- technology choice advice
- enhancing the existing technological stack
- development infrustructure optimizations (performance and functionality)
- interviewing new candidates to join the team
The results of my cooperation with Jobtome:
- development team reorganized into two independent teams
- new highly skilled people joined the company
- the team learned how write the unit and functional tests
- test coverage increased from 0 % to 70-80 % depending on the project
- with the integration of code linters, static analysis tools and testing frameworks the code base became homogenous, the number of unexpected behavior cases has decreased and the new features are now being added without the fear of breaking something
- the speed of the CI pipelines drastically increased with the introduction of various caching techniques
- with the introduce of the Review Applications the company can now try the new features along with their development and the developers can now align with the product owner and stackholders early and avoid the risk of delivering unexpected/unrequested results
- with the introduction of Prometheus and Grafana and the application metrics the company can now monitor the application state and understand if there is a problem early
- with the improved logging approaches that - along with the message - now include the context the company can now better navigate through the logs and analyze them
Feedo®
External Information Technology Consultant (part-time)
Mar 2019 - Mar 2020
Even after leaving the company, I didn’t fully lose my connection to it, and we came to an agreement that I was offering them consultancy services that included the following:
- technology choice advice
- infrastructure optimizations (both performance and finance sides)
- few programming tasks
Head Of Development
Mar 2018 - Mar 2019
As a Head of Development I managed a team of up to 9 people (both internal and external colleagues). While I continued taking part in the software development process, I started solving management tasks like personnel, tactical and strategic decisions. As a result Feedo now has a quality and stable microservices platform with automated CI/CD process implemented. At the same time most of the technologies and components were updated to the most recent versions and all known security issues were solved - this was my priority number one since I joined the company, and by taking this position I was able to reach that aim successfully.
Senior Software Engineer / Tech Lead
Mar 2018 - Mar 2019
Since I came to Feedo in 2016 my main mission has been primarily improving code quality, upgrading the technology stack and migrating the old monolithic core to the microservices architecture. Of course I couldn’t do that alone within a reasonable time range, so building a team was one of my priorities.
After two years of my work at Feedo, we got an efficient and enthusiastic team. We write tests, we started using Kubernetes, which hosts all our new microservices. The general quality of the code has improved dramatically.
NJQ & Associates
Tech Lead & Consultant
Sep 2012 - Present
I joined NJQ & Associates to develop a CRM system for the IP industry for managing full range of tasks that the companies need in this area. This was a completely brand new system that I started building from scratch using Symfony Framework (PHP).
Later we hired more people to the team and I started leading the team. It was my first experience in leading a team of software developers. The most challenging part of this position was that we all worked remotely. As a result I set up standards and processes that are used in the company at present with just few changes.
As NJQ is a small company and we didn’t have any SRE/DevOps team members, I was responsible for setting up development and production environments, CI/CD process and code quality review process.
I’ve been always working closely with a managing director of the company and at the moment I still retain warm relations and offer them consultancy and technical management services.
Education
Year | School | Degree | Field of Study |
---|---|---|---|
2001-2006 | Kurgan State University | Master’s Degree | Software for Computers and Automated Systems |
2008-2011 | Siberian State University of Telecommunications and Information Sciences | Master’s Degree | Economics and Company Management (Telecommunications) |
Languages
- Russian (Native)
- English (Effective Operational Proficiency)
- Czech (Effective Operational Proficiency)
- German (A1/Breakthrough)
Hobbies and Personal Interests
- Retro-gaming
- Travelling
- During the last 10 years I visited more than 30 countries and an uncountable number of cities, towns and villages
- Popular science (physics and space; linguistics; biology)