11 March 2017, Cineplexx, Skopje City Mall, Halls 5 & 6
starting at 08:30

Hall 6 | Hall 5

Agenda Hall 6 (To Hall 5)

Time Talk Presenter
8:00 - 9:00 Registration
9:00 - 9:10 Opening
9:10 - 9:50 Managers and Customers - The Missing Manual Corsin Decurtins

Software projects would be so easy and pleasant without managers and customers. These non-technical people are a strange breed of animal. They work in IT projects, but have no idea about technology. They are the boss and want to make the big decisions, but do not know what they are talking about. Managers care more about Excel sheets and project plans than running software. Customers want everything, by yesterday, first time right and for free of course. And they love meetings, oh the meetings...

In this talk, Corsin tries to provide parts of the missing manual for non-technical managers and customers. Think of it as a Sir David Attenborough-type nature documentary.

9:50 - 10:10 Coffee break
10:10 - 10:50 Do not make the Monolith great again! Dimitar Siljanovski
A talk that should bring more insights about why and when we decided to move to Micro-services based organization.
10:50 - 11:10 Break
11:10 - 11:30 How Reactive do we need to be Jana Karcheska
My greatest passion in programming are functional languages, the languages that were believed to be the future of AI. Now they are prevailing in all other areas and concepts like Reactive, Immutable, Stateless are becoming part of our daily work. Which is great, but the question is how Reactive do we really need to be. I want to give my "point de vue" based on my experience with using Javascript frontend technologies for big enterprise projects.
11:30 - 11:40 Break
11:40 - 12:00 How to deploy Dockerized applications to AWS ElasticBeanstalk Pavel Bely
Perhaps the easiest way to run your application at AWS as a multi Docker container app is to use Amazon ElasticBeanstalk. It allows you to quickly deploy and manage applications in the AWS Cloud and let Amazon care about the infrastructure magic. In my presentation I'll share my experience of using ElasticBeanstalk and automating deployment with Jenkins.
12:00 - 13:00 Lunch break
12:30 - 12:50 Flux your App via Redux Petar Blazevski
Quick introduction of state management in JavaScript apps using Redux
13:00 - 13:40 How I learned to stop worrying and love the monolith Nikola Zivkov
Your team is starting a new project and you're thinking about doing this thingy everybody is talking about called microservices. You heard that your application will scale better, the code will be more structured and easier to maintain. I mean, who on Earth does monoliths in 2017?
13:40 - 14:00 Cofee and energy break
14:00 - 14:40 From zero to production in 1 conference talk time Milen Dyankov
While having fun playing with what I code, you'll learn how to easily build any web application - from simple SPAs trough a full micro-service architecture to complex enterprise applications.
14:40 - 15:00 Break
15:00 - 15:20 How to register and login into a system Marjan Kindalov
Implementing User registration and Login functionality is a common but not a simple task. It is usually guided by some business and security guidelines. This talk guides you from most simple(and bad) implementations towards more complicated and secure solutions. While doing that you will get the basic ideas about cryptography terms like nonce, hashes, salt, rainbow-tables, key stretching as well as terms like User Enumeration, Password Enumeration etc.
15:20 - 15:30 Break
15:30 - 15:50 AWS lambda using Serverless Goran Kopevski
Learn the starting points for creation of scalable microservices using the serverless framework in AWS environment.
15:50 - 16:00 Break
16:00 - 16:40 Java 9 - Project Jigsaw Katerina Doneva
Here is how the story goes. A girl dared to talk in a conference about a huge topic in which she is lately interested in. It's a Bird...It's a Plane...It's Project Jigsaw. It is big bang and it is announced for Java 9. Now lets be serious: This presentation is envisioned as introductory talk on the changes that the modularization of the platform brings to the Java Ecosystem. It is truing to answer the following questions: What it means to be on a modular platform? What are the implications of the modularization and what to expect? Conceptually shows how to migrate the existing code. Talks about modularity basic concepts, what problems it is truing to solve and how. Seriously be there! You will miss a lot if you don’t.
16:40 - 16:50 Closing
17:00 - 19:00 Beer and Socializing

