Skip to main content


2015 conference talks

The past 2015 has been very eventful year for me on both professional and private plan. I got married, moved to Sweden, started working for Klarna and did a lot of talks on events around Europe, here are the recordings and summaries of them JPrime 2015: the core libraries you always wanted It was a great community event organized by BGJUG. I also got a chance to meet up with some of the friends there. One big highlight of the conf for me was beeing able to meet Bozho, one of the top contributors on StackOveflow. We even got a selfie but after an extensive search I am unable to find it. The team is preparing next year's event and they had few smaller events in the meantime like JProffesionals. In any case here is my talk on goodies from Guava:
Voxxed days Belgrade 2015: Microservice and distributed systems decoupling patterns A first-time event for the Heap Space community and the best Voxxed event I have been( probably best of them all). Great content, awesome speakers…
Recent posts

JFokus 2016 : Java Awesomeness in the Heart of Scandinavia

Originally published on Voxxed After watching many sessions online, this year I was able to attend Jfokus in person for the first time. This was the 10th edition of the event, bringing over 1800 attendees. One other thing to note is that the conference was sold out 2 weeks in advance, which as JFokus main organiser Mattias Karlsson commented, "hasn't happened in several years". This is testament that the Java community is still alive and kicking after all this time.

Amusement park fair party As a prequel to the main conference, there was a JFokus VM Tech Summit chaired by my Klarna colleague Markus Lagergren. Unfortunately, I didn't got visit this part of the event but Simon Ritter has a great write up on the Azul blog. The same day university sessions with 3 hour presentations on topics ranging from Mob Programming to TinkerForge and RXJava. The conference day started off wi…

HttpClient 4.x Timeout

HttpClient is one of the most versatile Java libraries. Unfortunately, it comes with a lot of configuration options that may be way too cryptic or difficult. While the API for 4.x series has been significantly improved there are still some sharp edges.

The deprecated or 3.x way of setting the timeout. This is done using params. Note that this is still 4.x code but a deprecated one.
DefaultHttpClient httpClient = ...; HttpParams httpParams = httpClient.getParams(); httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 1000L); httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, 1000L); httpParams.setParameter(ClientPNames.CONN_MANAGER_TIMEOUT, 1000L); Now the part httpClient.getParams() is deprecated since obviously this is a nasty API. You need to keep track of parameters with Enums/constants and their type as well.

The right 4.x way aka the builder way
HttpClient 4 is full of builder for everything. While I often love the Builder patterns in some cases the testi…

JavaDay 2014 a leap forward

Java Day is an event that organizes for the past 5 years. From the small group of enthusiastic presenters in EU-info center in Skopje to a full 7h filled with lectures at a cinema hall JavaDay has grown to be one of the leading technical events in the area.

What has changed over the years and what the future holds We started out as a small event with only local speakers in 2009 happening each year since then. In 2013, we had 1 person outside of Macedonia. The need for diversity was becoming more apparent. 2014 was the year we went fully international with 6 speakers coming from Switzerland, Serbia, and Bulgaria. We had participants in the audience from all the neighboring countries.
The Bulgarian JUG presence was a great addition and an awesome connection between our JUGS.

The keynote 
Corsin Decurtins, CTO of Netcetera gave an awesome talk on "how to become a great developer".
To quote the abstract:
At the core, the job of a software developer is and has always been t…

A New Try-with-resources Improvement in JDK 9

