Modern view of design patterns in Java

August 27th, 2016 No comments

Mikalai Alimenkou, Senior Delivery Manager@EPAM

I think every Java developer knows something about design patterns. Some of them even tried to read famous book “Design Patterns: Elements of Reusable Object-Oriented Software” and not fall asleep, others prefer lightweight version with beautiful girl on the cover: “Head First Design Patterns”. At least questions related to design patterns are common on every interview for developer position, so remaining part of developers community got some basic knowledge from articles and google. Read more …

What Mr. Spock would possibly say about modern unit testing: pragmatic and emotional overview

July 15th, 2016 No comments

Yaroslav Yermilov, Senior Software Engineer @EPAM

In this article we will try to examine current state of the automated testing concept in the Java world. As a reference, we will go through basic and advanced spock-framework features and compare them with what JUnit4/JUnit5/TestNG/Hamcrest/AssertJ/Mockito/whatever can offer instead. We will try to understand Spock philosophy and find out both pragmatic and emotional answer to the questions: should I use spock-framework in the year of 2016? how to convince my manager that “yes, we should”? how to convince my teammates that “no, we shouldn’t”?

What’s About Modern Unit Testing?

To my mind, automated testing is one of the most powerful software development concept suggested so far. Read more …

Java 8: 10+ features

July 11th, 2016 No comments

Oleg Tsal-Tsalko, Lead Software Engineer @EPAM

If you are using Java 8, there is no excuse not to use all the great new language features this platform offers you. Simple switch to JRE 8 might give slight increase in performance of your application due to numerous continuous platform optimizations, however with Java 8 you can experience real boost in engineering productivity and code efficiency.

Use Stream API

Stream API – is not a data structure or a collection, it is an abstraction which allows building operations pipeline over sequence of data elements. By using Stream API, you can build a simple and logical chain of operations. A very important feature of Java 8 is that you can use internal parallelisms. For example, if you need to parallelize a particular operation, writing even the simplest code without using the parallel stream would be doomed to writing lots of code using directly ForkJoinPools, ExecutorServices, and other low level concurrency mechanisms. This used to make the process of writing a code more complicated. In addition, Stream API makes it more convenient to use functional programming in Java. Read more …

Tags: , ,

Evgeny Borisov workshop: ‘Welcome to Spark’ (10-11 June, Lviv)

April 30th, 2016 No comments

This training is for Java developers who want to process Big Data in the most efficient and simple way, using the cutting edge technology – Spark

Дата: 10-11 июня
Место проведения: вул. Олени Степанівни, Львів
Регистрация и программа:

– Описание
Тот, у кого в руке молоток, во всём видит гвоздь! Глупо?
А что если это не молоток, а универсальный инструмент, который может быть и бензопилой, и пылесосом и зубной щёткой?
В мире Big Data есть Hadoop и целый зоопарк инструментов, которые на него пашут и каждый заточен подо что-то своё, а ещё там недавно появился Spark, который можно применять для любых целей.
Если вы хотите писать в Hadoop с различных СУБД, стримить всякие источники в реальном времени, параллельно делать с данными какую-нибудь сложную обработку и не при помощи каких-то батчей, скриптов и sql запросов, а при помощи мощного функционального языка – добро пожаловать в Spark!

Read more…

Hibernate & Multithreading talks at JUGUA (April 20th)

April 2nd, 2016 2 comments

JUG_logoDear friends, we are happy to announce our next JUG UA meeting
Date: April 20, 19:00 – 23:00
Venue: EPAM Systems, Kudryashova 14B (Cafeteria)


  • Agenda

– Hibernate performance tuning (Igor Dmitriev) (video, slides)

Nowadays, almost every Enterprise application uses Hibernate and as we know, DB could be a bottleneck in the application. Furthermore incorrect uses of ORM frameworks can lead to performance problems.
In my talk, I will cover:
1. How to measure and increase performance
2. About different optimization techniques and effective practices
3. About pitfalls and bugs
4. Hibernate tuning techniques
5. How some Hibernate features work under the hood
My talk will be based on my own experience, and I’ll show developers’ common mistakes.
This talk will be useful both for beginners and professionals alike.

– Multithreading in Java past & present (Yevgen Polukov) (video, slides)

In this talk I’d like to give you an overview of java.util.concurrent package and represent useful Java concurrency tools. I’ll cover the core functionality and the state-of-the-art API (Executors, Accumulators, StampedLock  etc).
In addition, I would like to show some ways of its implementation. As we know, the presentation has no worth without examples, so there will be some of them during the talk.


