Siarhei Krukau

Software developer

Personal profile

I am a 27 years old experienced but still open-minded software developer. Currently, my level is senior to lead, although I don't like titles. I have a strong technical background but I don't skimp on a soft skills as well. I am eager to be challenged in order to grow and improve myself. Imperfection (of everything) is my motivation.

My strengths: I am an INTJ. I learn quickly. I am agile (i.e. I can work with pretty much any stack / technology / methodology you want).

My weaknesses: I am an INTJ. I am a perfectionist. I am selfish and sometimes intolerant to others. I am not willing to concede in some situations.


Feb 2015 – present : EPAM Systems, Inc.

Senior Software Developer / Travel & Hospitality domain

"That guy"

My responsibilities:

  • Supporting everything

Key technologies:

  • Spring 3.x
  • JAX-WS / Apache CXF
  • Pivotal Gemfire
  • RedHat JBoss Fuse
  • Chef
  • Jenkins
  • ... you name it

Jun 2013 – Feb 2015: EPAM Systems, Inc.

Senior Software Developer / Travel & Hospitality domain

Implementing administration & monitoring tool for hotel IT infrastructure upgrade project

My responsibilities:

  • Designing new functionality
  • Implementing REST services
  • Implementing UI screens

Key technologies:

  • Spring 3.x
  • Pivotal Gemfire
  • Angular 1.x

Apr 2012 – Jun 2013: EPAM Systems, Inc.

Software Developer / Travel & Hospitality domain

Working on internal SDK library

My responsibilities:

  • Refactoring existing monolith library into pieces

Key technologies:

  • Spring 2.5.x
  • JAX-WS / Apache CXF
  • MyBatis

Oct 2011 – Apr 2012: EPAM Systems, Inc.

Junior Software Developer / Travel & Hospitality domain

Implementing front-desk application for hotel network.

My responsibilities:

  • Fixing defects
  • Occasionaly implementing new features

Key technologies:

  • Spring 2.5.x
  • JPA / Hibernate
  • JMS / ActiveMQ
  • JAX-WS / Apache CXF
  • GWT, ExtGWT

Jul 2011 – Oct 2011: EPAM Systems, Inc.

Junior Software Developer / SAP domain

Customizing and maintaining SAP-based supplier relationship management system.

My responsibilities:

  • Fixing defects
  • Implementing customizations for various clients
  • Developing ad-hoc extensions for SRM installation

Key technologies:

  • Pure Java 4 stack
  • Beanshell
  • Proprietary frameworks and libraries



Programming languages

  • Java: I pay my bills coding on Java since 2011.
  • Kotlin: My secret love since 2015.
  • Groovy: It's hard for me to use it now, after Kotlin.
  • JavaScript: I don't mind coding on JS, especially on ES 2016, however, I am not very proficient in backend JS (Node.js).
  • Ruby: I'm not very fluent in Ruby, just using it for Chef.
  • Python: I've never read PEP 8, but I can write simple scripts in Python to automate routine.
  • Go: Tried it once in a personal project. Didn't like. Ironically, this blog and CV runs on Hugo, site generator written in Go.
  • Bash: I can do pretty much everything on Bash with Google.

Libraries and frameworks

  • Spring: This is the framework I'm mostly working with. Since 2012 I've touched most of it's modules, like spring-data, spring-jms, spring-orm and so on.
  • Spring boot: I like Spring boot and I'm trying to start new projects on it since 2015.
  • JPA / Hibernate: I've used both somewhere in 2012-2014 and didn't have much fun.
  • MyBatis: I've completed one small production project using MyBatis.
  • Apache Camel: We're using Camel widely on my current work.
  • TestNG: I prefer TestNG over JUnit.


  • Oracle: Using it since 2011 in production systems.
  • MySQL: Using it since 2010 in personal projects.
  • PostgreSQL: Using it since 2016 in personal projects.
  • MongoDB: I've accomplished the very first 10gen's (now MongoDB, Inc.) cources (M101: MongoDB for Developers and M102: MongoDB for DBAs) in 2012, since that time I've used MongoDB in various pet projects and in non-critical work projects.
  • Pivotal Gemfire: You may tell me it's not a database, but a cache. But we're using it as a primary data source in a couple of projects I deal with.


  • HTML: I know the tags!
  • CSS: I know the theory: cascading, specificity, media queries and so on. The problem is: I am really bad at web design, never managed to create a good-looking page.
  • LESS: I prefer LESS over CSS and SASS.
  • Twitter Bootstrap: I've been using it in every front-end project I work on, it's a real resque for me.
  • Angular 1.x: I've completed one pretty big production project on Angular 1.x.
  • Angular 4.x: I know it's concepts and completed several hello-worlds.
  • jQuery: Well, everybody knows jQuery, right?

Build tools

  • Gradle: I am a big fan of Gradle and I'm trying to use it anywhere it can be used since 2013. Check out my Gradle minique!
  • Ant: I've used Ant several times few years ago.
  • Maven: Maven is the primary build tool on my current work. However I don't like it because Gradle is obviously better.
  • Webpack: I've configured several front-end builds with NPM and Webpack using Google.

Continious Integration

  • Jenkins: I'm pretty proficient with Jenkins Pipelines. I'm using them on my current work widely. I also have some experience in Jenkins administration and writing plugins.
  • Travis: I'm using Travis for my Github projects widely. Even this blog and CV is deployed using it.

DevOps tools

  • Docker: I have some Docker experience.
  • Vagrant: I'm using Vagrant as an auxiliary tool when testing Ansible's playbooks and Chef's cookbooks.
  • Ansible: I love Ansible! I use it to configure all the computers I own (even the laptop).
  • Chef: Currently I'm using Chef on my work to automate deployments.


  • Linux: Currently, Manjaro Linux is my home distro, I'm using it for about two years now. Before that I've used Linux Mint (also for two years) and Kubuntu (for five years). I am a fan of KDE / Plasma DE. I have experience with server Linux, such as Ubuntu and CentOS, as well. So, I'm pretty comfortable with Linux.
  • Windows: Everybody is able to work on Windows, for sure!
  • macOS: Not my kind of OS, really. I can use, but, you know...


  • Git: I think I'm pretty good at it. I am #4 contributor to the "Pro Git 2nd Edition" russian translation (although it is abandoned now) and I've read the whole book several times. I also have some experience with JGit.
  • Liquibase: I know how to use this (and similar) tools, though we don't use it on my current work.



Doktor is a Jenkins plugin for automated documentation uploading to Confluence. Doktor supports Markdown and AsciiDoc documentation and can be used in "classic" builds as well as in Pipelines. Doktor is implemented 100% in Kotlin and Gradle (with Kotlin DSL).


Saberlight is a console app to control smart BLE bulbs produced by Chinese company Zengge. Saberlight is written in Golang.


  • Snowboards
  • Longboards
  • Cycling
  • Jogging
  • Vector graphics
  • Trendwatching
  • Science fiction
  • Quantified self
  • Astronomy