Gerasimchuk Mikhail

Software Engineer | Backend (Golang) | Cloud Solutions

About me_

Software Engineer with 12+ years of commercial development experience. For the past 7+ years, I've been building enterprise solutions in Golang, following clean architecture practices. I deploy solutions to Kubernetes, build them with Docker, and package them into Helm charts. For delivery, I rely on CI/CD in GitLab and GitHub, and I ensure observability with Prometheus, Alertmanager, OpenTelemetry, Loki, and Grafana.

During my career, I've split PHP monoliths and rewritten them as Go microservices, built CI/CD from scratch, write pipelines with Docker, Helm, and Kubernetes, and migrated them from GitHub to GitLab. I created an application skeleton in Go to speed up development, and introduced and implemented logging, monitoring, alerting, tracing, and profiling practices. I also improved code review practices.

I've designed and built MVP solutions from scratch, handled loads of 15K RPS of external and 110K RPS of internal traffic, troubleshot performance issues, delivered a large number of business features, and conducted countless code reviews. I've interviewed, onboarded, and mentored developers, and held team lead and tech lead roles. I've been part of both product and infrastructure teams at companies ranging from 10 to 300 employees.

For the past few years, I've been working on my own project in my spare time - teamcoding.ru.

The repositories below show some of my skills:
- github.com/mgerasimchuk/space-trouble (business app)
- github.com/mgerasimchuk/protty (cloud native app)

CV .PDF

Skills_

General

Agentic Development

Advanced usage of AI coding assistants (ChatGPT, GitHub Copilot, Cursor, Claude Code) and related tooling(Code-Graph-RAG, agents, skills). Rapid prototyping. Tests, API stubs and documentation generation. Applying AI tools to accelerate development workflows, including automated code review agents. For non-core parts of the codebase - feature implementation and code refactoring

GoLang

golang-standards/project-layout, The Clean Architecture, go app for k8s, goroutines, channels, generics, grpc, protobuf, amqp, kafka, graceful shutdown, gowrap(custom templates), etc.

K8S

DigitalOcean k8s(+DO LoadBalancer and persistent volumes), GKE k8s, AWS k8s, self-hosted k8s cloud, Rancher k8s, kubectl, helm charts, autoscaling, ingress controllers (traefik, ingress-nginx, voyager, multiple ingress-nginx controllers in the cluster), network policy (namespace isolation), NodePorts, SSL installation / cert-manager, Linkerd, istio, k8s HTTP API, troubleshooting, traffic sniffing by ksniff, tcp-dump and wireshark

DevOps, Tooling, SRE

Bare metal: Supermicro, IPMI, Proxmox, Kubernetes(terraform, bpg/proxmox, siderolabs/talos)
Cloud platforms (AWS, GCP, Digital Ocean, Hetzner): Configuring Kubernetes(self-hosted and as a service), Load balancing, virtual network, S3, CDN, configuring LAMP/LEMP stack on VPS. Configuring and interacting with AWS services - CloudWatch/OpenSearch/EKS/ECR/XRay/SNS/MSK/Bedrock/etc
Monitoring: PromQL, SLI/SLO metrics/budgets/alerts, Alertmanager API, Grafana dashboards creating and delivering through the CI/CD with Grafana API / helm charts, Prometheus push-gateway configuration, Prometheus record rules, product and infrastructure alerts, Alertmanager receivers customization, Continuous profiling on the Grafana/Alloy/Pyroscope/pprof stack
Helm: Creating templates for business apps, Grafana dashboards, Prometheus rules/alerts, infrastructure apps
Terraform: Using 3rd party providers for describing infrastructure as a code
GitLab, GitHub: Creating pipelines and workflows from scratch for testing(unit+integration), linting, building business applications and delivering to the production through the dev and stage environments. Creating and configuring self-hosted gitlab shell runners. Creating custom integrations(review reminder bots, developers mention mechanisms, metric exporters to the ES and Grafana) with the GitLab API

Testing (Unit, Integration, Stress, Acceptance)

Unit: TDD, BDD testing, PHPUnit(MockBuilder, ReflectionClass, Coverage), Codeception frameworks. Fixtures and Faker extensions to generate mock data, Golang test(gomock, gounit, faker, HTTP recorders)
Integration: docker-compose based with infrastructure/svc mocks by Wiremock(for HTTP APIs), Gripmock(for gRPC API), Localstack(for AWS)
Stress: k6, Tsung, Yandex tank, JMeter, BlazeMeter, recording and reproduced users' sessions with Nginx access logs and Tsung sessions.
Acceptance and Smoke: Codeception, Selenium, Selenoid for UI testing(with session video recording)

OpenAPI/Swagger Specification

