Position: Senior Software Engineer
Category: Golang
English level: upper
Years of experience: 11

1. Decomposed monolith into several different projects.
2. Rebuild one of that projects to implement service architecture.
I’m a senior back-end developer looking for a position at a company, where I can apply my developer experience and improve my skills in different languages, especially in Golang. I’m interested in remote work with relocation options.

Working experience
Pravoved.ru Lab, 2011-2021
I developed and supported major projects of the company: legal services marketplace pravoved.ru and affiliate CPA network feedot.com.

Pravoved
Server-side rendered, PHP 5.6, Javascript, MySQL, Redis, Sphinx

Developed services and features:

1. Services for clients that allowed them to order documents and phone consultations.

2. RESTful API for IOS and Android applications.

3. Project migration to Docker environment. Creation CI/CD pipeline.

4. Internal company tools:
- Leads reception, moderation, and selling. Those tools became the base for the Feedot project.
- Financial and user’s activities reports.
- . A/B tests and resulting reports of those tests.

5. Third-party services integration:
- Voximplant - service for managing calls.
- Integration with several online banking services.
- SPA on the main site pages: questions list and question view. 


Feedot
PHP 5.6, Python, Javascript, MySQL, Redis, RabbitMQ

Creation of Feedot project from Pravoved module:
1. I designed Feedot decoupling from Pravoved.
Then I decomposed the codebase into two monoliths and deployed them into different environments.
The final step was breaking the database into two databases: for Pravoved and for Feedot.

2. Improvement of project’s architecture:
- I split monolith into about 20 services and sites.
- I migrated the project into Docker environment and improved CI/CD pipeline.
- Migration to Kubernetes cluster:
- I prepared the project for migration making it to meet the requirements of 12-factor applications. This allowed deploying the project easily in different environments.
- Then I migrated the project into managed Kubernetes cluster.