There is a lot of hype around ktor: numerous posts on Twitter, Medium, podcasts, and more on how everyone should jump into using it. Let’s take a step back and try to understand the big picture.

Software engineering is a game of tradeoffs: you win in one place but lose…

The room was dark and filled with a beam of light coming from a single window. The air, filled with the smell of old books, felt thick. Each step produced a small distant echo as Doug approached the only thing in the room — the desk and its occupant.


I don’t know how code review is implemented in Google for the changes (f0c7198 and 50307d9) that will be reviewed here. I also can’t see the issue tracker for the particular problem that was being fixed. But since I’m affected by this change, I can only make this a public…

In this post, I’ll introduce you to adam: a kotlin-based replacement for developer-to-android-device interaction.

Most of the current tools for interaction with ADB server use ddmlib: a Java-based library that is supposed to help tool developers.

The following diagram illustrates the flow of interaction:

If we’re talking about a laptop, then leaving it alone for a couple of years would do little damage: your battery will be dead, but you can quickly charge it. Unfortunately, it doesn’t work the same for a musical instrument such as a piano.

In August 2019, I found an…

Hello. It’s currently 2019 and testing open source Android projects is extremely hard. The reason for this is the state of Android Emulator and it’s dependencies.

I am going to focus on the official Android Emulator images provided via the Android SDK

Before Android 26 we had:

  1. x86 images, provided…

Working with any build system is fun and games until you reach a point where almost every single person complains about the performance of builds. As with any problem, it requires tools in order to be solved.

For the past week or so, I’ve tried to understand if it’s possible…

In this chapter, I’ll explain how Marathon test runner is implemented and what are the basic concepts that are used.

For the previous chapter see Chapter 1.

Helicopter view

Marathon test runner is written in Kotlin with extensive use of coroutines. Test runner consists of several Gradle modules. …

So you’ve scaled up your mobile infrastructure to support the ever-growing number of tests for your application, and you think everything will be fast, right?… Wrong! In the next several minutes I’ll teach you why scaling infrastructure doesn’t necessarily lead to faster test execution and how you can address this.

A story of color correcting the TV that started with adjusting some settings with remote, then escalated to doing vector multiplications by hand and ended up with small modifications to the firmware of the TV. Read on if you’re interested in color and embedded Android Linux.

Quick intro to color correction

It doesn’t take much…

Anton Malinskiy

Software engineer & IT conference speaker; Landscape photographer + occasional portraits; Music teacher: piano guitar violin; Bike traveller, gymkhana

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store