Oleg Elantsev

Writing about software development, cloud computing, and other tech topics.

Featured Projects

Bicycle Tracker

An Android app for tracking bicycle rides with route mapping, statistics, and performance analytics

AndroidJavaC++BoostGradle

WC Finder

A web application for finding public washrooms and toilets worldwide with location-based search and detailed facility information

WebSEOLocation ServicesDatabase

go-pr-watcher

A terminal-based GitHub PR monitoring tool that displays all open pull requests across multiple repositories in a beautiful TUI

GoGitHub APItviewTerminal UI
Reading lists

Articles I like on Software Engineering

This post will contain an interesting reading on software engineering. It will be kept updated. Finding a needle in Haystack: Facebook’s photo storage - https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Beaver.pdf Bigtable: A Distributed Storage System for Structured Data - https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf

November 9, 2025 · 1 min
Unhappy Kubernetes cluster

Unhappy k8s cluster

This is 15 minute fun, quite late for Halloween though. Kubernetes cluster suffering from different failures. If this was a production cluster and I was oncall (btw I am oncall while writing this :-D ), it would be a heart attack to see. Go and make it even more miserable! Delete the workloads, check whats there https://www.elantsev.com/k8s The source code https://github.com/olegelantsev/unhappy-k8s-cluster

November 8, 2025 · 1 min
Android Studio with phone simulator finally running my bicycle app

Revisiting an Old Project — and the Endless Spiral of Dependencies

I wanted to make a simple post about an old project I once worked on. And this one is not the one I intended to make. To write the post, I needed to make a screenshot. To take that screenshot, I had to rebuild the project. This project is rarely touched, and it was originally started with Ant and Eclipse — when there was no Android Studio yet. No surprise the IDE didn’t like the Gradle version 5....

October 13, 2025 · 3 min

Building a Cosmocube game: from 2d to 3d

The hook I wrote a game in C++. Why? That was an application requirement back then. Zeptolab is the company produced famous Cut The Rope, first published in 2010, it has been downloaded more than 600M times. Addictive gameplay attracted not only players, but developers - many candidates applied for a job. Company announced that applicants should build a game on a given topic, e.g. Arkanoid, write it in C++, no frameworks, it should work on Android or iOS....

December 13, 2024 · 3 min
Photo of Arduino LCD as TTY for Linux

Linux TTY on LCD 16x2 screen

Yet another just for fun project. I decided to make use of a small LCD screen from Arduino kit & Raspberry Pi. Inspired by historical teletype access to the computers & also challenges to use low-end tech as working setup (e.g. full day work on Raspberry Pi or Chrome books). Even today terminal is used, mostly by software developers, to run system commands for managing files, writing code, debugging, building apps, managing configs, etc....

December 5, 2024 · 3 min

Building Your First Argo Workflows Pipeline

As a Staff Software Engineer specializing in Site Reliability Engineering (SRE) and pipelines, I’ve found Argo Workflows to be an excellent tool for orchestrating complex, parallel workflows on Kubernetes. In this article, I’ll guide you through creating your first Argo Workflows pipeline, complete with code snippets and explanations. What is Argo Workflows? Argo Workflows is a container-native workflow engine for orchestrating parallel jobs on Kubernetes. It allows you to define complex workflows as a series of steps, each running in its own container....

August 10, 2024 · 3 min

Prometheus queries

High cardinality metrics count({__name__=~".+"}) by (__name__) Very practical to find the amount of timeseries (you need to suspect some). Often span metrics or Kubernetes metrics may surprise, so if suspect any of those try something like count({__name__=~"calls.*|kube.*"}) by (name, job) Topk – largest k elements by sample value topk(k, <metric_expression>) Top 5 CPU usage metrics topk(5, sum(rate(container_cpu_usage_seconds_total[5m])) by (container_name)) This query calculates the rate of CPU usage for each container over the last 5 minutes, sums it up by container_name, and then returns the top 5 containers with the highest CPU usage....

August 7, 2024 · 2 min

Comparison of Telemetry Instrumentation: New Relic vs. OpenTelemetry

Introduction to Telemetry Instrumentation Telemetry instrumentation is the process of collecting, transmitting, and analyzing data from software applications to monitor their performance and behavior. This data, often referred to as telemetry data, includes metrics, logs, and traces that help developers and operations teams understand how applications are performing and identify any issues that may arise. Effective telemetry instrumentation allows for proactive monitoring, faster troubleshooting, and improved system reliability. It is a crucial component in modern software development and operations, especially in environments that leverage microservices and distributed systems....

July 20, 2024 · 6 min

How to pass secret as build argument to Docker build in DroneCI

When it comes to building and deploying software, keeping secrets safe is crucial. I use DroneCI as a CI solution and sometimes need to pass secrets as build arguments to Docker build command in ECR DroneCI plugin. Documentation of ECR plugin (at least when I looked it up) didn’t mention build_args_from_env parameter. This parameter lets you pass secrets from environment variables as build arguments. What is build_args_from_env? Here’s how it works:...

April 15, 2024 · 2 min
READ COMMITTED transaction isolation level

Transaction isolation in PostgreSQL

Recently I was reading “Designing Data-Intensive Applications” book. It covers lots of topics related to creation of reliable, scalable and maintainable data systems and one of the chapter covers a concept of transactions - its meaning, use cases, levels of isolation and reasons why application developers should choose the right one. While many books and articles cover transaction isolation level with pure SQL examples for database users, I decided to go a bit deeper and check how a theory gets connected with actual implementation....

October 2, 2023 · 7 min