Byte My Code
2019 about

The third edition of the ByteMyCode conference by UBS is coming up! Join hundreds of developers at Strefa Kultury Studenckiej in Wroclaw on November 30th to hear about the topics that will shape technology in the near future.

We will welcome you with cups of hot UBS coffee and a big hug from our green ByTech monster who will introduce you to the main theme: The Modern Engineer.

Our speakers will cover the most important tech issues of 2019 and will introduce you to the leading IT trends coming in 2020. You can expect a lot of deep-dive talks on Machine Learning, AI, Data Science and JavaDevelopment, followed by networking activities and personal meetings with world-known IT experts!

The participation fee is symbolic and will be donated to The Hearty Foundation - the organization that supports children from Orphanages, kids with disabilities and students from smaller towns.

Registration

Join a group of geeky programmers and enthusiasts who are gathering in Wroclaw to meet the biggest stars of the IT world. Participation fee is symbolic and lets you contribute to a good cause!

All the money from ticket sales goes to the Hearty Foundation. Our event has limited numbers of seats so make sure to book one for you right now!

REGISTER


ByteMyCode Academy

ByteMyCode has premiered as a conference dedicated to engineers. Since the event grows fast and we have already built an active and devoted community around ByteMyCode and our ByTech monster, we decided to contribute even more to the IT space in Wroclaw. That is why we are launching ByteMyCode Academy - a project aimed at IT students who want to take their first steps towards their professional career. Workshops, lectures, and inspiring IT talks on the entry-level - that is what ByteMyCode Academy is all about! So students: join our very first workshop by ByteMyCode Academy!


Workshops organized in cooperation with Wrocław JUG:

Wrocław Java User Group (Wrocław JUG) is a group of Java enthusiasts, programmers, and architects. We deepen our knowledge, learn new technologies, frameworks, and methods for creating applications on the JVM platform. We also take care of other competences needed in professional life (e.g., software craftsmanship or related technologies). To this end, we regularly meet at presentations and workshops to exchange knowledge. There are already 2600 of us. Join us!

REGISTER FOR WORKSHOP

DL4J Workshops (DeepLearning4Java) - Marek Będkowski

Difficulty level: medium
Duration: 3-4h
Maximum number of participants: 15

Description: Starting the adventure with neural networks from scratch can be difficult because of the enormity of knowledge needed to understand their operation, but also because of their turbulent development in recent times, plus most of the material is available in Python. In terms of technology, the deeplearning4j framework comes handy, but the question remains: where to start?

During the workshop, we will go through the examples attached to the framework, analyze the blocks from which they are built and using 2 of them we will make a simple rest api for image processing.

Later, using the learning transfer and zoo model, we will build our own network based on darknet / yolo architecture. The last practical element will be to build the backbone of your own CNN network and translate mathematical notation into practical matrix operations.


Introduction to Kotlin - Paweł Włodarski

Difficulty level: medium
Duration: 4h

Maximum number of participants: 20 Description: You do not have to know Kotlin, because we’ll start from scratch. What will be useful is the knowledge that there is some bytecode on JVM and basic knowledge of the button to start tests in Intellij.

Following the plan, we will start with OOP, which should be friendly to Java programmers, and then, through FP and other characteristic features of Kotlin we will reach Spring and Reaktor. However, we do not have to go as planned. I hope the workshops will be interactive.


How to tame tests - TDD workshops - the ability to write code and tests in Java at a basic level, knowledge of Mockito welcome;) - Ola Kunysz

Difficulty level: easy / medium.
Maximum number of participants: 10-12 (even)

Description: Writing unit tests is a key skill in working with code. During TDD workshops, you’ll get used to red tests and build some good habits, above all. Working in pairs and pair programming can be a challenge. All these skills are used in everyday work in the project.


Java in a declarative and functional style - Piotr Przybył

Difficulty level: medium
Duration: 3h

Description: Java is not a full-featured language. However, since version 1.0 (inspired by imperative languages in the C / C ++ style) it has come a long way in the declarative and functional style.

Workshops on how to create better code in Java 8+, moving from imperative style to declarative and functional style. (And why not mindlessly paste the old code from the Internet.)

Speakers


Krzysztof Kudryński

Senior Deep Learning Engineer w NVIDIA


Oleh Dokuka

Reactive Streams Advocate


Diego Hueltes

Machine Learning Engineer at Ravenpack


kpt. Dariusz Kulik

Pilot samolotów pasażerskich i instruktor szybowcowy


Jarek Ratajski

Software Anarchitect, JVM Developer since 1999


Nicholas Frankel

Dev Advocate @Hazelcast


Milen Dyankov

Developer Advocate, Liferay


Mateusz Biliński

Head of Mobile Security at Niebezpiecznik

Agenda 2019

8.00 – 8.50

Registration

8.50 - 9.00

Official Welcome and Introduction

9.00 - 9.45

Decomposing Java applications

Milen Dyankov

Most Java developers happily use libraries in their applications. Many developers split their own code into what they call modules. The benefits of that approach are obvious. But why is it that some libraries/modules are easier to use then others? Why most of us end up having a big ball of mud sooner or later? Why simply cutting things down into smaller pieces and calling them libraries, modules, microservices, … does not always help? In this talk we’ll go one abstraction level above and look at the process of composing a Java application from components. But what is more important, we’ll see how to decompose an application into reusable components.

9.45 - 10.30

Multiplayer Pac-Man with RSocket

Oleh Dokuka

