Image for post
Image for post


Imagine a pretty common use case when we have a static web site and we decided to add some computation logic to it. For example a form to submit questions, leave feedback, subscribe to emails etc.

This is a pretty trivial logic and having a dedicated server to handle such requests looks not effective.
We can use Function as a Service for this, for example AWS Lambda.

By default Lambda function will be invoked synchronously and some requests will require a cold start. We can invoke our Lambda asynchronously so that our users don’t wait until Lambda is started.

Source code of ready solution is available here. It’s working Lambda function. I will touch it partially below. …

Image for post
Image for post

Quite often I see a confusion of freelancing term and have to clarify it many times. We try to find the way to stop repeating the same.
This is what this post is about — trying to explain what freelancing is once and for all.

From Wikipedia:
A freelancer or freelance worker, is a term commonly used for a person who is self-employed and is not necessarily committed to a particular employer long-term.

Ideally just reading this sentence from Wikipedia is enough to close this question but people don’t like it for some reason (otherwise I wouldn’t explain it many times). …

Image for post
Image for post

Often I hear teams saying they use customized Agile methodology. But when I dive deeper I see there is no understanding of what problems one methodology solves effectively, and what problems they actually have (i.e. they use a solution of not existing problem).

Agile is buzz word, so people think they have to say they use it. They cannot map their business need to something clear, this is where “customized” word helps.

I’m sure you can list many fun examples this “customized” Agile leads to. Some of mine are the following:

  • Having strict deadlines and fixed requirements but trying to do Scrum sprints and saying everybody we use Scrum (“customized” of course). …

Image for post
Image for post

Этот пост описывает процесс переезда в Германию. Почему я решил уехать из России и переехать именно в Германию описано здесь.

Здесь я постараюсь собрать воедино информацию из разных источников и добавить свой практический опыт.

Какие визы существуют?

Существуют 2 типа виз в Германию — шенгенская и национальная. Шенгенская подразумевает туризм и короткое обучение — в любом случае этот тип визы нам не интересен.
Национальная виза бывает на поиск работы, на работу, на воссоединение с семьей.
Бывают еще еврейские миграции, поздние переселенцы, обучение и прочее. Но это нам не интересно и я не буду их здесь затрагивать. …

Image for post
Image for post

Этот пост — превью серии постов о переезде. Смысл его — описать мотивационную часть переезда именно в Германию.

Процесс переезда в Германию описан в следующем посте.

Почему я решил переехать?

Я не буду затрагивать политическую сторону вопроса и по касательной пройду по экономической стороне.

IT сфера в России находится в плохой позиции. Все крупные игроки мирового рынка ушли из страны, оставив только продажников. Единственное исключение — это азиатские игроки вроде Samsung и Huawei.

Тендеры и “цифровая экономика” создали много очень интересных проектов внутри страны. Но распильный бекграунд подразумевает большое количество неквалифицированных работников, не делающих ничего. Это как правило позиции уровня менеджер и выше. …

The title is provocative and doesn’t represent a reality but it’s very close to a search criteria I personally use when searching for a new company I’m going to join.

“Best” can mean financial, organisational or social characteristics of the company, ideally a combination of all of them in a proportion that is the most comfortable for you.

Enough of theory. Let’s move to practice.

Preview | My job in Berlin

I moved to Berlin one day and started working for one company that is famous locally. It looked good from perspective of all 3 characteristics that gave me a feeling of comfort.

Quickly after starting I had to leave the company. I was shocked how that is possible to make business in such a way. Market position is not mapped with real value, with a possibility to produce or sells services, instead it’s based on noise created in a public (ratings, reviews, magazines etc.). …

Spring finally released Reactive support. Details are covered in this official doc.
Now there are 2 ways to define your “reactive” REST endpoint — traditional annotation based (Controller/RestController) and functional one.
Official doc contains example of annotation based approach. Also there are tons of copy paste examples that can be easily found after quick googling.
But I couldn’t find any example of functional definition. So I’ve played with Spring WebFlux a little and am sharing an example in this post. Hopefully that will save your time.

The only thing we need is to define a bean for RouterFunction. Spring Boot and WebFlux will do everything else.

While opening “http://localhost:8080/hello” URL in a browser we will see “Hello World” message.

Source code is available here. Feel free to play with it.


All the following is written assuming the reader has an understanding of what is OSGI and so base terms are not clarified here. The main point of the post is to show limitations of Eclipse Equinox implementation of Event Admin service.


OSGI platform support various services. We will touch one of them in the post.
If you are going to use Observer (i.e. publish/subscribe) pattern in your project based on OSGI there is no need to implement event handling system from scratch yourself or use some sophisticated 3rd party solutions. OSGI provides us with Event Admin service that contains all required functional.
There are only 2 points you should care — implement your event listener and send actual event. …


Nickolay Laptev

Software developer and architect. Writing about software world.

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