TECHNOLOGIES


Java - This is my primary and favorite langauge. Most projects in which I participated or created are written in it. I consider myself intermediate - experienced Java programmer, as I have used it to create web, desktop and cli applications.



Git - When it comes to version control system, choice is rather obvious now. I have used Git extensively both in my work and personal projects.



Mercurial - I had opportunity to work with Mercurial only in my work



Maven - If we talk about build systems I prefer and have the most experience using Maven. I use it by default in every jvm project.



Spring - Nowadays Spring is most widely used that'why Java Developer should know how to use it but I cannot say that the philosophy of Spring is my favourite



SQL - Most applications, in which I needed to store data in a persistent manner take advantage of relational database. Mostly, I used MySQL and PostgreSQL on a server-side.



Testing - Unit testing in Java with JUnit4,5 using assertion libraries: Hamcrest, AssertJ. Mocha when it comes to TypeScript - Chai as assertion library



JavaScript - I consider myself intermediate JS developer. My minimalist approach, which is to avoid frameworks in favor of small libraries, is constantly helping me to get deeper understanding of the language.



TypeScript - after discovering TypeScript I often prefer using it instead of JavaScript in medium and large project when complexity become an issue.



HTML5/CSS3 - I was learning it from stratch always preferring using pure html and css over ready-made solutions to find out what hides behind the scenes.



Angular - Working with AngularJs, Angular2+ at work and for personal projects. Angular gave me the same feeling as Spring - big framework with lots of dependencies, dependency injection, lots of tools and huge community - It's ok with big projects but in smaller one I started to use Vue.js



Basics of:

- Docker

- Jenkins

- Python