Along with other guys from the Pretius team, I had a chance to participate in this year’s edition of Devoxx Poland, which was held from June 20 to 22 in Kraków. Devoxx is the biggest Java conference in Poland and is a great way to learn about new things that are being developed in the Java world. Devoxx started with an opening carried out by Grzegorz Duda (one of the guys from the Devoxx team). Grzegorz talked us through some organizational matters and invited us to actively take part in the conference.
Usefulness of probability in everyday life
Immediately after the opening, in the same room, there was a first presentation “Algorithms to Live By: The Computer Science of Human Decisions” by Brian Christian based on his book with the same title. It was an interesting talk about making decisions in our life and a mathematical way to optimize risks related to them. The main idea behind the talk was that if you want to be sure that you’ve chosen the best possible option, you have to apply the “37 percent rule”: after trying out the first 37 percent of things (or people, jobs, etc.) choose the first one that is better than any of the previous ones. This applies to many things, including the search for a love of your life or finding a perfect apartment to live.
After Brain’s talk, all following presentations were happening in parallel. You had to choose who do you want to listen to next. Thankfully the conference mobile app was helpful when planning my schedule for the day.
How to do microservices
I’m not going to go through all of talks I attended, since there was just too many of them, but if I had to pick the most interesting ones, I’d go with Andreas Grabner’s talk about top performance challenges in distributed architectures and Dominik Boszko’s “Through the valley of darkness, the road to microservices”. As you can guess, both presentations were oriented around microservice architecture principles and were very useful for me, since the project I’m working on at Pretius consists of transitioning from the monolith to the microservice architecture.
Andreas made me realize what are the performance problems that are going to bother my team after deploying our project. Dominik confessed the mistakes made by his team during the same type of transition that I’m currently facing – now I can get rid of the same faults he commited while it’s not too late.
Testing in production with style
I really enjoyed the talk about how LinkedIn team tests new features in production carried out by Szczepan Faber (the creator of Mockito and tech lead at LinkedIn). It’s a very useful knowledge, because there are always cases where you just can’t try things on preproduction environment before pushing to production: Szczepan quoted the example of tuning search engines, since you need metrics to actually be able to tell if your change made things better or worse and they can’t be generated by test users. Problem disappears if you treat your normal users as testers (with enough caution of course).
Speaking of testing, my collegue Krzysztof Krajewski attended Jakub Nabrdalik’s talk about Test Driven Development, which unfortunately I’ve missed. Here are his impressions:
One of the most impressive talks on this year’s Devoxx was carried by Jakub Nabrdalik about improving Test Driven Development. This talk was packed with practical examples how to use TDD in software development, mistakes made by beginners and tricks how to make the best use of testing this way. For instance the best approach is to create simple tests that runs in miliseconds with mocks of external systems (instead of real database), so everyone can run tests after changing even single a line of code.
Functional Spring rocks
One of the last talks I attended was called “Staying pure and functional with Spring 5” and was led by Jarek Ratajski, a veteran Java Developer.
Jarek showed us the functional way of writing Spring applications, which makes the code more predictable, understandable and testable, since there’s no annotation magic and unneeded state!
He also presented how the functional code can be simplified by using the Vavr library and the Kotlin language.
At Pretius we already thought of trying Kotlin in one of our projects. After this talk I’m sure we’re going to give it a try: the increased maintainability and reduction of boilerplate is just worth it.
All good things must come to an end…
Three days of the conference unfortunately passed very quickly but left me with a lot of knowledge that is already being useful while working at Pretius. I loved the atmosphere at Krakow and enjoyed the talks carried out by experts in the industry. This year’s Devoxx was awesome and I’m sure the the next one will be even better and that the Pretius team will be there. Congratulations to Devoxx team for organizing such an impressive event.