With the "API Design First" approach, using OpenAPI/Swagger Specification and Swagger-UI. Writing specification for GET, POST, PUT, PATCH, DELETE requests with definitions. Using specification to runtime requests validation. Using swagger interceptor to generate documentation based on existing API

PHP8, PHP7, PHP5.6, Yii 2, Kohana 3, Slim, Silex, Cilex

JRPC/REST API, PHPUnit, Threads, pcntl, XDebug, XDebug profiling.
Yii2: Advanced template, Миграции, Active Record, table input, widgets, routing, RBAC.
Kohana3: ORM, mmp migrations, Smarty, Minions Task.

Mongo DB

SQL, PL/SQL

Index usage, сomplex queries, virtual tables, views, stored procedure, triggers. MySQL, PostgreSQL.

I also use

In the process of work I also use


Work experience (12 years, 6 months)_

Tech Lead

ShelterZoom · Full-time
New York, United States · Remote

11.2021 - Present (4 years, 7 months)

Golang development as part of work on the DocuWalk and Document GPS products. Creating application skeletons and adapting clean architecture practices. Improving CI/CD processes in GitLab, evolving monitoring based on Prometheus and Grafana, optimizing system performance in database operations, and enhancing the development ecosystem built on AWS and Kubernetes. Developing the first version of a RAG system based on AWS components, with further work on the features and evolution of this AI Trust & Governance platform, Mithra AI.

• Implemented the E-Signature capability in the product and adopted a Centrifugo WebSocket component to power the real-time collaboration feature
• Built a first version of the RAG solution on top of AWS components and shipped it in the Mithra AI Beta
• Built the backend CI/CD from scratch and completed the org-wide GitLab migration
• Accelerating library upgrades by 15x+ and reducing the effort from the whole team to a single developer
• Established observability across the org - Sentry error tracking, Prometheus/Alermanager alerting, and continuous profiling with an alert auto-assignment mechanism that pings the responsible developer in Slack
• Built a live-rebuilding Kubernetes debug mode that cut root-cause localization from ~1 day to tens of minutes
• Cut false-positive alerting via a "Silences as code" approach and reduced false-positive QA autotests through CI/CD tuning
• Created a custom Grafana datasource for MongoDB slow logs, avoiding a $300+/month enterprise Grafana cost

Roles: Lead Golang developer, Tech Lead

Technologies: GoLang, gRPC, protobuf, WebSockets, REST, Prometheus, Prometheus Alertmanager, Docker, K8S, MongoDB, Elasticsearch(AWS OpenSearch), Kafka, Redis, BlazeMeter, JMeter, Grafana, Kibana, GitLab, Microservices, AWS(X-Ray, CloudWatch, VPC, MSK, EKS, Bedrock), Hyperledger.

Software Development Engineer

Amazon Web Services (AWS Shield) · Full-time
Vancouver, Canada · On-site

08.2022 - 08.2022

I've written 0 lines of code for AWS, but my inbox contains over 300 email correspondences with my AWS Shield development team manager and employees of the immigration service.

Unfortunately, due to circumstances beyond my control and those of Amazon, I was unable to start working on the AWS Shield project because the Canadian immigration agency did not approve my work visa within the specified timeframe.

Nevertheless, I still decided to reflect this experience into my career path, as I consider it an authoritative confirmation of some of my skills.

• I successfully completed all three rounds of interviews, including the loop, and received the final job offer on August 16, 2022, to join the AWS Shield team, which I accepted.
• I traveled to Kazakhstan to take the IELTS language exam and prepare numerous other documents for immigration to Canada.
• I submitted the entire immigration document package.
• I signed numerous papers and contracts from AWS and even reserved internal mail and a badge.
• However, after six months of active collaboration with the Canadian immigration agency and the immigration assistance outsourcing agency Vialto, my documents stalled at the very last stage of the review.
• Amazon extended the offer several times, and the immigration application issue escalated to Canada IRCC, involving both Amazon and parliamentarians working with Vialto.
• After a year and a half since receiving the offer, unfortunately, a happy ending did not occur, and all I have left is this long journey that did not conclude as I had hoped.
• On January 4, 2023, my documents were still in the final review stage at Canada IRCC, and Amazon did not approve further offer extensions.
This marks the end of my FAANG and Canada immigration story, but unfortunately, not in my favor.

Golang Developer

Pushwoosh · Full-time
Novosibirsk, Russia · Hybrid

11.2018 - 11.2021 (3 years)

Developing microservices for pushwoosh.com in Go following clean architecture practices, configuring them with Consul, instrumenting them with Prometheus metrics, packaging them in Docker, and deploying, monitoring, and scaling them in K8S. Worked on new product development at the company, making key decisions related to the Facebook Messaging technology integrated into the new Abandoned Cart Recovery product. Developed and maintained platform solutions designed to handle 15K RPS of external traffic and 110K RPS within the cluster.

