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.
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.
Futurice published remote work guidelines
InfoQ Mastering Remote Meetings (PDF, signup needed)
GitLab All Remote Guide (GitLab is fully remote, no-office company with $1Bln evaluation): https://about.gitlab.com/company/culture/all-remote/how-to-work-remote-first/
Morning Brew’s Guide to Living Your Best Quarantined Life https://docs.google.com/document/d/1Yx6JOqkbEX93uLlgnGGNR5l2P13_VOLgAfxut5CT0ms/preview#heading=h.isijnujy785y
Bloomberg — How to stay healthy and sane working from home: https://www.bloomberg.com/news/articles/2020-03-15/how-to-work-from-home-tips-on-staying-healthy-sane-productive
Visual Studio Code: VS Code Live Share
Share terminal sessions: https://tmate.io/
Untangle the microservice mess by using serverless orchestration
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:
There is are lots of approaches to managing software engineers. I want to dispense my view.
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!
Scrum Framework tries to address a lot of this, so I will reuse common concepts from it in this document.
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.
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. …
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.
For example, if we have an application to order a travel package, we need to order everything or nothing:
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.
Camunda is an awesome workflow automation platform which allows you to orchestrate complex microservice interactions and human-oriented actions across different applications and platforms.
Here is a short explanation of what a Cloud Run is
Already got a Google Cloud account? Run Camunda in 5 minutes using 5 lines on the terminal. I`ve used my open source repo https://github.com/wizecore/camunda-demo/ …
See https://github.com/huksley/serverless-java-spring-boot for source code.
Using https://github.com/awslabs/aws-serverless-java-container 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.
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:
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
Here are the slides from the presentation: http://bit.ly/2SzjDSI (English)