The JEP 213 - Milling Project Coin is a follow up to the Project Coin additions to Java 7. Note, as the JEP states, this isn't a Project Coin 2.0. It's more of an attempt at smoothing the "rough edges" that came along with these additions. Just as a reminder - with the original Project Coin, among other things, we got:
Strings in switchBinary integral literals and underscores in numeric literalsMulti-catch and more precise rethrowImproved type inference for generic instance creation (diamond)Try-with-resources statementSimplified varargs method invocation Try with resources has been a great simplification, especially when working with I/O code. The addition in JDK 9 is an improvement of the standard try-with-resources way of writing code. Previously in Java 7 and 8 we had;
BufferedReader reader = new BufferedReader(new InputStreamReader(; // Original try-with-resources statement from JDK 7 or 8 try (BufferedReader r1 = reader) { // use buffered reader …

Thread Local Storage in Java

This post is part of the JavaAdventCalendar and is licensed under the Creative Commons 3.0 Attribution license. If you like it, please spread the word by sharing, Tweeting, FB, G+, etc!      
It was also republished under

One of the rarely known features in Java among developers is Thread-local storage. The idea is simple, and the need for it comes in  scenarios where we need data that is, well, local for the thread. For example, if we have two threads that refer to the same global variable but we want them to have separate values independently initialized of each other.
Most major programming languages have implementations of the concept. For example, C++11 has the thread local keyword, and Ruby has chosen an API approach.
Java has also an implementation of the concept with  java.lang.ThreadLocal<T> and with subclass java.lang.InheritableThreadLocal<T> since version 1.2, so nothing new and shiny here. Let…

How to Not Hate JavaScript: Tips from the Frontline

This article was originally published on voxxed under,

In my work assisting teams with JavaScript related problems, I’ve noticed some common issues. If you're experiencing frustrations with the language too, this article might be of some assistance. Disclaimer: a few of my tips might be obvious to some of you, but hopefully you’ll find at least some useful nuggets of information here! These pointers are especially useful when dealing with enterprise applications and CMS solutions. This is where we have our code, the CMS code, the code from that team nobody wants to mention...and, of course, all of them are loaded asynchronously.
The Debugger Statement
This is one of the most underused features when dealing with JavaScript, especially since it’s supported by the majority of browsers. The debugger statement was part of the first edition of ECMA Script so it's been here for quite some time.


Java2Days 2014: From JavaSpaces, JINI and GigaSpaces to SpringBoot, Akka – reactive and microservice pitfalls

This my 5-th year in a row where together with jugmk attend Java2days, a conference in Sofia, Bulgaria. While not so obvious from the name it is a 2-day java conference and currently the biggest one near us that we can take a bus to go to.
This year I had a talk titled "From JavaSpaces, JINI and GigaSpaces to SpringBoot, Akka – reactive and microservice pitfalls."
or buzz words and hate words all in one.

About the topic 
My talk this year was about microservices even though it had a long title with lots of strange words it was more of a concepts talk.
I gave a basic introduction into what reactive programming means for different people, the reactive manifesto and of course Microsoft Excel.
Next part was to define what microservies are and what they can be for different organization.
The Unix aspect of microservices had to be covered so I did just that.

My goal with the talks was not really to compare frameworks for this or that, but I just gave a short overview of what ideas…

Virtual Java User Group - simple concept with quality content

Virtual JUG is a simple concept based on the idea to organize a group that would generate quality content.
It is simpler to get technical leaders from around the world to present online and there are no travel cost concerns.  The intent is not to replace local JUG's but rather increase their value and also represent a sort of global JUG. Additionally it enables developers without an access to a local jug with a means to connect with many developers around the world.

Live sessions are streamed online and as chat ##virtualJUG on Freenode is used. But you don't have to trust my word for the quality of the content, here is a list of the past sessions: 
"Design is a Process, not a Document" by Trisha Gee"Drive by Contributions"­ A GitHub session by Brent Beer and Matthew McCullough"Don't be that guy! Developer Security Awareness" by Markus Eisele"Getting Started with Java EE 7" by Arun Gupta"How To Do Kick-Ass Software Development&quo…

*nix for developers

Unix and Linux in their various forms are everywhere. Werther you are working on some server-side application or mobile app at any stage it is very likely that it will use Unix at some point.
That is why at our company we decided to have a small introduction demo/discussion on some useful concepts and command line tools.
We also went through a high-level overview starting with initial with run level and job control.
While most of the demoing is not visible via the slides I decided to share the slides anyway:

Unix for developers from Mite Mitreski