Arseniy Zorin DevOps/SRE/Cloud Engineer

About me

DevOps 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.

Privately, I enjoy good food & wine with my fiancé, our walks & trainings with Shiba Inu dog Yokko, playing a different kinds of boardgames with my friends and playing video games.

Highlights

  • 5+ years active Linux user
  • «Works on my machine» is the worst excuse
  • «It depends»
  • Everything as Code adept
  • FOSS lover
  • Collab with Siemens lab
  • Collab with Huawei lab

Languages

  • English: advanced
  • Russian: native

Sports

  • Snowboarding as an extreme sport
  • Volleyball as a team sport
  • Archery as a sport for the soul (Black badge)

Education

Postgraduate

Mathematics and software of computers
network and complexes

2019 - 2023 (expected)

Master

Software development technology
Thesis: Usage of recurrent neural networks for
code clone detection
2016 - 2018

Bachelor

Applied Mathematics and Computer Science
2012 - 2016

Experience

CS.Money

Platform Team Lead

Jul 2021 - Now

As a lead of Platform team in CS.Money I guide my team on releasing deliveries aimed at simplifying developers’ life and shortening time-to-market. this is achieved by creating and maintaining transparent processes targeting both developers and end-users.
My team under my leadership has initiated and completed the migration of a bunch of the services from standalone machines to Kubernetes, 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.

R&D Project sponsored by Huawei

Tech Lead

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.

Industrial systems for streaming data processing

DevOps Team Lead

Feb 2018 - Jul 2021

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 Project sponsored by Siemens

R&D Engineer

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 syntactical clones and its output was used for efficiency measurement.

Check it out

PolyPhone

Developer

Jan 2017 - Mar 2018

It's a project that started during course work in university but far too passionate to be restricted by it. Unfortunately not all members of the team were as involved as the software team. Even though this project died a horrible death, it was an awesome experience!

The mission was to create a phone from parts that are not designed to be used in a phone. This restriction moved us away from existing android ready Chinese boards.

Hardware

  • RaspberryPi Zero W
  • SIM808
  • Ready to go screen, battery, charge controllers
  • Power and buttons controller (Digispark)
  • Manually wired motherboard

Software

  • Out of the tree vc4 driver
  • Archlinux ARM
  • Custom Window Manager
  • Custom Boot Animation (Plymouth)
  • Custom Suite of Phone applications (GTK at first, but Qt later)
  • Hosted Archlinux repository to distribute updates

Check it out

Stack

Development

Languages:

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

Libraries:

  • Diesel - Safe, Extensible ORM and Query Builder for Rust
  • Gotham - A flexible web framework
  • Tokio - An asynchronous runtime for Rust
  • Spring - A comprehensive programming and configuration model for Java
  • OpenCV - A library for real-time computer vision
  • darknet - An open-source neural network framework written in C and CUDA
  • Keras - An open-source library for artificial neural networks
  • Tensorflow - An open-source library for machine learning and artificial intelligence
  • Qt - A cross-platform software for creating GUI and cross-platform applications

DevOps

AWS:

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

Containerisation and orchestration:

  • 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 configuration and maintenance for developers
  • Kubernetes as container orchestration

Observability:

  • Grafana
  • Loki
  • Prometheus
  • Alert Manager
  • ELK

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

On-premises deployment and maintenance:

  • GitLab (Omnibus, Helm)
  • Sonatype (Helm)
  • Zulip (Helm)
  • HashiCorp Vault (Helm)
  • SonarQube (Helm)
  • Grafana (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

Not DevOps

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

Documentation:

  • Zola as a static site generator
  • Confluence
  • Markdown + Pandoc for reports and articles
  • LaTex for article, reports and presentations

Task tracking:

  • Jira
  • GitLab Issues
  • Asana
  • Redmine

Contributions

  • 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 tempaltes - Scripts and Templates used for generating Vagrant images;

Publications

  • 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