Gerasimchuk Mikhail

Software Engineer

About Me

About me

Gerasimchuk Mikhail Grigor'evich

Web developer from Novosibirsk


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.


Download Printable Resume

Technical Skills

I can say i'm quite good at

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.

Server administration

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

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

Mongo DB

Indexes, optimizations with explain, aggregation framework.
Certifications:
MongoDB Basics
MongoDB for Developers
MongoDB Aggregation Framework
MongoDB Basic Cluster Administration
MongoDB Diagnostics and Debugging

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.

GoLang

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

SQL, PL/SQL

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

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.

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.

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.

In the process of work I also use

WORK EXPERIENCE

My previous associations

Nov, 2018
Present

Pushwoosh (Novosibirsk city)

Golang developer

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.

Jun, 2017
Nov, 2018

NGS Technologies(N1.RU) (Novosibirsk city)

PHP developer

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.

Sep, 2016
Jun, 2017

VipParcel (Novosibirsk city)

PHP developer

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.

Sep, 2015
Sep, 2016

YarCode (Krasnoyarsk city)

PHP developer

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.

Jan, 2015
Jun, 2015

Communal Information Systems (Krasnoyarsk city)

Java desktop application developer

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.

Oct, 2012
Jan, 2014

Sitall-soft (Krasnoyarsk city)

C# desktop application developer

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

What I have done in my academic career

Sep, 2015
Jun, 2017

SibFU The institute of space and information technology

Informatics and computing machines (master's degree)

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.

Sep, 2010
Jun, 2015

SibFU The institute of space and information technology

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

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.

Portfolio

showcase of my latest works

GET IN TOUCH

Please feel free if you would like to have a chat.

Last change: 21.09.2021y.