• Developed the Event Public API - a key client-facing capability, and covered it with unit and acceptance tests following TDD
• Built the MVP of a new "Abandoned Cart" product with Facebook Messenger API integration and took it to production, opening it up to customers
• Introduced SLIs/SLOs, unified global metrics, an error-budget dashboard, and alerting, then raised the success rate of problematic public APIs from ~70% to 99.9%
• Initiated and implemented Kubernetes service autoscaling driven by external Prometheus metrics, including Kafka lag
• Created a service template following clean architecture practices and rewrote the service scaffolding tool, speeding up development of new microservices
• Built a Mongo Monitor Grafana dashboard and a dedicated metrics collection package to diagnose MongoDB instability

Roles: Middle Backend Engineer L1, Middle Backend Engineer L2, Middle Backend Engineer L3, Senior Backend Engineer L1
Teams: Strategy, Abandoned cart sub-product, Customer Data Platform sub-product, Core, Production, SRE

Technologies: GoLang, gRPC, protobuf, Prometheus, Consul, Docker, K8S, PHP7(+daemons in php), PostgreSQL, MongoDB, ClickHouse, Cassandra, Kafka, RabbitMQ, Redis, Tsung, Yandex tank, Grafana, Redash, Gitlab, Microservices, REST API.

PHP Developer

NGS Technologies (N1.RU) · Full-time
Novosibirsk, Russia · On-site

06.2017 - 11.2018 (1 year, 5 months)

Real Estate Project Group N1.RU
API development, with ~500 RPS load, for vue.js webapp and for Android, iOS mobile applications.

• Refactored two key services, cutting the error rate across the API and background task processing by an average of 20%
• Raised unit test coverage of core functionality to 90%
• Built a test data and API mock generator, speeding up test development
• Introduced vfsStream for file system functions and reflection-based access to private methods into the team's PHPUnit testing practices
• Consistently ranked among the top 3 reviewers in peer code reviews, participating in 80% of reviews on average

Roles: Middle PHP developer
Teams: Desktop Web App API, Mobile Apps API

Technologies: PHP5.6, PHPUnit, MongoDB, Elastic Search, Redis, Swagger/OpenAPI, XDebug, RabbitMQ, Docker, Drone CI/CD, Foreman, Silex Framework, Cilex CLI Framework, Sentry, Grafana, Jira, Tsung.

PHP Developer

VipParcel · Full-time
Krasnoyarsk, Russia · On-site

09.2016 - 05.2017 (8 months)

Work on VipParcel and ExpressFromUS projects. Modules development, integration with post services(Aramex, DHL), ebay integration etc.

Technologies: PHP5.6, jQuery, JS, HTML, CSS, Kohana 3 framework, twitter bootstrap framework, Smarty, mercurial(Bitbucket), composer, MySQL, phpStorm, Docker, RabbitMQ.

PHP Developer

YarCode · Full-time
Krasnoyarsk, Russia · On-site

09.2015 - 09.2016 (1 year)

Outsource development - CRM system, RESTfull API, ordering services, etc.

Technologies: PHP5.4, jQuery, JS, HTML, CSS, Yii2, framework, twitter bootstrap framework, swagger framework, codeception framework, git (Bitbucket, GitHub), composer, MySQL, dbForge, phpStorm, LEMP stack.

Java desktop application developer

Communal Information Systems · Part-time
Krasnoyarsk, Russia · On-site

01.2015 - 06.2015 (5 months)

Support for the automation of business processes, companies providing energy.

Technologies: Java, SQL / Eclipse, Aqua data studio, iReport, SVN, CVS, Lotus / MS SQL Server.

C# desktop application developer

Sitall-soft · Part-time
Krasnoyarsk, Russia · On-site

10.2012 - 01.2014 (1 year, 3 months)

Support of the business process automation system for the printing company CJSC Sitall.

Technologies: C#, Delphi, XML, SQL / MS Visual Studio, Delphi 7, SVN, SQL Navigator, Crystal Report / Oracle.

Education_

Informatics and computing machines (master's degree)

SibFU The institute of space and information technology · Krasnoyarsk, Russia

09.2015 - 06.2017

After defending the diploma project "Laboratory complex, for development and control of practical skills of working with the command interface of operating systems" was awarded a master qualification and awarded a diploma with honors.

Computing machines, complexes, systems and networks (engineer degree)

SibFU The institute of space and information technology · Krasnoyarsk, Russia

09.2010 - 06.2015

After defending the diploma project "Development of the command interface simulator for teaching and controlling students' knowledge of the subject Operating systems. Logic of the application server" was awarded an engineer qualification and awarded a diploma with honors.

Last change: 20.07.2026y.

Go to Russian version

mgerasimchuk.dev