One of the challenging aspects of building modern games is making it multiplayer. Can we use HTTP there? We can, but we will not get a real-time game. Can we use WebSockets / TCP? Of course, we can and we should! However, developing API on top of WebSocket is another challenge that no one wants to solve, but everyone does. Existing libraries do not give us a required variety of communication models. Today we will show you the way to tackle this - using RSocket. RSocket is an application protocol that makes developing any networked application as easy as pie. To prove that, we are going to build a multiplayer Pac-Man, and during the process compare different ways of making a multiplayer game.

10.30- 11.00

Coffee Break

11.00 – 11.45

Securing the JVM

Nicholas Frankel

Consider a Java application in a private banking system. A new network administrator is hired, and while going around, he notices that the app is making network calls to an unknown external endpoint. After some investigation, it’s found that this app has been sending for years confidential data to a competitor (or a state, or hackers, whatever). This is awkward. Especially since it could have been avoided.

Code reviews are good to improve the hardening of an application, but what if the malicious code was planted purposely? Some code buried in a commit could extract code from binary content, compile it on the fly, and then execute the code in the same JVM run… By default, the JVM is not secured! Securing the JVM for a non-trivial application is complex and time-consuming but the risks of not securing it could be disastrous. In this talk, I’ll show some of the things you could do in an unsecured JVM. I’ll also explain the basics of securing it, and finally demo a working process on how to do it.

11.45 – 12.30

Spring, Jakarta EE, CDI and other pathologies

Jarek Ratajski

If You code in Java You probably deal with the frameworks mentioned in the title. Maybe You even started to believe that they help You to write code faster, safer and easily testable. Well, that is just marketing. You encounter and solve problems cause by those platforms everyday and You simply ignore the costs ... because You do not know the alternatives. In this session I show why the king is naked (all the kings), why no serious project should use all those Bean based frameworks on production. I will show problems are caused by container dependency injections and present more then 10 reasons why annotations such as @Transactional fail miserably - and You do not even notice. Platforms that were created to solve problems of distributed programming and web development 20 years ago do not really help us that much in 2019. For, we have really better and safer alternatives now.

12.30 – 13.30

LUNCH BREAK

13.30 - 14.15

Hacking (with) AI

Mateusz Biliński

Funny and scary stories about tricking humans and machines. Bytes of information, knowledge and experience from the joint of AI and security worlds. Presentation focuses mainly on limitations of current machine learning system and their efficiency in building human-focused manipulations. Both in physical and digital realm. In parallel, possible solution to currently outstanding problems will be put into perspective including it's current usability grade.

Main goal is to inspire participants to look in a new, fresh way at cores of algorithms, that are being introduced into rapidly rising number of devices, machines and products around us.

14.15 - 15.00

Deep Learning in Computer Vision

Krzysztof Kudryński

When we look at the world our brain instantly turns the images we see into information, intuition and feeling. It does so with an enormous computational effort, using a network with overwhelming, unexplored architecture. We are not even close to create a machine of comparable cababilities, but step by step, improving both the hardware and algorithmic approach, we can make machine understand images they see.

In this talk you will learn how to design and develop such a network. We will go from the basic machine learning concepts, through the advanced practical tips, up to using the most-recent state-of-the art architectures in practice. You will see examples on how insanely complicated problems can be solved using a portable computer. And in the meanwhile you will understand what is going on, why new layers are added and why new concept have to be introduced. While this presentation briefly introduces all the basic concepts, as we move on it quickly touches advanced and expert areas of the field.

15.00 – 15.15

Coffee Break

15.15 - 16.00

Data Science for Lazy People, Automated Machine Learning

Diego Hueltes

Data science is fun, right? Data cleaning, feature selection, feature preprocessing, feature construction, model selection, parameter optimization, model validation – oh wait – are you sure? What about automating 80% of the work even doing better choices than you? Automated Machine Learning has arrived to be your personal assistant in Data Science.

16:00 - 16.45

Jakie oprogramowanie jest pomocne pilotom? Czy zbytnie zaufanie komputerom powoduje zanik umiejętności pilota? Awaria systemów i błędów oprogramowania a wyszkolenie pilota.

Kapitan Dariusz Kulik

1. Oprogramowanie pomagające wyliczyć osiągi, do startu , lądowania, w przypadku zmian konfiguracji samolotu, awarii. Programowanie do komunikacji z firmą, przesyłanie dokumentacji ogólnej, jak i dotyczącej konkretnego lotu (pogoda, dokumentacja operacyjna).

2. Oprogramowanie w systemach sterowania samolotem i jego nadużywanie. Nadużywanie (komputerów) w związku z dbałością o komfort pasażerów a zapominanie o bezpieczeństwie.

3. Oprogramowanie pomagające w radzeniu sobie z standardowymi awariami, zabudowane zarówno w samolocie jak i na urządzeniach dodatkowych (tablety). Brak możliwości uwzględnienia wszystkich kombinacji awarii w algorytmach. Problemy z analizą danych z czujników zewnętrznych i próby radzenia sobie z tym.
Piloci jako ostatnia deska ratunku …

16.45 - 17.00

Prize Draw and Goodbye

About UBS

UBS Technology

Technology is at the very heart of UBS. As a team of thousands of talented women and men, we have a critical role to play in building, delivering and maintaining the systems, services and infrastructure that power our business. So, banking is technology; but really technology is people—and every person has a crucial role to play on the UBS Technology team.

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. Join us in Wroclaw and Krakow.

UBS

UBS provides financial advice and solutions to wealthy, institutional and corporate clients worldwide, as well as private clients in Switzerland. We’re about 60,000 employees, in almost 900 offices, more than 50 countries and all major financial centers.

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.



Media and Community Partners 2019

Gallery 2017

Venue

Strefa Kultury Studenckiej
Hoene-Wrońskiego 10
50-376 Wrocław
Strefa Kultury Studenckiej
Hoene-Wrońskiego 10
50-376 Wrocław