Sponsors


Agenda Hall 5 (To Hall 6)

Time Talk Presenter
10:10 - 10:50 Building your own smarthome with openHAB, Raspberry Pi and Arduino Miki Jankov
Learn how you can build your own smarthome, using open-source software and hardware
10:50 - 11:10 Break
11:10 - 11:30 Spring Boot SSO in 15 min Sashko Peshevski
Spring Boot SSO implemented with Oauth2 and Zuul proxy, focuses on client developer simplicity while providing specific authorization flows for web and desktop apps, mobile and IoT devices.
11:30 - 11:40 Break
11:40 - 12:00 Recommender Systems: What, Why, How Gorjan Zajkovski
The need to offer a custom tailored experience to each user, while fitting your product to their unique personality, has become a basic product requirement. Recommender systems are an essential step towards the solution.
12:00 - 13:00 Lunch break
12:30 - 12:50 Network Application with Apache MINA Branislav Bajlovski
How to make application with excellent performances that operate on lower layers of ISO OSI.
13:00 - 13:40 Agile testing: why the tester is your best friend ever! Michael Drost
Agile is nice, but it's not perfect. The desire for cross-functional skills can be a distraction you can do without. That's why EVERY Agile team MUST have a tester. They are your best friend!
13:40 - 14:00 Coffee and energy break
14:00 - 14:40 Test easy and prosper with Spock Framework Tomche Delev
The talk will be introduction to Spock Framwork for writing elegant and concise unit tests. Few real world unit tests will be live coded, showing you how to enjoy writing tests.
14:40 - 15:00 Break
15:00 - 15:20 MicroProfile quick start Ivan St. Ivanov

Microservices are hot topic these days. And it's not just another hype, but the reality - the new deployment and delivery model of scaling and maintaining single app features lead to completely new development model.

Most of the platform vendors from the Java space followed the trends and came up with powerful products in that space. As always Java EE was accused for being late for the party. Individual vendors have their own solutions, but they are still far from standard. The MicroProfile initiative is a step in the right direction. There vendors work together to define what a microservice runtime is and implement it on top of standard technologies.

Join this session to learn more about the initiative and see it in action.

15:20 - 15:30 Break
15:30 - 15:50 Javaslang - Achieve functional eloquence with Java8 Blagoj Atanasovski
Javaslang is a functional library for Java8+. It helps to reduce the amount of code and to increase the robustness. Javaslang fuses the power of object-oriented programming with the elegance and robustness of functional programming.

Supporters

Speakers

Corsin Decurtins

@corsin

Topic: Managers and Customers - The Missing Manual

The goal of the talk is to provide developers with information about how non-technical managers and customers tick and how to deal with them in daily project work.

Developers need to work together with non-technical people. And the better this collaboration works, the more successful the projects are. It is helpful for both parties to understand each other, know what motivates and drives the other side, what they care about.

In my career I gathered some insights that I would like to share with the audience. This experiences come from both working as a software developer and IT architect with non-technical people and from becoming a part-time manager myself.


Bio:

Corsin is the CTO of Netcetera and works as a developer, IT architect ... and manager. Corsin studied computer science and worked part-time as a research assistant at ETH Zurich.

Nikola Zivkov

@nikolazivkov

Topic: How I learned to stop worrying and love the monolith

With so many advocates of both the microservices-first and monolith-first approaches, it's important to understand the strengths and weaknesses of both architectural styles. With these two being at two opposite sides of the spectrum, could there be a middle ground?

We will explore the concept of structured monoliths by visiting several topics such as layered architecture (and the damages it causes), Ports and Adapters architecture as its alternative and Domain-Driven Design's Bounded Context pattern that can help us create components which can one day become microservices.


Bio:

Nikola Zivkov is a Java Technology Line Manager at Seavus. With more than 13 years of experience in building Java enterprise solutions, he’s passionate about building resilient architectures that withstand the test of time (and crazy client demands). He’s been a member of the Macedonian JUG since the group’s second meeting.

Dimitar Siljanovski

Topic: Do not make the Monolith great again!

