Using Gradle Kotlin DSL and bundled Gradle Maven Publish plugin

This is a follow-up on a request I got in a previous similar write-up I did some time ago: Publishing a Kotlin library to your Bintray repo using Gradle Kotlin DSL

I wanted to explore Kotlin Multiplatform a little, and was also curious about publishing the binaries — “it can’t be as simple as publishing a single jar for the JVM platform”, I thought, and was partially right. It can be daunting at the beginning, but once you get a hang of it and understand the basics it’s pretty simple…


Photo by Henk Mul on Unsplash

If you’re working on an OSS project you will most likely come to a point where you will want to publish your artifacts to a publicly accessible repository (A central Maven repository, for example, if you’re working on a java-based project.) For someone who has never published an artifact to be available to others the process can be somewhat unclear and scarce documentation makes things even more daunting. And if you’re using gradle with kotlin dsl build scripts then chances are documentation will be even sparser.

I am a tester and have been coding for a living for the past…


Photo by Glenn Carstens-Peters on Unsplash

For someone who has never posted on Medium options to display code— apart from usual code blocks — might not be that obvious. It gets even worse when you see copy-pastes of IDE screenshots.


Photo by David Rangel on Unsplash

Recently I had to reinstall my main IDE app — IntelliJ Idea — and I usually take some time to tweak the apps after a fresh install, this was no exception since I spend most of my work day in the IDE.

I’m not going to divulge into discussions about what an IntelliJ IDEA is, if you’re reading this — chances are very high that you’re already familiar with this IDE. Otherwise just visit JetBrains website for more information. Nor will I argue for the benefits of using IntelliJ instead of any other IDE for java development — I think…


Recently I needed to deserialize Kotlin sealed class into a CSV. Let’s look at how this can be done.

According to official Kotlin reference guide for Sealed Classes:

Sealed classes are used for representing restricted class hierarchies, when a value can have one of the types from a limited set, but cannot have any other type. …


Photo by Debby Hudson on Unsplash

Following my previous article: The Builder pattern in Java, and since lately I’m trying to write Kotlin and avoid Java as much as possible (I don’t have any strong opinions against Java per se. It was in fact my first programming language, I just like the expressiveness of Kotlin so much more) I wanted to see if and how Kotlin comes in handy in this case.

To briefly recap, the Builder pattern gives more flexibility when it comes to constructing complex objects, greatly improves readability of code (something I always strive for), supports immutability of classes and scales pretty well…


Photo by Todd Quackenbush on Unsplash

Yet another “Builder pattern article”? Not quite so. At least half of the explanations and tutorials on the design patters, and the Builder pattern itself, do not cover the underlying problem that this or that pattern is aiming to solve. As a self-taught programmer I am always trying to understand first why I’m doing something, rather than how, and nowadays people are more focused on how’s rather than why’s, which often leads to misunderstanding the core problem and as a consequence — incorrect solution.

The problem

In OOP more often than not we have classes holding some data that we are setting…


This is my first post in Medium. I’ve promised myself for many years to start writing and I think the time has finally come. Please bear with me :)

Kotlin 1.3 is closing in and with it a number of improvements and new features. Let’s see what will the next release of our beloved language bring.

Stable Coroutines

Coroutines provide a powerful paradigm to design asynchronous, non-blocking programs. Essentially coroutines are lightweight threads allowing for asynchronous (non-blocking) programming.

The coroutine API appeared in 1.1 and has been in experimental state since then. However, JetBrains are finally releasing the coroutines API and from…

Sergii Prodan

Searching for the answer to the Ultimate Question by night, tester by calling, serendipitously became a developer by day… Automating all things 24x7.

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