Serhii Ivanov 🇺🇦/🇵🇱

Senior Software Developer (Golang)

7 years of experience

Per Aspera ad Astra

Senior Golang Developer with DevOps Expertise and Exceptional Soft Skills for Dynamic Team Environments

Skills:

Git 6 yearsGolang 6 yearsGin 1 yearJava 1 yearPHP 1 yearPython 1 yearAWK 3 yearsBash 4 yearsLinux 8 yearsKubernetes 3 yearsKubernetes Operators 3 yearsDocker 2 yearsIronic 3 yearsPostgreSQL 1 yearMySQL 3 yearsClickhouse 1 yearRedis 1 yearNeo4j 1 yearKafka 1 yearSaltStack 3 yearsChrome CDP 1 yearFuse 1 yearGithub Actions 1 yearBamboo 1 year

Experience

SignalWire  linkedin.com

Jun 2018 to Present

Software packaging expert Remote (side-project)

Software packaging expert (DEB, RPM), working on #1 open-source communications platform in the world on my own free time. Maintenance of build systems that utilize Autotools, Make, CMake. Packaging software for Debian and Redhat based Linux distributions. Maintenance of CI/CD workflows using GitHub Actions. Facilitation of partial migration from Bamboo to GitHub Actions.

  • Build systems (Make, CMake) and distribution of built packages (DEB, RPM)

Mirantis  linkedin.com

Aug 2020 to Dec 2023

Senior Software Developer Remote

Developing and managing Kubernetes operators and ClusterAPI providers (Kubebuilder, Operator SDK, Client-Go) that handle BareMetal server provisioning and life-cycle management (metal3.io/baremetal-operator, dnsmasq-operator, artifacts-controller). Developed iPXE edge controller that bridges the integration gap between Kubernetes and OpenStack Ironic. Developed DHCPv4 Relay in pure Golang tailored specifically to dynamic environments such as Kubernetes clusters. Enhanced system scalability, performance, and robustness through continuous improvements and code reviews and effectively solved BareMetal servers provisioning performance issues in huge Kubernetes clusters that increased the provisioning performance up to 10x. Collaborated closely with system engineers and developers to address complex system requirements. Actively participated in the open source community, contributing to various related projects (Metal3.io, OpenStack).

  • Kubernetes operators for Kubernetes on BareMetal Servers

Internet Invest Ltd.

Jul 2017 to Aug 2020

Software Engineer (Golang) / Team Lead Ukraine, Kyiv

Team leadership, project coordination, and mentoring junior staff. Developing back-end infrastructure-related services using Golang with some front-end: - Fanotify-based file modification monitoring for Linux containers running on the host node. - Repackaging PHP (pre 7.x) packages for simultaneous mod_apache use on Debian. - Custom L7 (and L2/L3) DDoS protection using Nginx, an image captcha server, JS hash challenge, and a distributed netfilter ban list. - Distributed TLS certificate storage using Golang FUSE filesystem and alternative implementation using Nginx NJS. - Oversees the development of an in-house container backup solution that uses file-level snapshots. - WebUI for container backup solution using Gin, Semantic UI, and PostgreSQL. - PoC system level (PID1) containers control using opencontainers/runc and alternative implementation using LXC Golang bindings. - Network hooks for LXC/LXD and Libvirt for advanced networking setups (TC rules, policy routing, netfilter rules, VxLAN, MAC-Spoof protection). - API, WebUI, and CLI for taking website screenshots using CDP and headless Chromium, with perceptual hashing algorithms for change detection and reporting. - JSON-RPC over HTTP framework with in-house validation framework for PHP Symphony-based client integration. - PoC Libvirt control plane using JSON-RPC over HTTP framework. - JSON-RPC over HTTP API for iLO (HPE BMC) access over NAT (additional level of security). - Custom Cgroups monitoring agent and receiver for Linux containers with Clickhouse as time-series storage and dynamic Grafana dashboards. - Linux container management control plane based on JSON-RPC over HTTP, running on container host nodes and communicating with container agent via execv pipes.

  • Team lead, Mentor, Golang developer

Internet Invest Ltd.

May 2016 to Aug 2020

DevOps Engineer Ukraine, Kyiv

BareMetal server, Linux Containers provisioning and maintenance using custom solution and SaltStack leveraging Salt-SSH with security patched SSH server on container side and Salt in Master-Minion mode for BareMetal servers.

  • SaltStack, automation

Internet Invest Ltd.

Apr 2015 to May 2016

System Administrator Ukraine, Kyiv

Administration (including physical setup), provisioning, and monitoring of the network infrastructure and equipment, BareMetal servers, services, and data transport channels using Zabbix and Nagios. Customer consultation and extensive technical support including tailoring Linux Containers based hosting solutions to meet the various customer requirements: managed Nginx, Apache, PHP, MariaDB/MySQL, Redis, Memcached, Sphinx, Elasticsearch, Varnish, and other VPS-related software.

  • Customer support (on-call)

IT Service Group

Jun 2014 to Mar 2015

System Administrator Ukraine, Kyiv

Customer support, Workstation and Server maintenance (Microsoft based solutions).

  • Customer support

Siversk professional lyceum

Jun 2007 to Jun 2014

System Administrator Siversk, Ukraine

Setup and maintenance of Microsoft Windows based workstations, basic intranet infrastructure management.

  • System administration

"Severskoe Televidenie" Ltd.

Jun 2012 to Jan 2014

System Administrator Siversk, Ukraine

Setup and maintenance/administration of FreeBSD and Linux based servers for traffic billing, routing and media sharing.

  • System administration

Education

Ukrainian Engineering and Pedagogical Academy of Bakhmut (Artemivsk)

Dec 2007 to Dec 2013

Master's degree, Telecommunications engineer, teacher

Projects

go-fanotify

Golang fanotify example

Makefile, Go

dhcp-relay

DHCPv4-Relay (opinionated Golang implementation).

Makefile, Go, Dockerfile

baremetal-operator

Bare metal host provisioning integration for Kubernetes

Smarty, Python, Dockerfile, Go, Makefile, Shell

nginx-js-challenge

JS Challenge (like Cloudflare) service that uses nginx auth_request_module.

Makefile, Go

jrpc2

Golang JSON-RPC 2.0 over HTTP Service Library

Go, Makefile

validator

This package provides a framework for writing validations for Go applications.

Go, Makefile

Certificates

CN330: Advanced Kubernetes Security

Mirantis Training
Mar 2023

CN320: Advanced Kubernetes Operations

Mirantis Training
Mar 2023

CN220: Kubernetes Operations

Mirantis Training
Mar 2023

CN230: Kubernetes Native Application Development

Mirantis Training
Mar 2023

CN120: Kubernetes Application Essentials

Mirantis Training
Feb 2023

CN110: Docker Swarm Application Essentials

Mirantis Training
Feb 2023

English Level C2 PROFICIENT

EF SET Certificate
Feb 2023

CN100: Docker Containerization Essentials

Mirantis Training
Feb 2023

Languages

English ProficientUkranian Native SpeakerRussian Native Speaker