
Damir Makhmutov
Software Developer
About
Backend Engineer, my favourite programming languages is go, java, kotlin.
I have experience with high load, distributed systems (distributed transactions in microservices world, distributed locks, data sharding, consistent hashing, eventual consistency, service discovery, multitetant architecture).
I like to learn new technologies via pet projects. In my pet-projects I use open source technologies such as Spring, Micronaut, Quarkus, even Flutter for mobile projects.
I’m not afraid of devops. I have an experience with alerting, monitoring systems, CI/CD such as TeamCity, infrastructure as a code (ansible, terraform, salt).
Also I quite interested in blockchain technologies.
My motto in life is never stop learning.
Work Experience
Yandex Cloud VPC control plane.
Participated in the rewriting/development of the control layer for Yandex Cloud VPS.
The main goal of the service is to distribute the user's configuration (networks, subnets, ip addresses, network interfaces, load balancers, health checks) to lower-level systems (such as load balancer controller, or software defined network aka SDN controller).
I gained experience with Java, distributed locks, distributed transactions between microservices.
Yandex Cloud Load Balancer control plane.
Participated in the development of control plane for the cloud L4 load balancer.
This is a multi tenant service, all clients are allocated to the existing sharded pool of resources.
The architecture was divided into two large components - load balancer controller, and health check controller. Most of all, I was lucky enough to take part in the distributed health check.
The main challenge was in aggregating the health checks of the load balancer targets. Each check was sharded into several health check nodes (health checks are performed directly on the nodes) to achieve a quorum.
Service was developed with Golang, using GRPC as a transport between components. I’ve got experience with service discovery (we use a small component from consul), consistent hashing (health check 's are spreaded on health check nodes using this hashing algorithm).