March 15th, 2016 No comments

stream324th – 25th APRIL 2016 ARENA CITY “SILVER SCREEN”


Trainings: Dive into Hadoop (Alexey Zinoviev) || Architecture Kata (Jaroslaw Palka)


From CRUD to Hypermedia APIs with Spring at JUGUA (March 10)

February 29th, 2016 No comments

12640381_528256597345232_8958142163180476694_oDear friends, we are happy to announce our next JUG UA meeting with an extended version of Vladimir Tsukur’s JavaDay Kyiv talk “From CRUD to Hypermedia APIs with Spring

Date: March 10, 19:00 – 23:00

Venue: EPAM Systems, Kudryashova 14B (Cafeteria)

  • Agenda

From CRUD to Hypermedia APIs with Spring (extended version)

Typical way to design and expose HTTP API today is a so called CRUD approach: come up with URL templates for resources, map create-read-update-delete operations to HTTP verbs and serialize domain model as JSON. Nice and easy, isn’t it?
This talk will present limitations of CRUD style APIs and how to address them using “real” REST and hypermedia, HAL and ALPS. We’ll take a look how a set of libraries and tools from Spring helps building these APIs. All the talking is not worth it without an example, so Spring-based application will be our guide.
Amazon, PayPal, GitHub and other API providers have already started embracing hypermedia and linking by enhancing their HTTP interfaces. Are you next?

Thanks to EPAM Systems you can participate in the meeting online

Tags: , ,

Develop modern apps using Spring ecosystem at BigData era at JUGUA (February 24)

February 8th, 2016 No comments

OlegTTDear friends, we are happy to announce our next JUG UA meeting with an extended version of Oleg Tsal-Tsalko’s JavaDay Kyiv talk “Develop modern apps using Spring ecosystem at BigData era

Date: February 24, 19:00 – 22:30

Venue: EPAM Systems, Kudryashova 14B (Cafeteria)


  • Agenda

    Develop modern apps using Spring ecosystem at BigData era (extended version) (video, slides, src1, src2)

    Spring is no longer just a framework, it’s huge ecosystem with lots of technologies in there. Nowadays Spring is a platform for developing all sorts of applications from simple REST services to distributed systems doing complex streams or batch processing with real-time analytics leveraging BigData.
    In my talk I want to give you an overview of what Spring offers you today and how easy and cool is to develop Spring applications today using Spring Boot and Spring XD. Spring Boot and Spring XD are designed to take away most of the burden and boilerplate code required to develop standard things again and again and make complex things look easy.

The 3-4 most active participants will get free tickets to Java Frameworks Day 2016
Thanks to EPAM Systems you can participate in the meeting online

RigaDevDay 2016

January 22nd, 2016 No comments

RigaDevDayA notable conference for software developers will take place in Riga, in March 2016.

The largest software developers’ conference in the Baltics will take place in Riga from 2nd to 4th  of March, for the second year in a row. At least 35 world-famous speakers from the EU, Switzerland, Norway, the Baltic states and Russia will give talks on the most relevant topics in the IT industry.

Featured speakers include Robert Nyman (Google, Sweden), Jessica Rose (DreamFactory, UK), Quentin ADAM (Clever Cloud, France), Oracle representatives Chris Saxon (UK), Dalibor Topic (Germany), Grant Ronald (UK), as well as Andres Almiray (Canoo Engineering AG, Switzerland), Gill Cleeren  (Ordina, Belgium), Anton Arhipov (ZeroTurnaround, Estonia), Claus Ibsen (Red Hat, Sweden) and many more.

Read more…


Apache Drill and Apache Spark at JUGUA (December 16th)

December 6th, 2015 No comments
Dear friends, we are happy to announce our next JUG UA meeting with great speaker from MapR (Apache Hadoop Distribution) – Tugdual Grall

  • Bio
Tugdual Grall is a Technical Evangelist at MapR, an open source advocate and a passionate developer. He currently works with the European developer communities to ease MapR, Hadoop and NoSQL adoption. Before joining MapR, Tug was Technical Evangelist at MongoDB and Couchbase. Tug has also worked as CTO at eXo Plaform and JavaEE product manager, and software engineer at Oracle. Tugdual is Co-Founder of the Nantes JUG (Java User Group) that holds since 2008 monthly meeting about Java ecosystem. Tugdual also writes a blog available at

Read more…