Microservices are not something that you need to jump into immediately. It is a hidden trap for small teams and young companies. Luckily we survived that trap, so we can share the story with you. Business and Team organizations should follow this architecture, which motivated us to spend a huge amount of time in the last 3 years to transform our Company into Microservices-based organization.


Bio:

Dimitar has 12 years of Software Development experience and in last 8 years he is working as Software Architect for multiple international companies. He loves to build tech teams and to find solutions for complex Product requirements. In the last 4 years as CTO of Global Savings Group he managed to scale the company from single platform in single country to 40 platforms operating in 24 countries with more than 100M of active users monthly.

Tomche Delev

@tdelev

Topic: Test easy and prosper with Spock Framework

In the first part of the talk it will present and emphasize the importance of testing in general, and unit testing in particular as the base of the test pyramid. Then, in the second part it will introduce the audience with the Spock Framework written in Groovy (JVM dynamic langauge). Then in the third and final part of the talk, a moderate and real world examples of unit tests written in Spock will be presented (or live coded, depending on the time).


Bio:

Teaching assistant at FINKI, with previous industry experience in start-up with passion about sharing knowledge. Worked as developer and architect for ten years on business applications and personal projects in many different technologies and programming languages. Passionate about Java and JVM technologies, clean code, programming languages and from recently functional programming.

Katerina Doneva

Topic: Java 9 - Project Jigsaw

Jigsaw in a nutshell.

Reliable configuration and strong encapsulation are the two key values of the project. How are they achieved and what this means? This is a promise for better architecture of the platform itself and brings greater security, integrity and scallability.

The problem with the classpath

Whatever you know about the structure of your system the classpath erases it. With modules you are telling the compiler and the VM about the structure of your system and they use this information.

Modularity Basic concepts

Laying the foundations for this topic I will define what are modules, what is unnamed module, what is automatic module and how are now the rules of readability and accessibility changed. Implied readability will be discussed shortly.

Migration of the existing code

Two approaches for migration will be shown conceptually, top down and bottom up migration. Coding example of course ;) if(timeAllows()){ PrezUtil.writeSomeModules(); } else { PrezUtil.showAllreadyWrittenModules(); }


Bio:

Software Engineer with over 8 years of success in developing enterprise application in Java and related technologies. Oracle Certified Professional, Java SE 8 Programmer. Persistent problem solver, excited about every aspect of the process of creating software with good quality... more bragging you can find on linkedin. Apart from being a developer I like to brag that I am a mother of two little boys (read dragons) and have lots of fun with a four year old and a baby in the house.

Milen Dyankov

@milendyankov

Topic: From zero to production in 1 conference talk time

NoSQL, Serverless, DevOps, Social Auth, ... Developers these days want to forget about infrastructure and simply build great scalable apps quickly. This just got easier and I'll prove it to you by live coding an application that you can interact with during the talk (bring your laptop and/or smartphone).


Bio:

Milen is a Developer Advocate at Liferay and focuses on Java and OSGi Platform. He is passionate about designing and building software as well as helping others design and build good software! After more than 15 years developing, designing and consulting on various Java EE solutions for leading European companies, he currently spends most of his time teaching, speaking at conferences all over the world and researching his favorite topics around Java modularity, systems architecture and software craftsmanship.

Miki Jankov

@Miki_Mixajlo

Topic: Building your own smarthome with openHAB, Raspberry Pi and Arduino

Introduction to the open-source software openHAB and the challenges to build your own smarthome based on openHAB and open-source hardware like Raspberry Pi and Arduino. Learn how to setup the system, how to connect devices to it and how to control them using smartphone app and web browser, or automate their control with rules.


Bio:

Java software engineer, embedded systems enthusiast and home automation hobbyist, with strong desire to improve his knowledge and skills in the software area.

Michael Drost

Topic: Agile testing: why the tester is your best friend ever!

Testers bring a particular skillset to the table. Whether it is asking the unexpected question or finding the one issue everybody else missed. But they can do a lot more and I am not talking about coding. You actually hold the key to unlocking a huge amount of potential achievements. Did you know that if you let them start doing their thing before you start doing yours, you will be in a far better position to deliver the product the product owner needs?

