Bright Inventions

Redshift Materialized Views

It is often convenient to create a view upon your normalized schema to join and aggregate the data, especially when it requires a complicated query.

How to publish a library to a Maven repository with the maven-publish plugin

A seasoned developer now and then creates a piece of code that he or she would like to reuse in a different project. When such time comes it is useful to know how to publish a library so that it can easily be incorporated into a different project. In this post I will describe how to publish a Kotlin library to JCenter with maven-publish and com.jfrog.bintray Gradle plugins.

Side effects of transferring iOS application

When the time you are selling your long-developed application comes, or you are about to take over an app, you probably do not bother about the transition process. Although Apple has described the steps in details, you should consider potential consequences before starting the transition.


Not everyone is an extrovert, and for sure not every programmer is, but companies are created by teams, and it is the team that takes the greatest responsibility for running the company effectively. If team members do not collaborate, there is very little chance your business will succeed.

Comparison sorting part 1

Sorting data is one of the most important tasks that computers have been doing since they were invented. Over those years developers have found many ways of doing it.

Use ShouldKO for better assertion messages

Most of us write tests these days. Whether they are unit, integration, end-to-end or performance tests once written we often do not go back to them until they fail. It is thus vital to have a clear assertion message when a test fails.

My motives for MVVM + FlowControllers path

There are many different approaches to building an iOS application. MVC, MVP, MVVM, VIPER, Redux... And surely, you can name many others. I've been writing iOS apps for some time now, and I have noticed that MVVM + FlowControllers approach works pretty well for me. In this post I'd like to focus on "WHY?" I use it over other approaches, "HOW?" I use it in my apps.

Multi tenancy task scheduler

Last time I showed how to extend Spring default request handler adapter so that we are able to schedule or reject incoming requests. The goal of the TenantTaskCoordinator is to: queue requests for processing limit the maximum number of concurrently processed requests reject requests after the maximum queue size is reached interrupt processing of a request upon an upstream subscription disposal

Testing Android ViewModels

In my previous post I described how to implement injectable Android view models using Dagger and ViewModel library from Android Architecture Components. In this post I will show a simple way to unit test the view model created then. You can find the full code in the same repository as previously on GitHub.