Lean has been applied as a toolkit to fine-tune development processes and organisational workflow, but what does it mean when we apply the practices to the detail of the code, the practices used to develop it and the people who develop it? What does Lean Code and its creation look like?
There is a need to move beyond often separated worlds of software craft and agile development, to properly embrace code in its detail, but to also connect it more completely to the flow of business and the intelligence of people around it. To move beyond simple exhortations of clean code to something more human.
This talk offers a fresh look at Lean principles and practices from the perspective of the code and the coder, rather than the usual scale of the organisation and the development process.
We often talk about good code — that we would like to write it, that there isn't enough of it, that it should not be considered an optional attribute of a codebase. We often talk about it but, when it comes to being precise, we don't always agree what constitutes good code, nor do we necessarily share a common view on its value.
This workshop explores what properties we want from a codebase and, therefore, what we can deduce to be good. These conclusions can sometimes be surprising and counter-intuitive! This session will explore some common guidelines on what is considered good, from expression to subsystem, from naming to tests, from fluent to SOLID. We will look at the consequences of good and not-so-good code from point of view of economics, day-to-day work, people and runtime performance and reliability.
Kevlin Henney consultant, Curbralan
Kevlin Henney is an independent consultant, speaker, writer and trainer. His development interests are in patterns, programming, practice and process. He has contributed to open- and closed-source development, has been a columnist for a number of magazines and sites and has been on far too many committees (it has been said that "a committee is a cul-de-sac down which ideas are lured and then quietly strangled"). He is co-author of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages and editor of 97 Things Every Programmer Should Know. He lives in Bristol and online.
Kafka Streams is a library for developing applications for processing records from topics in Apache Kafka. It provides high-level Streams DSL and low-level Processor API for describing fault-tolerant distributed streaming pipelines in Java or Scala programming languages. Kafka Streams also offers elaborate API for stateless and stateful stream processing. That’s a high-level view of Kafka Streams. Have you ever wondered how Kafka Streams does all this and what the relationship with Apache Kafka (brokers) is? That’s among the topics of the talk.
During this talk we will look under the covers of Kafka Streams and deep dive into Kafka Streams’ Fault-Tolerant Distributed Stream Processing Engine. You will know the role of StreamThreads, TaskManager, StreamTasks, StandbyTasks, StreamsPartitionAssignor, RebalanceListener and few others. The aim of this talk is to get you equipped with knowledge about the internals of Kafka Streams that should help you fine-tune your stream processing pipelines for better performance.
This workshop is designed to help you master the elements of Kafka Streams in just one day! After the course, you should have a better understanding of Kafka Streams as a library for developing applications for fault-tolerant distributed streaming pipelines.
The workshop is intended for software developers and IT architects.
The Elements of Kafka Streams Application Development
High-Level Streams DSL
Low-Level Processor API
Scala APIfor Kafka Streams
Stateless Stream Processing
Stateful Stream Processing
Monitoring Kafka Streams Applications
Contenerized Kafka Streams Deployment (using Docker)
No prior experience in Kafka Streams required.
Some programming experience in Java or Scala expected.
Basic experience in Apache Kafka expected
Jacek Laskowski Spark, Kafka, Kafka Streams Consultant, Developer and Technical Instructor, Independent / Self-Employed
Jacek Laskowski is an independent IT consultant, software developer and technical instructor specializing in Apache Spark, Apache Kafka and Kafka Streams (with Scala, sbt). He offers software development and consultancy services (e.g. performance tuning, workshops, mentoring).
Supercomputer-worthy memory and core counts have much more approachable to mere mortals. "What can it do" is the obvious follow up question, leaving "mining" and "mirkoservices" aside
One use-case is simulation, especially based around agents.
I will talk about agent based modelling, from the point of view of a developer building the framework, focusing on some interesting, non-trivial or plain old surprising experiences I'm getting building a JVM-based agent-based modelling SDK at Simudyne. We will talk performance, distributed systems, multithreading and SDK design. We will not cover statistics or modelling, but I'll be happy to talk in person.
Andrzej Grzesik distributed systems mage, Simudyne
ags likes distributed systems in all shapes and form. Coding since the age of 8, loves simplicity and continuous delivery. While he has written in many languages, he favours the JVM. Since "most software problems are people problems", he stirs communities, organizes and speaks at conferences (proud to be a JavaONE Rockstar!). He is passionate about all things data, because science!
In his spare time… cycling, photography and books. And he is a Java Champion!
AWS Lambda z roku na rok staję się coraz ciekawszym uzupełnieniem narzędzi dostępnych w chmurze AWS. Zespoły wykorzystujące chmurę AWS już teraz powinny być świadome kiedy i jak efektywnie wykorzystać to narzędzie. W czasie prezentacji pokażę przykładowe zastosowanie AWS Lambda do rozwiązania realnego problemu w projekcie. Omówię też najważniejsze aspekty, których świadomość może wpłynąć na kształtowanie architektury systemu wykorzystującego AWS Lambda.
Łukasz Wachowicz Consultant, Meelogic
Łukasz ma 13 letnie doświadczenie w branży IT. Pracował do tej pory jak inżynier, tech leader, architekt, analityk pre-sales. Od 3 lat współtworzy Bydgoszcz JUG. Zawodowo od niedawna związany z firmą Meelogic.
Uczenie maszynowe to dział nauki/inżynierii, którego popularność w ostatnich latach eksploduje. Ogromne zapotrzebowanie na specjalistów w tej dziedzinie widać już za oceanem, natomiast w Polsce ta dyscyplina dopiero raczkuje. Wygląda na to, że za 10-15 lat uczenie maszynowe będzie wszechobecne również na naszym podwórku, dlatego właśnie teraz jest najlepszy czas, żeby spróbować zostać tzw. data scientistem.
Patryk Miziuła Data Scientist, Deepsense.ai
Patryk po obronie doktoratu z matematyki pracował jakiś czas na uczelni. Potem postanowił spróbować swoich sił w uczeniu maszynowym. Został data scientistem w deepsense.ai, uczestniczył w projektach dotyczących m.in. kryminologii i medycyny. Od roku prowadzi również warsztaty i wykłady z uczenia maszynowego dla firm i uczelni na całym świecie. Od stycznia 2019 pomaga w rozkręcaniu biura deepsense.ai w Bydgoszczy.
Today, the most prominent uses of blockchains are cryptocurrencies. Cryptocurrencies, with bitcoin being the best known, provide a fresh approach by trying to decentralize payments. They reduce the dependency on central actors such as banks and thus were able to differentiate themselves from traditional means of paying.
As bitcoin’s value rose, cryptocurrencies were quickly hyped to be the future and are widely regarded as new and exciting payment systems. However, so far, no cryptocurrency has achieved comparable market penetration to other systems such as credit cards or bank transfers. Why is this the case?
In this talk, we’ll take an in-depth look at how we pay today: Both from a technical perspective as well as what societies and businesses expect from payment systems. With this background, we will then examine why cryptocurrencies have not gained mass adoption (yet) and what needs to be considered when trying to become a mass market payment system.
David Bellem CTO, Payworks
David is a founder and CTO at Payworks. Being a physicist by education, David is responsible for all the inner workings, security, and certifications of the Payworks technology platform. He attended LMU Munich, Universität Stuttgart, University of Alberta and CDTM Munich and holds degrees in Physics and Technology Management.
More often than not companies tend nowadays to adopt microservice based architectures. Last years saw new peaks in terms of innovation in this field, mainly driven by the needs of this influx of adopters. We now have better continuous delivery pipelines, we made huge steps in terms of orchestration, we monitor our systems in a useful way and the list can go on.
What about authentication and access control in such a partitioned environment? Apparently neglected at the beginning, more and more companies are taking now a closer look at security in a microservice based architecture. Do we need to authenticate systems against each other? How can we store credentials securely? How do we revoke and rotate credentials? How do we maintain authentication and authorisation configurations when systems scale up?
In this talk I will show you a tool which answers all these questions and many more. You will learn what Vault is, what are its key features and how you can use it to build scalable and maintainable authentication in your microservice based architecture.
Andreea Bogdan Software Engineer, Payworks
Andreea’s career revolved over the years around being a backend developer, but her experience ranges from Java development, to test automation and product ownership. Always ready for a new challenge, she is currently working in the devops team at Payworks, trying to connect the development and the infrastructure worlds together.
The Agile 101 is a fast and low flyby on some agile topics. It will show where agile approaches have the most effect, why it evolved, why the classical way of developing software is doomed to fail, what mindset is needed. It also covers principles and practices, some methods. The workshop is enriched with joyful hands-on-experiences and real-life camp fire stories and examples.
What is your perfect work environment? Let’s find out using the LEGO® SERIOUS PLAY® Method!
LEGO® SERIOUS PLAY® is a facilitated workshop method for groups to solve complex problems and to decide on strategic issues. Unlike other methods, LEGO® SERIOUS PLAY® makes challenges and possible solutions tangible, making use of the full potential and creativity of all participants. This short workshop will give you a hands-on experience with the method.
Torsten Wunderlich Agile Coach Custom designed workshops using the LEGO® SERIOUS PLAY® Method, Payworks
Torsten Wunderlich, a.k.a. Totti, is a full blooded engineer who turned agile more then ten years ago. He has worked in small, big, and very large projects and it dawned him some day, that it is the people and their mindset that make the success of a project or company. Today Totti is in the Scrum Master and agile coach role for some teams at Payworks. Totti added the LEGO® SERIOUS PLAY® method to his toolbox six years ago and has become more then a huge fan of the method.
Bywają projekty w których nie jesteśmy w stanie w racjonalnym czasie podbić wersji Javy. Dodatkowo patrzenie na spagetti code sprawia, że tracimy jakąkolwiek motywację. O tym jak RxJava pomaga poprawić sytuację w różnych aspektach. Pokażę między innymi jak tworzyć bardziej responsywne UI, jak poprawianić architekturę aplikacji oraz jak uprościć aspekty wielowątkowości przy użyciu javowej implementacji ReactiveX.
Paweł Matyjasik Senior Software Engineer, infoShare Academy Trainer, Epam