In case you were living under the rock, Whim is an award winning app to manage all your travel in the city. It is part of the new Mobility as a service movement and also called “Netflix of transportation”.

Below is my experience of creating, designing, building and launching new subscription in the WhimApp.

With this monthly subscription, Helsinki students can enjoy benefits of Whim combined with public transport and use scooters, city bikes, taxi and rental cars all within one app.

Image for post
Image for post

It was a wild-ride journey through the COVID-19 and I would like to share with you my findings as a Product Owner, responsible for this product. …

Let’s gather all stuff connected to remote and distributed teams working efficiently.


Google Hangouts: Google unlocked enterprise features for all business accounts until July.

Communication Tools

  • Zoom
  • Hangouts
  • Whereby

On meetings

Guidelines and links

Futurice published remote work guidelines

Discussion of,, and other communication tools

InfoQ Mastering Remote Meetings (PDF, signup needed)

Image for post
Image for post
Mastering remote meetings

GitLab All Remote Guide (GitLab is fully remote, no-office company with $1Bln evaluation):

Morning Brew’s Guide to Living Your Best Quarantined Life

Bloomberg — How to stay healthy and sane working from home:

Developer tools and plugins

Visual Studio Code: VS Code Live Share
Share terminal sessions:

Untangle the microservice mess by using serverless orchestration

Image for post
Image for post
Photo by Jason Leung on Unsplash


Have you heard about Camunda and Zeebe? Camunda is a company that does fantastic open-source BPMN engine and ecosystem around it, and also, they created the BPMN engine specifically designed to run cloud and serverless workloads — Zeebe.

2 days ago, they released a Public Beta of Zeebe SaaS called Camunda Cloud.

By using Camunda Cloud, you can create serverless workflows and orchestrate your microservice architecture without running an instance of Camunda BPMN or Zeebe in Docker or Kubernetes.

Here are the examples of the tasks suitable for serverless orchestration:

  • Order…

There is are lots of approaches to managing software engineers. I want to dispense my view.

Image for post
Image for post
Photo by S O C I A L . C U T on Unsplash

Do you see the above meeting room are empty? Why? Because the software engineering team is building a product!

You don’t need to manage engineers. Let them build things!

  • Build and refine the backlog together.
  • Make the priorities clear.
  • Define scope and help estimate
  • Define together and understand the definition of done
  • Help teams self-organize.
  • Make them accountable and reflecting.

Scrum Framework tries to address a lot of this, so I will reuse common concepts from it in this document.

Image for post
Image for post
Scrum framework

Build the backlog

The backlog is the most crucial thing your team has. It should contain all the tasks the team needs to do to build the product. If you are using Scrum, it is a good idea to separate Product backlog (features and stories to be implemented) and Sprint Backlog (development tasks to be done) but keep them linked. …

Here is a short guide on setting up Ubuntu Linux 18.04 to be comfortable, high-performance development environment for everyday use.

This is kind of a summary of things I think important when you have Linux as a primary operating system.

About me — I am developer, architect and Tech Lead and I was using Linux for past 3 years as a primary desktop OS. Here is the latest notes on installing and running Linux Ubuntu.

Core stuff

Partition and installing

Use GPT partition layout. It is more flexible and have a benefit that partition number does not depend on on the order of partitions, i.e. …

Image for post
Image for post

TLDR: Interested in trying right now? Clone my GitHub repo and execute 10 lines to bring it up and running for you!

I was recently interested in running local Kubernetes environment to test and playground new ideas.

There is a lot of guides on the Internet related to running it and they usually involve running minikube locally (I am using Linux).

But what if I would like to create isolated environment for Kubernetes?

Minikube if you invoke it via minikube start by default uses VirtualBox driver and requires root access to set various local Kubernetes settings. …

This is a follow-up blog article on my talk on AWS User Group meetup on June 13, 2019

Take a look at the slides for talk:


For distributed architecture and microservice applications, it is crucial to have some logic defined which allows you to process failures on the application-level.

Image for post
Image for post

For example, if we have an application to order a travel package, we need to order everything or nothing:

  • Order hotel
  • Order flight
  • Order car

If an error happens or if flight or hotel is not available, we don`t want to hold a rent a car order; we need to cancel (also called compensation logic) it on the application level. …

Recently Google Cloud launched a new (beta) service to run serverless container-based applications. This service does not require you to do complex platform-specific packaging. You just need to create a Docker container which follows Cloud Run container contract.

New to Camunda?

Camunda is an awesome workflow automation platform which allows you to orchestrate complex microservice interactions and human-oriented actions across different applications and platforms.

Image for post
Image for post

New to Cloud Run?

Here is a short explanation of what a Cloud Run is

Image for post
Image for post
Google Cloud Run
Introduction to Google Cloud Run

Already got a Google Cloud account? Run Camunda in 5 minutes using 5 lines on the terminal. I`ve used my open source repo

See for source code.

Image for post
Image for post

Using we can create a regular Spring Boot application which can easily be deployed as AWS Lambda. All APIs will be accessible, just like regular running java app, or container.

How about AWS events?

Unfortunately, by default, you can not handle events from other AWS services such as SNS, SQS or schedule requests from CloudWatch (cron-like). To implement it, take a look at the example provided in StreamLambdaHandler::handleRequest

In short, you can convert to regular API call so it will be handled by Spring Controller.

In this example following events are handled:

  • CloudWatch scheduled event
  • SNS Topic message
  • SQS queue message

Source code

Source code and build scripts are available on GitHub:

On October 12, 2018 I gave a talk about using Serverless and AWS Lambdas for server-side rendered web apps and websites, written using ReactJS

Image for post
Image for post

Here are the slides from the presentation: (English)

Video from TechWeeklies

Example Proof of concept project


Ruslan Gainutdinov

Tech Lead & Software engineer with a passion for #DevRel, Serverless, Java, and Javascript.

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