Byte My Code2018 wrap-up!

Hundreds of people who live and breathe Java came to Strefa Kultury Studenckiej on October 20th to listen to Java Masters’ best practices and to get to know their experience as craftsmen/women.

Our attendees were welcomed with cups of hot UBS coffee, a big hug from our green ByTech monster, and some small-talk with Pepper the humanoid robot, who kept entertaining us the whole day!

Byte My Code 2018 attendees rated our event at 4,37 out of 5, saying that the in-depth lectures and friendly atmosphere were the real highlight of the conference. What pleases us the most is that 97% of Byte My Code attendees indicated they would recommend our event to their friends – therefore, a BIG THANK YOU from us, and we will be back in 2019.

Enjoy the photo gallery below, feel free to use the photos for your own needs. The recordings of the lectures will be available on our website soon - stay tuned!

Speakers 2018

Marcus Biel

Founder & CTO at Clean Code Academy

Celine Boudier

Code for Life Team Lead at Ocado Technology

Michael Feathers

Founder & Director of R7K Research & Conveyance

Jakub Nabrdalik

Solution Architect and Developer at Bottega IT Minds

Jakub Pilimon

Principal Technologist at Pivotal

Michał Michaluk

Software Developer, Consultant, Trainer @ Bottega IT Minds

Pawel Balon

Expert in AI

Agenda 2018

9.00 – 10.00

Registration

10.00 - 10.15

Opening Ceremony

10.15 - 11.15

A, craftsman's guide to designing clean architecture

Marcus Biel

In 2018, it seems like Microservices are the de facto standard for a system architecture, but do they really live up to the hype? The talk will show you an alternative approach - how we can tame complexity with the help of a clean, monolithic architecture that is modular to the core. Java has been deliberately built from the ground up on a modular basis: Methods, classes, packages. Additionally, the module system was introduced in Java 9. Modularity is based on the fundamental concepts of high cohesion and low coupling. We will look at these concepts, as well as some further measures, in detail. We'll check out what they are, how they are related to one another, and what the best practices are for applying them on all levels of the architecture. The talk will show you how you can apply these basic concepts to develop a clean, monolithic architecture, based on Java 9 modules and the hexagonal architecture pattern.

11.15- 11.30

Coffee Break

11.30 – 12.30

Testing your message-driven application

Jakub Pilimon / Michał Michaluk

So you end up with messaging and event-driven architecture.
You also have heard about event sourcing and applied this principle in a few places in your code.

Everything seems to be working perfectly, you are about to perform the first release and you’ve decided to change the structure of one event. The event you have changed was both used for state reconstruction (event sourcing) and integration (event-driven architecture). Due to that change, out of a sudden, your acceptance environment stopped working… “How come?! I have only changed an implementation detail in my cool event-sourced domain!” said the senior developer.

In this talk, we will chat about how to work with events that are used as integration messages in your system. We will tackle content-negotiation, versioning and acceptance tests.

There will be a lot of Spring Cloud stack and we will see how we can benefit from Consumer Driven Contracts when NOT using REST APIs.

12.30 – 12.45

Coffee Break

12.45 - 13.45

"The Right Tool": choosing a technical tool for your project.

Celine Boudier

Adding a tool to your project or your stack can be a difficult decision process.
What makes it so challenging? And how to overcome some risks and take an informed decision?
As a team lead in a small team working on free, open source online coding games, I will share some advice and some examples, mostly choosing a CD platform.
There probably won't be a perfect tool but prioritisation, testing, good practices can help find a good one!

13.45 – 14.45

LUNCH

14.45 - 15.45

Improving your Test Driven Development

Jakub Nabrdalik

I’ve been using TDD/BDD at work for the last 12 years, I also teach and mentor teams on this subject. I’ve found that misconceptions and errors in this field are shared, and that most of us make the same mistakes. Give me 45 minutes of your time, and I’ll try to address the most common problems, hoping to improve your TDD/BDD situation as much as possible. I’ll try to solve: Long running tests problem, by bringing back the correct shape of test-pyramid with power of Hexagonal Architecture (Ports & Adapters) with practical examples in Spring. Miscommunication and lost art of requirement gathering, by focusing on readability, introducing just enough of Domain Specific Language, and sorting out what is important with the power of Spock. Difficult test setup and environment requirements, by using command and conquer & modularity. And hopefully more. Most teams that do not write tests first do it, because it’s hard for them. I’ll try to show you, how to make it easy. Real life examples included. If you are not using TDD/BDD, this might also interest you - you’ll know how to start the right way.

15.45 – 16.00

Coffee Break

16.00 - 17.00

Rewriting - Preserving Behavior With New Code

Michael Feathers

Yes, we know we are supposed to refactor. That is how we get from A to B when we perform structural transformations. But, invariably, we often end up rewriting code. How do we know whether we’ve done it correctly? What are the strategies? In this session, Michael Feathers will demonstrate a set of testing and analysis techniques that help you reverse engineer existing code and verify rewritten code. These techniques can be used to augment the standard refactoring practices that we use.

17.00 – 17.15

Coffee Break

17.15 – 18.15

Step by step guide to applying Deep Learning to solve practical use case

Pawel Balon

Presentation tries to demystify deep learning - what is real value behind the hype nowadays. After short introduction about neural networks and how they can help solve problems Pawel will jump straight into very concrete use case. Using them to help detect financial crimes. It will be step by step guide. From understanding what problem we want to solve to engineering data required to do so, choosing proper architecture of the network and finally building the model.

18.15 - 18.30

Closing Ceremony

About UBS

UBS Technology

Technology in UBS is huge, from administrating our hardware estate comprising tens of thousands of severs to building business critical applications, such as our Regulatory reporting solution, notifying all jurisdictions in real time; our settlement system with 25 million daily transactions or our collateralisation engine, managing the equivalent of the GDP of Poland.

We work lean, in Scrum and Kanban. We develop talent from Graduates to Architects. We work globally, from Sydney to New York, London to Hong Kong. And we work in co-located application teams, empowered to deliver and to challenge. We are Software Engineers, System and Business analysts, Delivery and Project Managers, QAs, Support Engineers and Architects. We are UBS.

UBS

Global? Local? We're both.
We’re about 60,000 employees, in almost 900 offices, more than 50 countries and all major financial centers. A truly global business, working together hand in hand. That’s who we are.
The UBS offices in Krakow and in Wroclaw play an important role in achieving our goal of being the best global financial services company. Like other UBS offices, we succeed by focusing on quality, efficiency, excellence and innovation.
We work with our UBS colleagues across the globe on a variety of projects and processes that require varied language abilities, subject matter expertise and critical thinking skills.

People. Perspectives. Personalities.
People with intelligence, integrity and drive. People with experience, or who are eager to learn. People able to do good things for our clients, make a positive impact on our business and help us as we continue to transform our firm. At UBS, we aim for excellence in all we do and this begins with our employees. It is fundamental to our continued success that we hire highly talented individuals, support their ongoing development, and leverage their skills to meet our clients' evolving needs.