My talk will focus on how practical Business Driven Testing can save you time and allow you to deliver the best product possible without distractions. Come and get the keys to unlock the true tester!


Bio:

Michael Drost: husband to a fantastic wife, father to four incredible children, TOGAF certified, excellence obsessed and motorsport mad. Started testing in 2000 and never looked back. Any time not spent on the job or the family, goes into being a motorsport data engineer at club level, because every race is a sprint, every driver a product owner and every car has the potential to be the perfect product. Unlocking that potential in an octane driven, high pressure environment and being rewarded with the top step of the podium, is the way I love to spend my weekends!

Jana Karcheska

Topic: How Reactive do we need to be

My greatest passion in programming are functional languages, the languages that were believed to be the future of AI. Now they are prevailing in all other areas and concepts like Reactive, Immutable, Stateless are becoming part of our daily work. Which is great, but the question is how Reactive do we really need to be. I want to give my "point de vue" based on my experience with using Javascript frontend technologies for big enterprise projects.

While it is easy to be courageous and innovative when doing small start up projects in reality most of us still have to do big projects that need to stay stable and useful for many years. It is amazing that now enterprise projects are opening up to novelty but how can we really survive the turmoil and take advantage of the good and avoid the volatile and bad.

I want to try to go about this topic in a pragmatic way drawing from my experience and cured by my passion for functional programming and showcase and compare some of the advantages and setbacks in the most popular Javascript frameworks.


Bio:

Jana is a senior software engineer working at Netcetera. She has more than 10 years of experience working mainly with Java technologies. Her expertise includes working on complex safety critical and mission critical systems. Outside of the daily work, her other interests are machine learning, bioinformatics and functional programming, languages like Lisp, Clojure and few other languages on the JVM.

Marjan Kindalov

Topic: How to register and login into a system

Registration

  • 2 step Registration
  • why is done
  • how is done

Login

  • storing plain Password in DB
  • storing hash of the password in the DB
  • dictionary attack, rainbow-tables
  • salting the passwords with static hash
  • salting the password with dynamic hash
  • key stretching
  • Error messages
  • User enumeration
  • Password enumeration
  • TLS


Bio:

Marjan Kindalov is a Senior Software Engineer at Netcetera. He has been working mostly on eComerce and Payment solutions. Author of not so famous "Struckture" project.

Gorjan Zajkovski

@the_wittyone

Topic: Recommender Systems: What, Why, How

This talk will give a short overview of what a Recommender System is, and the decisions one has to take into account when designing one. Then we will go into more details on the general concept of a recommendation engine, why do we need one, the used algorithm (collaborative filtering, factorization techniques), its' nature (personalized / non-personalized), the valuation metrics, and the learning procedure. A couple of key points will also be addressed, such as the importance of implicit user feedback, the integration of the engine into the service, and the unavoidable pitfalls.

WHAT

In the introductory part of the talk, we will first see what a Recommender System is. In what follows, a solid understanding of what the purpose of such a system is, will be established. Also, a short summary will be given, of what it’s role is, and what is outside it’s scope.

WHY

Next, a short requirements list will be presented, to showcase features that we take for granted, present in almost all of the modern online platforms, which are all powered by a recommendation engine of some kind.

HOW

In this longest part of the talk, I will mostly focus on answering this question: How do we integrate a recommendation engine into a new service, or a product? A short overview of the few most popular techniques will be given, alongside the key decisions one has to make when designing the recommendation process. Also, a few implied points will be discussed, which directly influence, or are a consequence from the design decisions.

Closing:

In this part, I will give a couple of examples of well designed recommendation engines, and their seamless integration into the core products.


Bio:

Gorjan is a software engineer at Netcetera, working on various projects including research into the area of machine learning. For his graduate thesis, he built a proof of concept event recommendation system. Nowadays, he spends his work time developing daily in Java, JavaScript and Python, and the rest at Coursera, learning the latest trends in the world of Big Data and Data Science.

Pavel Bely

@BielyPaviel

Topic: How to deploy Dockerized applications to AWS ElasticBeanstalk

