Gerasimchuk Mikhail

Software Engineer

About me_

I write microservices for pushwoosh.com in Go, according to the clean architecture style, configure them with Consul, cover Prometheus's metrics, wrap it in Docker, and deploy/watch/scale in K8S. I lead and develop new products in the company - was making key decisions connected with the Facebook Messaging technology which was integrating for the new Abandoned Cart Recovery product. I write Go microservices of the platform with a load of up to ~15000 RPS(from ~40K RPS to ~110K RPS total in the cluster).
In the last few years working on my own project — teamcoding.ru, and recently made a beta release.

This repo — github.com/mgerasimchuk/space-trouble shows some of my skills.

CV .PDF

Skills_

General

GoLang

golang-standards/project-layout, The Clean Architecture, goroutines, go app for k8s, channels, grpc, protobuf, amqp, graceful shutdown, etc.

K8S

Kubectl, helm charts, autoscaling, ingress controllers (ingress-nginx, voyager, multiple ingress-nginx controllers in the cluster, troubleshooting), network policy (namespace isolation), SSL installation / cert-manager, Linkerd, k8s HTTP API, DigitalOcean k8s(+DO LoadBalancer and persistent volumes), GKE k8s, self-hosted k8s cloud

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

Testing (Unit, Integration, Functional, Acceptance, Stress)

TDD, BDD testing. Writing acceptance, integration, and unit tests with PHPUnit/Codeception frameworks. Using fixtures and Faker extensions to generate mock data. PHPUnit - MockBuilder, ReflectionClass, Coverage. Smoke Tests using Selenium, Selenoid(with session video recording). In Golang - unit tests + gomock and gounit packages.

Swagger APIs framework

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.

Server administration

Digital Ocean(Droplets, K8S, Private Networks, Volumes, DNS, Load Balancers, etc.), Google Cloud (GKE, K8S, Volumes, etc.), Configuring of LAMP/LEMP stack.

SQL, PL/SQL

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

HTML, CSS, jQuery, JavaScript

Twitter Bootstrap framework, bootstrap templates. HTML templates integration.
AJAX, jstree, FullCalendar, C3.JS charts, D3.JS charts, chart.js, jquery.rest, jquery.terminal e.t.c.

git

Pull request, merge, rebase, commit rollback. Forks, auto-deploy. Creation of the releases, extensions. Gitlab, Bitbucket, GitHub, code review, a lot of code review.

I also use

In the process of work I also use


Work experience (7 years, 8 months)_

Pushwoosh (Novosibirsk city)

Golang developer

11.2018 - Present (2 years, 10 months)

Writing microservices mostly in GoLang and sometimes in PHP for pushwoosh.com. Work connected with high load services ~15K RPS, and also with not so high load services, which are written from scratch. Total request rate range in the cluster from ~40K RPS to ~110K RPS.

Used languages, technologies, and tools: 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.

NGS Technologies(N1.RU) (Novosibirsk city)

PHP developer

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.

Used languages, technologies, and tools: PHP5.6, PHPUnit, MongoDB, Elastic Search, Redis, Swagger/OpenAPI, XDebug, RabbitMQ, Docker, Drone continuous delivery system, Silex Framework, Cilex CLI Framework, Sentry, Grafana, Jira, Tsung.

VipParcel (Novosibirsk city)

PHP developer

09.2016 - 06.2017 (8 months)

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

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

YarCode (Krasnoyarsk city)

PHP developer

09.2015 - 09.2016 (1 year)

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

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

Communal Information Systems (Krasnoyarsk city)

Java desktop application developer

01.2015 - 06.2015 (5 months)

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

Used languages, technologies, and tools: Java, SQL / Eclipse, Aqua data studio, iReport, SVN, CVS, Lotus / MS SQL Server.

Sitall-soft (Krasnoyarsk city)

C# desktop application developer

10.2012 - 01.2014 (1 year, 3 months)

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

Used languages, technologies, and tools: C#, Delphi, XML, SQL / MS Visual Studio, Delphi 7, SVN, SQL Navigator, Crystal Report / Oracle.

Education_

SibFU The institute of space and information technology

Informatics and computing machines (master's degree)

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.

SibFU The institute of space and information technology

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

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: 21.09.2021y.

Go to Russian version

mgerasimchuk.dev