Table of Contents

About me

Software Engineer with 5+ years of hands-on experience. Passionate for automation of the Software Development pipeline. Believe that DevOps is more than tools nevertheless tools are crucial. Making developers' life easier.

Personally, I thrive in an international, collaborative environment working with like-minded professionals, bright and fun folks, in a fast-growing tech company.

There are a few professional topics I am interested in, hence deepen my research under post-grad studies, doing keynote speeches at conferences, issuing publications.

CS.Money

Platform Team Lead (Mar 2022 - Now)

As a lead of Platform team in CS.Money I guide my team on releasing deliveries aimed at DevEx improvement. This is achieved by creating and maintaining transparent processes targeting developers.

My team under my leadership has fully completed the migration of services to Kubernetes and AWS.

  • Decreased infrastructure costs by optimizing instances usage and decreasing egress network traffic
  • Introduced ZeroTrust for securing internal systems and development environments
  • Promoted Everything as Code approach

Platform Engineer (Jul 2021 - Mar 2022)

As a Platform Engineer in CS.Money I increased maintainability of pipelines templates and services deployments. I started migrating services from bunch of instances with docker-compose to Kubernetes cluster and to fully managed Amazon Web Services. All of the resources were created with Pulumi IaC solution that allowed to use real programming language instead of markup language.

The best decision was to use Pulumi instead of Werf tool for deployment to k8s. To ease the deployment process of new services and the maintenance process of already deployed ones, some libraries were written. All of them were written in TypeScript programming language due to amount of code and better readability than Go language.

Industrial Systems for streaming data processing

Team Lead (Oct 2019 - Jul 2021)

Responsible for the Software Development Life Circle of multiple products in Industrial Systems for Streaming Data Processing Laboratory.

  • Managed a DevOps team
  • Consulted Develpment teams on architectural solutions
  • Maintained on-prem, edge and cloud infrastructure

Lead Developer (Feb 2018 - Oct 2019)

A research lab at Peter the Great St.Petersburg University that conducts original research and performs commercial developments in related fields. The projects ranged from the development of an information system for owners, investors and residents of investment hotels to development of a software for behavioral strategies of mouse models analyzis.

A lot of projects were somehow related to artificial intelligence and computer vision. One of such projects was a software for disguised face detection on a video stream. Initially, that project was intended for banks, nevertheless, it continued as a research project.

R&D Projects

Huawei (May 2021 - Dec 2021)

A collaborative project between Huawei and Peter the Great St.Petersburg Polytechnic University. The goal was to develop a tool that will allow a developer to minimize the amount of test suites without impact on coverage. During the project, the prototype as a PoC was developed,research of different test suite minimization techniques was conducted. Java programming language was used for everything. As a result of the project, an expandable minimization engine that can detect redundant tests was provided. A wide range of existing approaches and techniques was analyzed.

Siemens (Jan 2017 - Jun 2018)

A collaborative project between Siemens and the Peter the Great St.Petersburg Polytechnic University. The goal was to investigate the possibility of using artificial neural networks for software clone detection process. This research became a topic of master thesis. As an outcome of the project, the prototype as a PoC was developed. Two programming languages were used - Java & Python. Java was used for AST (Abstract Syntax Tree) extraction and preprocessing, while Python was used for recurrent neural network implementation and post-processing.

Also, there was a need in a lot of data for training, testing and validation. Thus, besides PoC, a Mutator that allowed to generate a lot of artificial clones was also developed. This Mutator could generate all types of syntactical clones and its output was used for efficiency measurement.

Stack

Dev

  • Rust - supportive tooling, video processing, REST client
  • Go - Infrastructure as Code, supportive tooling
  • TypeScript - Infrastructure as Code, supportive tooling
  • Java - microservices development, ML, R&D
  • C - kernel modules
  • C++ - embedded software, ML, video processing, native Linux GUI
  • C# - Revit plugin development, Aveva PDMS plugin development
  • Python - ML stuff

Ops

Automatization

  • Routine automation with Gitlab CI/CD and self-written stuff
  • Fleet of Gitlab Runners of all sorts (Docker on Linux, Windows, MacOS, Kubernetes)
  • Creation of CI/CD pipeline for tens of projects:
    • Desktop and Web projects:
      • Java, C, C++, C#, Rust, Go, PHP, JS
    • Mobile projects:
      • Swift, Flutter
  • GitHub actions for automatization of build and deploy stages

Clouds

  • AWS
    • EC2
    • EKS
    • ElastiCache
    • MKS
    • RDS
    • Route53
    • VPC
  • DigitalOcean

