Denis Rechkunov

Principal Software Engineer

Berlin, Germany

Blog: rdner.de
GitHub: rdner
Email: denis@rdner.de

I'm a software engineer with more than a decade of experience, ranging from binary protocols and communication with devices to high-scale front-end apps and back-end services. Although I worked on user interfaces in the past, I found my passion in building complex distributed systems.

Throughout my career I designed, built and led a variety of projects that turned out to be successful. In my work I value evidence-based decisions and attention to detail. I always prioritize user experience and prefer pragmatic solutions with a focus on maintainability, performance and security.

Experience

Elastic

Germany, Distributed / Remote

Principal Software Engineer

Present

Contributing to the OTel future of Beats (Go, Open Telemetry).

Senior Software Engineer

Working on Elastic Agent and Beats in the Ingest Data Collection team with a main focus on file ingestion (Go, Elasticsearch, Kibana, ESS).

Among my notable contributions are:

  • Introduced the golangci linter to our repositories (initial configuration, team alignment on all rules, guidelines, etc).
  • Created the Filebeat registry analyser tool that enabled our support to easily diagnose known issues.
  • Added an automated migration flow from "log" input to "filestream", also known as the "take over" mode, that made it easier for our customers to migrate from the deprecated "log" input type.
  • Added a new file identification mechanism based on fingerprinting and wrote a blog post about it. This solved a lot of data loss and data duplication cases for our customers.
  • Actively participated in benchmarking and performance optimizations.
  • Drove the effort of making the Elastic Agent CI stable and deterministic.
  • Drove the migration to Wolfi-based Docker images in Beats and Elastic Agent.

Contiamo

Berlin, Germany / Remote

Senior Software Engineer

Worked on the platform team, mainly with Go, Kubernetes and PostgreSQL.

My team was responsible for building services that provide:

  • Data/Asset Catalog for large organizations to track their data landscape: search, tags, metadata, links, glossary etc.
  • IdP — identity provider for the whole platform: authentication, authorisation, user management, permission management.
  • Data Store — a service that enables uploading data in formats like CSV and integrating it in relational database models, so users are able to combine them with other relational databases using our Spark-based query engine.
  • PGQL — a service that allows access to any SQL-based data source via a GraphQL endpoint.
  • Queue and job system.
  • Notification system.
  • Open API spec‐first code generator that we've built our workflow around.

Zalando

Berlin, Germany

Software Engineer

Initially worked on the RESTful API that powers the company's mobile apps (Scala, Play Framework).

Then moved to another team and worked on the API gateway for external partners which is an internally used fork of Skipper (Go). This gateway solved authorisation, throttling, routing, circuit breakers and other common problems that usually occur on the ingress level.

Amazon Web Services

Berlin, Germany

Software Engineer

First worked on a set of framework agnostic components. Adopting the idea of web‐components we created our own runtime library for using components with several frameworks like Angular, React and GWT. It was used for building AWS consoles using consistent and design guidelines‐compliant UI‐components.

Then worked on the static website deployment flow in AWS (TypeScript/React). This enabled AWS customers to easily deploy a static web-site seamlessly using underlying AWS services like Route 53, S3 and CloudFront.

After that switched to some back-end work and helped to create a platform for running AWS consoles (Java, Spring). This solved common integration issues faced by internal developers when adding new services to the AWS family.

2GIS

Novosibirsk, Russia

Lead Software Engineer

Leading front-end development on the Flamp team:

  • Adapting the web-component framework (Catberry.js) to the team's needs.
  • Hiring and mentoring new team members.
  • Presenting team achievements.

Software Engineer

Working as a part of the Flamp team (review service). I was responsible for building a brand new version of the main web‐site which was supposed to become an isomorphic web‐application. This means the web-app would consist of 2 parts: a back-end that renders HTML for search crawlers and a front-end that runs a single page application in the browser without reloading the page – both parts are running the same JavaScript code and use the same service as a source of data. For this purpose I created Catberry.js – a framework for creating isomorphic apps using node.js which was eventually open-sourced on GitHub and got some attention from the JavaScript community. One feature to stand out was progressive rendering versus a common buffered rendering approach.

Software Engineer

Working as a .NET‐developer building a high-load service for processing and modifying streams of data. The service was a part of the integration bus system between dozens of internal services/products.

Enterra

Barnaul, Russia

Software Engineer

Worked in a team building custom contract-based projects (.NET, node.js).

Among them:

  • Push‐notification service that notifies social network users about the beginning of a tournament (node.js, Socket.io).
  • Administration console for a distributed gambling system (bet on sport events, etc). It allowed users to view detailed analytics about the bets and to control the system remotely (ASP.net).
  • Web‐application for the text‐translation workflow. It was used as a tool for managing, assigning and solving tasks among professional translators (Ext JS 4).

Intel

Novosibirsk, Russia

Software Engineer Intern

My assignment was to build a plugin for Microsoft Visual Studio 2010 that would visualize results produced by Intel Static Security Analyser. I proposed a concept of the GUI for the tool, created a UI component for iteration‐based loading and parsing of the large amount of XML data (LINQ‐To‐XML) and built the plugin itself using WPF.

FISSA Electronics

Barnaul, Russia

Software Engineer

Worked as a lead developer of a WebSCADA system that made it possible to remotely monitor and control water pumps and heating systems (any type of a system in theory).

The system worked as a subscription‐based web‐app. The subscription included necessary devices and sensors for the customer.

I was responsible for the initial architecture and communication protocols and built:

  • back-end service for real‐time data visualization (node.js, Socket.io).
  • data visualization dashboard UI.
  • back-end service for the management console that calculates analytics and generates reports (PHP).
  • management console UI (ExtJS).

Later I used the results of this work as my diploma thesis.

Intel

Novosibirsk, Russia

Software Engineer Intern

My assignment was to research the influence of a managed runtime environment (MRTE) on the Intel Math Kernel Library performance using JVM and CLR (.NET) as examples.

I've created a set of performance benchmarks for FFT‐related functions from MKL and proposed a validation algorithm for MKL FFT that allows us to simply compare library‐produced results with the expected correct answer of the transformation.

Education

Polzunov Altai State Technical University

Barnaul, Russia

Engineer at Specialty Software Development and Automated Systems

Diploma's thesis: "Developing a SCADA system using node.js platform".

Designing and developing a supervisory control and data acquisition system as a web-application using node.js platform, Knockout.js and Ext JS framework.

Courses

Coursera

Functional Programming Principles in Scala

Intel

Intel Parallel Programming Professional

Projects

Conflict-Free Replicated Data Types

Last-Writer-Wins State-based Directional Graph implementation created for educational purposes.

Quake 3 Server Bot for Telegram

The purpose of this bot is to make it easier for Quake 3 players to know what's happening on the server.

X.509 Brute Force

CLI tool for brute-forcing private keys with DEK headers. Was created for a Hack The Box challenge and used only for educational purposes.

Catberry.js

Catberry is an isomorphic framework for building universal front-end apps using components, Flux architecture and progressive rendering.

There are lots of related repositories in the organization on Github.