Denis Rechkunov

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

My experience is quite diverse: it goes from binary protocols and communication with devices to back-end services and big front-end apps. Although I worked on user interfaces in the past, I found my passion in building complex distributed systems.

During my career I designed, built and led a variety of projects that turned out to be successful. In my working environment I value evidence-based decisions, attention to detail, personal responsibility and ownership. I always prioritise user experience and prefer pragmatic solutions with a focus on maintainability, performance and security.

Experience

Elastic

Germany, Distributed / Remote

Senior Software Engineer

Present

Working on Elastic Agent and Beats in the Ingest Data Collection team.

Contiamo

Berlin, Germany / Remote

Senior Software Engineer

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

My team was responsible for building services that provide:

  • Data/Asset Catalog for large organisations 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 to access 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 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/Golang). 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 guideline‐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 seemlessly 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

Working as a lead developer on the Flamp front-end team.

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 beginning of a tournament (node.js, Socket.io).
  • Administration console for a distributed gambling system (bet on sport events, etc). It allowed 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 visualise 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 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 visualisation (node.js, Socket.io).
  • data visualisation dashboard UI.
  • back-end service for the management console that calculates analytics and generates reports (PHP).
  • management console UI (ExtJS).

Later I used 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 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 organisation on Github