Containerisation and orchestrations

  • Docker as a containerization tool for everything (almost)
  • nspawn as tool for containerizing some services
  • Docker-compose for local development deployments (even with unix socket connections)
  • Minikube, kind for local development deployments
  • Kaniko and Werf for non-privileged Docker image creation
  • Telepresence and Mirrord configuration and maintenance for developers
  • Kubernetes as container orchestration

Network management

  • IPTables for Linux machines firewall configuration
  • ufw for Linux users' machine firewall configuration
  • Configuration and maintenance of dhcpd for IP assigning
  • An experience with netplan and Network Manager as a network configurators
  • Configuration and maintenance of Cisco Switches
  • HP and Unifi AP management
  • WireGuard server and client configuration and maintenance
  • Restricting ssh jumpboxes
  • Racks, servers, UPS and storage installation
  • Cable management

Observability

Grafana stack:

  • Grafana
  • Loki
  • Prometheus
  • Alert Manager
  • Tempo

ELK stack:

  • ElasticSearch
  • Kibana
  • Logstash

On-premises deployment and maintenance

  • Backstage (Helm)
  • GitLab (Omnibus, Helm)
  • Grafana (Helm)
  • HashiCorp Vault (Helm)
  • SonarQube (Helm)
  • Sonatype (Helm)
  • Zulip (Helm)

Packages

  • Helm packages for tens of projects
  • Buildroot package
  • snap packages
  • Packer for machine images
  • Paru for deb,rpm,etc.
  • Nexus as a package storage
  • GitLab Package Registry

Other stuff

  • HashiCorp Vault as a secret storage
  • NGINX as a reverse proxy
  • Caddy as a reverse proxy
  • Werf as a legacy deployment tool
  • Pulumi as an IaC

Eductation

Master (Sep 2016 - Jun 2018)

  • Peter the Great St. Petersburg Polytechnic University
  • Software Development Technology
  • Thesis: Usage of recurrent neural networks for code clone detection

Bachelor (Sep 2012 - Jun 2016)

  • St. Petersburg state University of architecture and civil engineering
  • Applied Mathematics and Computer Science

Contribution

  • nixpkgs - A collection of over 80,000 software packages that can be installed with the Nix package manager
  • Frost - Android Icon pack. Just for fun
  • zmNinja - Cross platform app for ZoneMinder
  • minikube - Local Kubernetes
  • kind - Kubernetes IN Docker - local clusters for testing Kubernetes
  • Kaniko - Allows to build container images wo docker service
  • tizonia - Command-line cloud music player for Linux with support for Spotify, Google Play Music, YouTube, SoundCloud, TuneIn, iHeartRadio, Plex servers and Chromecast devices
  • Pulumi - Universal Infrastructure as Code
  • Pulumi. Digital Ocean provider - A Digital Ocean Pulumi resource package, providing multi-language access to Digital Ocean
  • Packer templates - Scripts and Templates used for generating Vagrant images

Publications

  • Alekseev, Y., Onischuck, M., Zorin, A., Chernyi, V., Iliyn, E., Itsykson, V. (2023). ATSM: A coverage-based framework and a tool for test suite minimization. Journal of Software Evolution and Process, e2621. DOI
  • Rakova, V., Bolsunovskaya, M., Zorin, A., Fedorov, V., & Novikova, Y. (2021). Digitalisation for improving population well-being in the arctic area. DOI
  • Chernyuk, D. P., Zorin, A. G., Derevtsova, K. Z., Efimova, E. V., Prikhodko, V. A., Sysoev, Y. I., Vlasova, O. L., Bolsunovskaia, M. V., & Bezprozvanny, I. B. (2021). Automatic analysis of the "Morris water maze" behavioral test data. Zhurnal Vysshei Nervnoi Deyatelnosti Imeni I.P. Pavlova, 71(1), 126-135. DOI
  • Zorin, A., Chernyuk, D., Vlasova, O., Bolsunovskaya, M., & Bezprozvanny, I. (2020). Software for analyzing the behavioural test “Morris Water Maze”. E3S Web of Conferences, 203, 01029. DOI
  • Zorin, A., & Abramov, N. (2020). Disguised Face Detection. In K. J. Kim & H.-Y. Kim (Eds.), Information Science and Applications (pp. 509–517). Springer. DOI
  • Zorin, A., & Itsykson, V. (2018). Recurrent Neural Network for Code CloneDetection. THIRD CONFERENCE ON SOFTWARE ENGINEERING AND INFORMATION MANAGEMENT (SEIM-2018), 47–53. Link