Functional kotlin part 1: safe calls

For the seasoned Java developer it's very easy to switch to kotlin. Even more, thanks to the great effort of JetBrains team for java interop, there is no need to wait for the greenfield project to start to write kotlin code. You can start koding straight away by either implementing new functionality in kotlin or converting existing classes into the new language by employing Intellj Idea automagic converter

This is a first of this series of posts unioned by tag #kotlin-showoff

Read more

5 Years In UK

Five years ago I started one more journey when I landed for the first time at the Heathrow Airport from Saint-Petersburg. As expected, many things have changed. Since it's quite a date I want to reflect on the life.

Read more

Presentation – GCP APIs with kotlin

I was invited for the talk as part of kotlin/everywhere at GDG Cloud London meetup on June 8th 2019. Unlike previous talks in this one I focused on the live coding part after brief intro into the language.

The demo project I prepared is a web site allowing user to upload pictures into GCP Storage, automatically annotate content using Vision API, synthesise voice which describes content of the image.

Read more

Dynamically typed languages are selling snake oil

I truly believe they are

I hear the same statements and misunderstandings over and over again from people who like dynamically typed languages. Obliviously, that spikes a lot of endless conversations and fights between two camps.

Generally, I'm avoiding conversations about static vs dynamic typing but every once in the while I drifted into that and hear the same statements, all the time. Often both sides just aren't able to listen to each other and thus conversation end up in the dead end.

Read more

Update: PronounceMe

It's been 3 months since I announced PronounceMe project I was working on at the beginning of 2019.

The initial approach was simple - build and run the MVP, see if it gets some organic traction. MVP included:

  • Written expectations and desirable figures
  • Generator engine - core which renders videos
  • Endless data source - video production process should be never stopped
  • Basic internal analytics for metrics I focus on
  • Autonomous deployed a system which restarts itself if something breaks

Read more

Backup time: bitbucket backup script

Git is decentralised version control system but let's face it - most likely we use single remote repository. Most likely it's github or bitbucket.

Some people already have learnt the hard way that backups are necessary even for the thing we believe will never break, because, you know, nothing more permanent than temporary.

Recently I was reviewing my backups of important services and noticed that I don't really have a repeatable automated way to archive repositories on Bitbucket. Scaring myself of it I immediately rushed to write a script which does so.

So, requirements for the bitbucket backup script:

  • Must work on Linux(or may be even macos) without any extra dependencies. It must work using only bash + git + tar
  • Created archives should be bz2ipped
  • Backup script must not have write access to the repositories
  • It must include all repositories/teams I was contributing to

Read more

Checklist for the new contract/job

Interviews for the new contract or job aren't easy thing to do. Many conversations about technology, business requirements, team work, responsibilities are going on in very short period of time. Often it's easy to forget about secondary questions which are still important but don't affect much final decisions

Since I'm very passion about what I'll be doing I personally often forget to ask end customer about that.

Read more

New project: PronounceMe

I'm a big believer in the power of API Mesh and automation at scale. In December 2018, I got an idea of the project for potential passive income I started to work on in early January 2019

The Problem

For me, English is a second language. Although I read in English since 14 and speak since 20, there is a long way to go. As for Eastern, the pronunciation is incredibly challenging, especially while living in the Great Britan. There are 1 billion people for who English is not the first language.

Read more

Ubuntu 18.10 on Macbook Pro 2018

Nah, it's not a joke

Unfortunately, I was forced to use MBP at work. It's easy to imagine how exciting it was for someone who been using Linux happily for the last 12 years. I don't mind that many people are using it and think they're happy and somehow productive but I do take it personally when the operating system or hardware manufacturer significantly disrupt my productive habits and enforces behaviour which slows me down without giving anything back in return

Being openminded I was trying to use it for a few days, I even promised that won't yell in the office annoying my colleagues(but broke promise after few minutes)

Eventually, after 4 days I decided to install the fresh Ubuntu 18.10 instead of this inadequate but nice looking OS and get the classic keyboard with all keys. One might be surprised but I heavily use F-keys and not only for the software development. I see zero reasons why would I add additional keystrokes making typing process more like playing the piano to achieve something I don't need.

TR;DR;

Don't waste your time installing Ubuntu on MBP 2018, at least anytime soon

But if you have some time...

Read more

Kotlin Presentation – GDG Reading Meetup @ Spaces, Reading 21 Feb 2019

Just returned from meetup where I had a talk about kotlin language - "Why Kotlin? Why now?"

The talk took place in Spaces, Reading on 21st of February 2019 and was organised by Google Developer Group Reading, namely by Chris Guest and his team.
In this talk, I highlighted reasons for learning one more language, guided through most noticeable features. In the second part, we had a live demo - kwitter REST web server.

I found people there were very friendly, it feels like they know each other for a long time. Really nice atmosphere and good vibes!

Read more