Opening keynote: Spearheading the future of programming
The exciting field of programming is one part engineering and one part art. We, as humans, have been programming for a few decades. Every few years we see a significant change to how we develop applications. Some changes are small, while others are significant. They're disruptive and change the way we think, design, and develop. In this presentation we will take a look at some changes that are currently happening and some that are just around the corner. We will take a look at why these changes are important and how they will change the way we create and deliver application.
The business impact of code quality
Code quality is an abstract concept that fails to get traction at the business level. Consequently, software companies keep trading code quality for new features. The resulting technical debt is estimated to waste up to 42% of developers' time, causing stress and uncertainty, as well as making our job less enjoyable than it should be. Without clear and quantifiable benefits, it's hard to build a business case for code quality.
In this talk, Adam takes on the challenge by tuning the code analysis microscope towards a business outcome. We do that by combining novel code quality metrics with analyses of how the engineering organization works with the code. We then take those metrics a step further by connecting them to values like time-to-market, customer satisfaction, and road-map risks. This makes it possible to a) prioritize the parts of your system that benefit the most from improvements, b) communicate quality trade-offs in terms of actual costs, and c) identify high-risk parts of the application so that we can focus our efforts on the areas that need them the most. All recommendations are supported by data and brand new real-world research. This is a perspective on software development that will change how you view code. Promise.
Test Coverage Beyond Unit Testing
Unit tests are the bread and butter of any project's quality assurance process. We software developers have been used to writing them and measuring code coverage in our continuous integration pipelines for years. There is tooling that helps us find untested areas, records the coverage percentages, and notifies us if the changes cause a drop in the test scope.
Sometimes we need more than unit tests. Mocking the external functionality might be so laborious that wasting the team's resources on creating the mock code doesn't make sense. A test setup that resembles the software's actual use is more suitable in these cases. One runs the executable with the external dependencies without any unit testing tooling. However, orchestrating this setup in a continuous integration pipeline may be challenging. Not to mention further integrating the tests with coverage monitoring, similar to unit tests.
Findy Agency (https://findy-network.github.io/) is an open-source project developing a decentralized identity agency based on microservices architecture. The team recently refactored their test pipelines with the help of Go-toolchain and GitHub actions. The changes enable them to monitor the test coverage and quality better and share the test scripts effectively between different services.
Cavepeople in the 21st Century - Story of Elephant Riders and Corporate Crocodiles
The elephant represents the subconscious and emotionally driven part of our brains, while the rider, on the other hand, represents the rational and thinking part. The elephant is mainly a gentle companion, but when it gets upset, it can drag along an even stronger rider. Why does this matter? Because of people. If you want to know why how we feel matters at work.
Come and listen through Elephant trials in the Savannah of Solutions and meet his friends and adversaries Control Giraffe, Process Best, Corporate Crocodile and Awesome Owl. We also discuss some science behind.
Principles of Effective Developers
Everyone wants to work more effectively, smarter, and get more done. We developers want to focus on what adds value, increase our development speed, and cut out all the cumbersome, boring and repetitive tasks.This session shows principles how to accomplish the goal of being more effective and efficient as developer. We’ll see how to automate the boring parts of our job, what big and small tips and tricks help us, which mindsets to follow, why we have the best job ever, and how to enjoy our work even more. This hopefully entertaining talk is not limited to specific tools or technologies, yet it’ll provide helpful examples and experiences.
Harnessing the Power of AI for Business Impact
Artificial Intelligence (AI) has become an integral part of our daily lives, from personalized recommendations to voice assistants. But how can businesses truly harness the power of AI, specifically large language models (LLMs) like OpenAI's ChatGPT, Bing Chat, and Google Bard, to generate tangible return on investment (ROI)? In this engaging talk, we will delve into the practical applications of LLMs in the business world, focusing on driving value and managing associated challenges.
LLMs, comprised of enormous datasets, hold incredible potential, but only a small portion of their knowledge may be applicable to your specific business needs. How can we extract valuable insights from these vast resources? We will discuss strategies for employing LLMs effectively in enterprise contexts, maximizing their relevance, and deriving meaningful ROI.
Our session will feature a live demo showcasing an AI-driven integration project, in which we implemented an LLM-based Teams Chat Bot to streamline information sharing across organizational departments. Witness how effortless access to company-wide data can lead to increased efficiency and improved decision-making, benefiting various stakeholders.
We will also address potential pitfalls and risks associated with LLM utilization, underscoring the importance of striking a balance between leveraging AI for business growth and mitigating exposure to unforeseen challenges.
Join us as we explore the untapped potential of LLMs, sharing practical insights and examples to help businesses unlock the true power of AI and revolutionize their operations. Don't miss this opportunity to gain competitive advantage in the ever-evolving world of technology.
Serverless Data Streaming with Amazon Kinesis and AWS Lambda
Need a near real-time serverless data streaming application? Take a Kinesis Data Stream, connect it to an AWS Lambda, and you are done! Easy! Is it, though? But what if..? Let's start right there!
In this talk, I will walk you through building scalable, production-ready data streaming applications using Amazon Kinesis Data Streams and AWS Lambda. There will be plenty of tips, best practices, and "gotchas" based on firsthand experience building serverless near real-time data streaming architectures. Together we will see how AWS services work and fail, and learn to embrace the failures. Because as Dr. Werner Vogels likes to say: everything fails, all the time.
The Shitposting AI - An Ironic Solution to Fruitless Online Debate
Online Discussion is the neverending agony of modern society. Let's break the cycle with AI! We created fully autonomous robot heads that engage in heated social media discussions, completely taking the human out of the loop, powered by AI systems like OpenAI's GPT and Google's Tacotron II.
Social media comments have become the predominant medium for public discussion. However, discussions on Facebook, Twitter and Reddit are notorious for their poor debate culture and missing conclusiveness. The obvious solution to this tremendous waste of time is automation of such fruitless discussions using a bot.
In this talk, we will give an overview over the process of building an end-to-end Natural Language Understanding (NLU) system that automates this kind of discussion. We will give insights into the inner workings of Large Language Models (LLMs) such as GPT and how to continously train such LLMs on the current hot topics of Twitter and Reddit. Finally, we will talk about building humanoid robot heads that bridge the uncanny valley and how to give these heads a voice with Text-To-Speech (TTS) engines.
As developers, we spend a lot of time learning to write code, while spending little to no time learning to read code. Meanwhile, we often spend more time reading code than actually writing it. Shouldn’t we be spending at least the same amount of time and effort improving this skill? Deliberate practice can help us get better at reading code. Learning how to better read and understand code, can in turn teach us what makes code readable. This might even help us to write code that is easier to read.
In this talk we will discuss the benefits of deliberately practicing reading code in a code reading club or session without an IDE, as well as common strategies to navigate a new codebase and familiarise ourselves with the code using the IDE.
WebAssembly beyond the browser
WebAssembly (Wasm) is a technology that allows you to compile code written in over 40 programming languages and run it in a secure and performant way in web browsers. The WebAssembly System Interface (WASI) has expanded the capabilities of Wasm by enabling it to run outside the web browser, in environments such as server-side applications, edge computing, and cloud microservices. Docker has also recently announced support for Wasm, allowing it to be used as a lightweight alternative to Linux and Windows containers.Whether Wasm will replace containers remains to be seen but it’s definitely worth learning more about it. In this talk, I’ll introduce Wasm, the basic terminology around it, and its current state as a server side technology. We will also look at some examples and tools for working with Wasm on the server side.
Next-gen CI/CD with Gitops and Progressive Delivery
Even though you might be using Continuous Integration and Delivery, chances are you are still not 100% sure things will roll out without a glitch once you go to production. There will always be differences between environments and a risk for unforeseen issues related to your production environment and/or actual load, leading to potential disruption to your customers.
Progressive delivery is the next step after Continuous Delivery to test your application in production before it becomes fully available to all your user bases.
Embrace GitOps and Progressive Delivery with techniques like blue-green, canary release, shadowing traffic, dark launches and automatic metrics-based rollouts to validate the application in production using Kubernetes and tools like Istio, Prometheus, ArgoCD, and Argo Rollouts.
Come to this session to learn about Progressive Delivery in action using Kubernetes. And to have some fun as well as we release a car racing game you can participate in :)
Generative AI in practice: Concrete LLM use cases in Java, with the PaLM API
Large language models (LLMs) are a powerful new technology that can be used for a variety of tasks, including generating text, translating languages, and writing different kinds of creative content. However, LLMs can be difficult to use, especially for developers who are not proficient in Python, the lingua franca for AI. So what about us Java developers? How can we make use of Generative AI?This presentation will go through how to use LLMs in Java without the need for Python. We will use the PaLM API, provided by Google Cloud’s Vertex AI services, to perform a variety of tasks, such as searching through documentation, generating kids stories, summarizing content, extracting keywords or entities, and more.
Creative Coding with Kotlin and Compose
Programming doesn’t always have to be about mobile, web applications, and databases. Instead, let’s have some fun and use Kotlin to create something expressive, beautiful, and eye-catching.
In this session, Anton will explore Compose Multiplatform for creative coding with Kotlin. We’ll start from the basics by drawing some geometric shapes on the canvas. Then, by applying some basic math, we’ll see how geometric shapes can transform into tangible, visual artwork that you might want to put on your living room wall!
Let's Get Lazy
How can big data or highly responsive applications scale to the increasing demands for speed and short response time? Adding more servers to the cluster is not the answer. The smartness comes from being lazy as laziness can translate to efficiency and scalability. In this presentation we will learn about what lazy evaluation is, explore some data structures and APIs that promote lazy execution, and tie it back into scalability and efficiency.
DevOps-Team is a Myth
DevOps was born out of the need to speed up software development by combining functions (dev+ops) and removing silos between them. It is primarily a mindset and culture. We are seeing more and more DevOps roles and teams in places where they didn't exist before. So what happened to the holistic way of working and what made it revert back to separate roles and teams? We are once again in a situation where someone else is taking care of the teams' tools, release pipelines, or infrastructure. There shouldn't be any DevOps teams. The DevOps team is a myth!
How to choose the right database for your application
In this talk, we will review the strengths and qualities of each database type from their particular use-case perspectives. Although having everything in one database seems like the straightforward path, it is not always the most cost or time effective path. Many Databases have become more specialized for the types of data they handle. Learn how to make the right choice for your workloads with this walkthrough of a set of distinct database types (graph, in-memory, search, columnar, document, relational, key-value, and time series databases). Learn about current trends in the database ecosystem and then learn about a number of different specialized databases and their strengths and weaknesses. This presentation will go over some of the fastest growing segments in the database space.
Closing keynote: Developer Joy – How great teams get s%*t done
Software development has become more complex over the years: Building and running a distributed architecture in the cloud, ensuring observability, discussing user experience with design and product, and keeping a healthy balance between dev speed and code quality isn’t easy. Just be agile and practice DevOps, they say.
Join Sven and learn how great software teams measure and improve their developer experience, coordinate work across teams, run autonomous but highly aligned teams, and create a healthy and joyful engineering culture. Always backed up by data (not driven) instead of opinions.
The talk will demonstrate how great teams faced development challenges, reinvented themselves, and created new ways of working to get s%*t done. Without loosing sight of what makes this craft fun for engineers.
Some drinks and mingle
Multidisciplinary Technologist with 16 years worth of continuous learning on how to deliver business critical systems. Broad perspective in to the cloud industry and where the technology is heading. Experience in designing sustainable software delivery and in facilitating a globally distributed DevOps operation.
Mattias is the founder of the conference Jfokus and and FooConf and he loves the community. Through the years he has gained experience from many different roles, including developer, architect, team leader, coach and manager. In his spare time, Mattias can be found snowboarding with his family or riding his motorcycle.
Event organizer and international project manager. Great organisational skills, expert in problem solving with ability to adapt. Great team player and not afraid of taking initiatives.