Perhaps the easiest way to run your application at AWS as a multi Docker container app is to use Amazon ElasticBeanstalk. It allows you to quickly deploy and manage applications in the AWS Cloud and let Amazon care about the infrastructure magic. In short all you need to do is to create an application in Elastic Beanstalk, configure its environment and provide an archive with Dockerrun.aws.json file. This is where you define which docker images should be used and how they need to be configured when deploying your app. Continuous integration? Yes, this can be automated, Jenkins is there to help with lots of AWS plugins (so you don’t need to know any Groovy). In my presentation I'll share my experience of using ElasticBeanstalk and automating deployment with Jenkins.

Here is my blog post that is the core of my presentation


Bio:

I am a software engineer and punk musician from Minsk, Belarus. In 2010 I have graduated from BSUIR (Belarusian State University of Informatics and Radio electronics) and since then have worked as a developer - starting as a vintage mainframe engineer (PL/I, Assembler) to fancy single page applications developer (JavaScript and Java). Currently I work in Seavus as a full stack developer.

Sashko Peshevski

@saspes

Topic: Spring Boot SSO in 15 min

Spring Boot SSO implemented with Oauth2 and Zuul proxy, with .jdbc() instead of .inMemory(), focuses on client developer simplicity while providing specific authorization flows for web and desktop apps, mobile and IoT devices. Implementation .inMemory() will be faster, but if multiple clients are consuming this then it is better to have it in .jdbc(). Will use an OAuth2 server as the authenticator, so that we can also use it to grant tokens for the backend resource server using MySQL as client, user and token store. The goal is to work around CORS and the Same Origin Policy restriction of the browser and allow the UI to call the API even though they don't share the same origin using Zuul proxy.


Bio:

Senior software developer and consultant at Polar Cape with 10 years experience in Java. More than 2 year ago (beside Java) started to work as a hybrid mobile app developer, Android and iOS, including JavaScript, AngularJS, Cordova, HTML5, Objective-C, etc. Also, in free time, he has blogging view on the most recent happenings in IT, gadgets and IoT (especially Raspberry Pi).

Goran Kopevski

@kopevski

Topic: AWS lambda using Serverless

Serverless architecture is one of the trending architecture for cloud based scalable microservices. It is getting more and more popular in the last two years. Currently, there are multiple providers that are offering the serverless architecture in their cloud stack. The goal of this presentation is to show how easy it is to start working with AWS Lambda and the full potential that it offers. Also, to show the drawback you need to think about before you start using it in production applications. The presentation will cover an intro, a live coding demo and an explanation of the positive and negative things of the Serverless architecture.


Bio:

Goran Kopevski is a 6 year experienced Javascript developer. Currently, he is working for Cuponation as a senior developer on a system that serves more than million users daily. He has worked for multiple clients including Porsche Informatik, Cardiologie Centra Nederland and various telecom companies. He is a versatile developer who has tasted the flavor of many technologies. Aims for simplified code and usage of javascript. Open minded for new technologies and thinking out of the box. As an open minded person, he wants to exploit all of the magic that Javascript can offer.

Blagoj Atanasovski

Topic: Javaslang - Achieve functional eloquence with Java8

Javaslang is a functional library for Java8+. It helps to reduce the amount of code and to increase the robustness. Javaslang fuses the power of object-oriented programming with the elegance and robustness of functional programming.


Bio:

Blagoj is a Software Engineer at Sorsix, where he works on data-intensive applications. His interests include distributed systems, database systems architecture and concurrency.

Ivan St. Ivanov

@ivan_stefanov

Topic: MicroProfile quick start

The presentation will start with an overview of the history of innovation in the Java EE space. Then it will outline the problems with the previous approaches that lead to the inception of the MicroProfile initiative.

The second part of the presentation will be a description of what MicroProfile is - which are the vendors behind it, what are its goals and what is the innovation process. Then it will briefly review what is in version 1.0 and what is coming in version 1.1.

Finally the speaker will show a working MicroProfile 1.0 application, where each service is running on a different vendor vendor platform.


Bio:

Ivan St. Ivanov has more than 15 years experience with Java development. He is founder and senior programmer at VIDA Software. Ivan is one of the Bulgarian JUG leads, driving the Adopt a JSR initiative in Bulgaria. As of 2015 he is one of the key organizers of the jPrime conference in Sofia. In his free time he likes contributing to open source software, mostly to MicroProfile and JBoss Forge. Ivan is doing his PhD in the University of National and World Economy in Sofia in the area of throttling shared resources in multi-tenant cloud environment. He is teaching Java and Java EE in the Sofia University.

Petar Blazevski

@PetarBlazevski

Topic: Quick introduction of state management in JavaScript apps using Redux

Since the introduction of the modularization in the JavaScript world, we have faced countless of issues. One very common problem, especially in the component driven development, is how can we share data between modules/components. Facebook had the same issue when they moved their UI to React. In order to solve this problem, they started implementing the Flux application architecture. Redux, on the other hand, has evolved around the idea of Flux, and is becoming the go-to tool in a React application. It was created as a state management library with minimal API, but with the ability to be implemented in various features like hot reloading, universal apps, etc.


Bio:

Petar is a front-end developer at Polar Cape with 5 years of experience. He started working as a back-end developer using the PHP scripting language, and moved to full time front-end when JavaScript started taking over the web.

Branislav Bajlovski

@bbjski

Topic: Network Application with Apache MINA

Playing with media streams, codecs, reliable data transfer, custom protocols, UDP/TCP & IP. How to make applications that are focusing only on one functionality instead all functionalities. E.g. Proxy. If you need only 2 functionalities, why running whole proxy? Why not making your own proxy in 5 minutes? How about performance? How about lightweight network applications?"


Bio:

17 years experience as Java Ddeveloper. Certified ScrumMaster & Certified Scrum Product Owner. Founder and former Partner in Ever Near Macedonia. VP for Operations and Technology in Sourcico. More than 2.500 days in Java projects.

How to post on jug.mk

Organized events

2017

JavaSkop 2017

11 March 2017, Cineplexx, Skopje City Mall, Halls 5 & 6

Tech session #20

25 January 2017, FINKI Small Amphitheatre

2016

Tech session #19

20 October 2016, FINKI Small Amphitheatre

2015

JavaSkop 2015

13 December 2015, Cineplexx, Skopje City Mall, Halls 5 & 6

Tech session #18

04 November 2015, FINKI Small Amphitheatre

Tech talk by Endava #2

24 September 2015, Endava Offices, top floor

Tech talk by Endava

21 July 2015, Endava Offices, top floor

Tech session #17

25 March 2015, Broz Cafe (1-st) floor

2014

Java Day #4

22 November 2014, Cineplexx, Skopje city mall

Tech Session #16

30 September 2014, Club of Journalists (Клуб на новинари)

Tech Session #15

19 June 2014, PMF Building

Tech Session #14

26 February 2014, Club of Journalists (Клуб на новинари)

2013

Java Day #3

22 December 2013, Cineplexx, Skopje city mall

Tech Session #13

02 October 2013, FINKI

Java Day #2

23 February 2013, Skopje Fair

2012

Tech Session #12

06 June 2012, PMF Building

Tech Session #11

08 February 2012, FINKI

2011

10 years Eclipse Birthday Party

23 November 2011, Cafe Opera

Tech Session #10

05 October 2011, Club of Journalists (Клуб на новинари)

Java 7 Macedonia

20 July 2011, Skopje Fair Business Hall

Tech Session #9

20 April 2011, FEIT (Conference hall)

2010

Java Day #1

18 December 2010, EU Info Center

Tech Session #8

03 March 2010, FEIT (Conference hall)

2009

Tech Session #7

15 July 2009, FEIT (Conference hall)

Tech Session #6

17 June 2009, FEIT (211)

Tech Session #5

13 May 2009, ETF (Amphitheater)

Tech Session #4

08 April 2009, ETF (Amphitheater)

Tech Session #3

04 March 2009, ETF (Amphitheater)

Tech Session #2

26 January 2009, ETF (Conference hall)

2008

Tech Session #1

24 December 2008, ETF (Conference hall)

Sponsors

Supporters

Fork me on GitHub