JavaZone Program 2023
Moderne brukergrensesnitt i en legacy kodebase
Speakers: Per Christian Moen, Tordbjørn Wang Eriksen
Type: Presentation 📣
Language: Norwegian 🇳🇴
NAV sin pensjonsløsning, Pesys, har i mange år vært blant Norges største og mest komplekse kodebaser. Opprinnelig skrevet med teknologi, som i dag, ville fått utviklere til å gråte. Vi skal i dette foredraget fortelle hvordan vi har modernisert det grafiske brukergrensesnittet. Vi skal rett og slett fortelle deg en ærlig historie om hvordan vår erfaring med dette var. Vi kommer til å snakke om den moderne retningen som premissgiver, hvor vi måtte ta tak i både menneskelige og tekniske utfordringer. På veien skal vi også prate om vi organiserte teamene og folkene, og fortelle hvordan vi tok tak i arkitekturen og det sosniotekniske aspektet av det. Du skal på den måten lære hvorfor vi mener dette økte selvsikkerheten og eierskapet til alle involverte. Videre deler vi hvordan vi har løst de tekniske utfordringene omkring implementasjon; integrasjon og sikkerhet ved å blant annet bruke api gateways og micro frontends. Etter å ha hørt foredraget vil du være i stand til å bedre ta tak i modernisering av legacy-kodebase i din organisasjon.A software developer's guide to licenses and other legalities
Speakers: Rafael Winterhalter
Type: Presentation 📣
Language: English 🇬🇧
In the fast-paced world of software development, it is critical for developers to have a clear understanding of the legal landscape surrounding the software that they develop. This presentation will look into the different branches of software licenses and open source. In this context, the presentation will discuss common terms of commercial agreements and what pitfalls to avoid. Finally, this presentation will look into the OpenJDK project and its formal organization. Attendees will gain a solid understanding of the legal and technical considerations of choosing licensed software, enabling them to make informed decisions about their projects.Free enterprise search with OpenSearch
Speakers: Martin Toshev
Type: Presentation 📣
Language: English 🇬🇧
Elasticsearch is nowdays a preferred solution for enterprise search. You may be aware that not all of its features are available for free but did you know there is a solid open source alternative created by Amazon called OpenSearch ? And in fact this free alternative is based on a fork of Elasticsearch ? There are however certain pitfalls if you prefer to go the OpenSearch route. In this session we will make a comparison between traditional Elasticsearch and OpenSearch to understand is going completely free and open source a save path.Welcome to the Jungle - A safari through the JVM landscape
Speakers: Gerrit Grunwald
Type: Presentation 📣
Language: English 🇬🇧
OpenJDK with it’s Java Virtual Machine is great but there is not only one flavour but many. There is Oracle OpenJDK, Eclipse Temurin, IBM Semeru, Amazon Corretto, Azul Zulu, Alibaba Dragonwell, Huawei Bi Sheng, Tencent Kona and many more. Did you ever ask yourself which one is better, faster, free or something similar? Or do you want to know where the differences are in those distributions, well then this session might bring some answers to your questions. It will give you an idea about what the JVM is and will cover all the available distributions not only of OpenJDK but also of GraalVM and will try to explain the differences and features of the available distributions. It will also try to give you an idea what JVM to use for specific use cases.Bootiful Spring Boot 3
Speakers: Josh Long
Type: Presentation 📣
Language: English 🇬🇧
Bootiful Spring Boot 3 Spring Framework 6 and Spring Boot 3 are here, and you know what that means. New baselines and new possibilities! Spring Framework implies a Java 17 and Jakarta EE baseline and offers new support for building GraalVM-native images and a compile-time component model in the new Spring AOT engine. It also offers a new observability layer, declarative HTTP and RSocket clients, preliminary Project Loom and CRaC support, Problem-Details support, and so much more. Join me, Spring Developer Advocate Josh Long (@starbuxman), and we'll look at next-gen Spring.Hidden security features of the JVM - everything you didn’t know and more
Speakers: Steve Poole, Simon Ritter
Type: Presentation 📣
Language: English 🇬🇧
Java 17 announced the depreciation of the Security Manager (which is ok since hardly anyone used it) but that doesn’t mean the JVM leaves you vulnerable. There are many design features in the JVM and the JDK that are there to help keep your application safe from harm. In this session, we’ll walk through these points - from compiler, to bytecode to runtime and give you a refresher on how to get the best from these features. We’ll also look at new things in the works, compile-to-native consequences and even some off-the-wall “it’s just an idea” thoughts about how to make the JVM an even more secure environment.Quarkus 3: The Road to Loom for Cheaper, Faster, and Easier Concurrent Applications
Speakers: Daniel Oh
Type: Presentation 📣
Language: English 🇬🇧
Developers have had extraordinary experiences and taken stunning capabilities while they were developing Java microservices from local to the cloud using Quarkus for the past 4 years. But there is more to come with their journey since we have just arrived in Quarkus 3 which provides good, better, and even excellent features and capabilities in terms of developer experience, performance, scalability, and cloud integration. Especially, Quarkus 3 simplifies asynchronous concurrent applications using virtual threads (Project Loom) for high scalability. In this session, we take you through how Quarkus integrates Loom for developers to make concurrent applications easier, have cheaper memory, and have high performance using virtual threads. You can also learn about what’s new in Quarkus 3 such as JakartaEE 10, MicroProfile 6, Hibernate ORM 6, and more.Mastering GC: tame the beast and make it your best ally
Speakers: Jean-Philippe Bempel
Type: Presentation 📣
Language: English 🇬🇧
OpenJDK brings GCs with different characteristics and not always easy to understand. Those GCs allows the JVM to adapt to different workloads in terms of latency or throughput. I will explain how to tame those beasts and how to take advantage of them to improve your applications and resources.You probably DON’T need a Service Mesh!
Speakers: Abdel Sghiouar
Type: Presentation 📣
Language: English 🇬🇧
Service Mesh is becoming a key component in the Cloud Native world. It allows teams to connect, secure, and observe complex microservices environments built on containers and container orchestration tools. But most Service Mesh tools are also very complex and require a lot of engineering overhead to deploy and maintain. In this talk, we will explore the considerations you have to take into account before you commit to a Service Mesh-based stack. I had the opportunity to help customers design around Istio (one of the most famous Mesh tools) and learned a lot through the years. This talk is a distilled experience of the learnings I had.Stop breaking stuff all the time!
Speakers: Oleg Šelajev, Olga Maciaszek-Sharma
Type: Presentation 📣
Language: English 🇬🇧
Verifying behaviors of the cloud-native applications and ensuring that all of the services in the system work correctly together is both crucial and challenging. Manually maintaining environments to test the correctness of the entire system is undevops-like and fragile. Luckily, modern tools can help you to build automated, reliable test pipelines, and in this session, we explore how using Spring Cloud Contract and Testcontainers together can improve your testing and deployment processes. Spring Cloud Contract is an implementation of Consumer-Driven Contracts, an approach that provides a way to easily describe and verify APIs, at the same time allowing building API backward compatibility verification into the deployment process. Testcontainers lets developers programmatically build test environments consisting of real services running in lightweight and disposable containers. It turns the process of integration testing into a seamless, unit-test-like experience. In this presentation, we’ll show how contract and integration tests complement each other and explore one of the most natural and reliable approaches to service evolution with contract testing. We’ll discuss why in Spring Cloud Contract, we’ve decided to switch to using Testcontainers as the solution for Kafka and AMQP messaging verification and demonstrate practical use-cases and code examples of how to set up both types of tests in your applications and deployment pipelines.Introduction and pitfalls of Java's new concurrency model
Speakers: David Vlijmincx
Type: Presentation 📣
Language: English 🇬🇧
Java 20 will preview one of the most anticipated features, virtual threads, and structured concurrency. It rethinks the way multithreading works in Java. It was born out of the idea that reactive Java is too complicated and blocking threads has to be cheap. Resulting in the new virtual threads that we run thousands of! The aim of virtual threads and structured concurrency is to have high-throughput lightweight threads and new programming models on the Java platform. In this talk, I will demonstrate virtual threads and how to create and manage them using structured concurrency. Furthermore, I'll provide some practical advice to avoid pitfalls when you start using virtual threads in your application.Don't Get Burned! Secure Coding Essentials in Java to protect your application
Speakers: Brian Vermeer
Type: Presentation 📣
Language: English 🇬🇧
As a Java developer, you understand the importance of writing code that is functional, scalable, and maintainable. But how about secure code? Even the most seasoned developer can make common security mistakes that leave your code vulnerable to attack. In this session, we'll explore the most common and sometimes unknown security pitfalls made by Java developers and provide practical tips for avoiding them. We'll cover everything from input validation errors to injection to file overwrites and arbitrary code execution. We'll show real-world examples of insecure code and demonstrate how attackers exploit these vulnerabilities before showing you how to fix these code constructions. By understanding how these mistakes get exploited, you'll be better equipped to write secure, bulletproof code that can withstand attacks. Whether you're a junior developer just starting out or a seasoned pro looking to brush up on your skills, this session is a must-attend for anyone concerned with the security of their Java applications. Let’s start writing secure Java code and learn how to avoid security mistakes.Building a fishy cloud datawarehouse in 2023
Speakers: Magnus Fagertun
Type: Presentation 📣
Language: English 🇬🇧
At Br Karlsen we make, buy and sell fish of all kinds, here are our experience in deploying the modern data stack , built on Airbyte, dbt , BigQuery and Apache Superset. Why we chose the components we did, and what our experience has been. When did we choose the managed version vs the open source version of a product?Unleash the Power of Open Source Java Profilers
Speakers: Johannes Bechberger
Type: Presentation 📣
Language: English 🇬🇧
Profilers help to analyze performance bottlenecks of your application - if you know which to use and how to work with them. There are many open-source profilers, like async-profiler or JMC. This talk will give you insights into these tools, focusing on: - Understanding the basic concepts of profiling like flame graphs, ... - Usage of async-profiler and JMC - Advantages and disadvantages of the different toolsEvolusjonsbiologens fem spådommer om kunstig intelligens
Speakers: Jens Andreas Huseby
Type: Presentation 📣
Language: Norwegian 🇳🇴
Evolusjonsteoriske innsikter har vært sentrale i utviklingen av kunstig intelligens. Men kan evolusjonsteori hjelpe oss å tenke litt klarere på hva som kommer til å skje rundt kunstig intelligens i årene fremover? Evolusjonsbiologen kommer med fem overraskende spådommer.Return to Planet Collections
Speakers: Maurice Naftalin
Type: Presentation 📣
Language: English 🇬🇧
The classes of the Java Collections Framework are arguably the most heavily used data structures on the planet. In their 25 year lifetime, they’ve become part of the everyday vocabulary of millions of programmers. But, actually, how good are they? And how have they changed, along with the changing priorities of the language? To answer these questions, this session will preview some of the material in the upcoming second edition of Java Generics and Collections: the new SequencedXxx interfaces, use cases for the unmodifiable collections of Java 9, best practices for using the framework, and a design retrospective distilling the experience of a quarter-century’s use of the Framework and comparing it with alternatives like Eclipse Collections and Guava. You should leave this session with a better understanding of the design forces that shaped the Framework and an improved understanding of how to get the very best out of it.Software kollapser under sin egen vekt
Speakers: Trond Arve Wasskog
Type: Presentation 📣
Language: Norwegian 🇳🇴
"Softwarekrisen" ble i industriens barndom brukt om utfordringene med å utvikle nyttige og effektive dataprogrammer på tilmålt tid. Nå, 50 år senere, er det mye som tyder på at software er i ferd med å kollapse under sin egen vekt: Det lages for mye software og for dårlig software. Vi som industri er sjanseløse på å forvalte den. Det finnes ingen magiske løsninger, men denne problemstillingen må få konsekvenser for /hva/ vi lager og /hvordan/ vi lager det.Application Monitoring with Grafana and OpenTelemetry
Speakers: Fabian Stäber
Type: Presentation 📣
Language: English 🇬🇧
OpenTelemetry is a collection of standards and tools to make it easy to get metrics, distributed traces, and logs out of applications. For example, OpenTelemetry's Java agent will instrument Java applications out-of-the-box, with no code change required. This talk shows how to use these signals for application monitoring. We will introduce Grafana's open source databases: Loki for logs, Tempo for traces, and Mimir for metrics. And we will show how to use Grafana to explore the telemetry data for an example application running on Kubernetes. Grafana and Prometheus metrics have been popular among platform engineers for monitoring Kubernetes clusters for a long time. this talk will show how application developers can benefit from Grafana as well, using open standards like OpenTelemetry, and open source monitoring backends like Loki, Tempo, and Mimir.GraalVM Cloud Native applications with Micronaut 4
Speakers: Graeme Rocher
Type: Presentation 📣
Language: English 🇬🇧
In this talk, Micronaut creator Graeme Rocher will demonstrate how to build fast efficient Cloud Native applications with Micronaut 4 and GraalVM. Taking advantage of the latest features of the Micronaut 4 and GraalVM, Graeme will use live coding demonstrations to showcase the simplifications offered by Micronaut and efficient deployment options with GraalVM.Universelt utformet CAPTCHA - er det mulig?
Speakers: Levi Sørum
Type: Presentation 📣
Language: Norwegian 🇳🇴
En redegjøring for hva CAPTCHA er og hvorfor dagens CAPTCHA løsninger ikke er tilstrekkelig universelt utformet. Dersom man ser på CAPTCHA som bruk av harde AI problemer for å oppnå sikkerhet, er det da konseptuelt mulig å oppnå universell utforming? Foredraget tar for seg dagens situasjon og mulige løsninger for fremtiden.Ikke alle angrep er slemme: DDoS innenfra og utenfra
Speakers: Ingrid G. Guren, John Arne S. Pedersen
Type: Presentation 📣
Language: Norwegian 🇳🇴
Det siste året har interessen for NRK.no økt blant utenlandske stormakter. Selv om det er hyggelig å være populær kan det noen ganger bli litt for mye. I denne presentasjonen skal vi gå gjennom hvordan DDoS-angrep oppleves hos NRK.no og hvordan vi prøver å minske konsekvensene når angrepene skjer. Vi skal også se at ikke alle angrep er fiendtlige eller kommer utenifra.Money at the Speed of Lightning
Speakers: Jørn K Baltzersen
Type: Presentation 📣
Language: English 🇬🇧
In January of 2009 the Bitcoin network saw the light of day. The Bitcoin network is many things, one of which is a challenger to the established money and payment system. However, the Bitcoin network has a capacity of 7 transactions per second. In comparison, the VISA network claims to have a capacity of 65,000+ transactions per second. Many solutions to this low capacity problem have been proposed and tried: amendments to the Bitcoin protocol, launching of new blockchains, and off-chain solutions. The Lightning Network is an off-chain solution. It lets actors operate with transactions not all recorded on the blockchain. In this talk we'll start off with the basics of the Bitcoin network. Then we'll explain how the Lightning Network is a solution to the scaling problem and how in detail the network works.Bootiful RESTful API Contracts and Restdocs
Speakers: Mario Gray
Type: Presentation 📣
Language: English 🇬🇧
This live code talk will show you how to use Spring RestDocs and Spring Cloud Contract to easily create and maintain API documentation and contract tests for your Spring Boot 3 applications. We will demonstrate how to use Spring RestDocs to automatically generate API documentation from your tests and use Spring Cloud Contract to ensure that your API adheres to the agreed-upon contracts. You will learn how to use these tools to improve the quality of your API documentation, increase confidence in changes made to your API, and minimize the risk of introducing breaking changes. With this talk, you'll be able to improve your API development process and create more robust, reliable, and maintainable APIs.The future of AI is now - Transformations in Vision and Language Processing
Speakers: Thomas Endres, Martin Förtsch, Jonas Mayer
Type: Presentation 📣
Language: English 🇬🇧
What can Artificial Intelligence achieve today? In this lecture, we will show numerous live examples to point out whether the term is an overhyped buzzword or the key technology of our digital future. The TNG Innovation Hacking Team has been working on numerous AI projects in the field of computer vision and natural language processing for years. Thomas Endres, Martin Förtsch and Jonas Mayer take you on a journey through the world of Artificial Intelligence and its architecture. Based on various innovation projects, the speakers will illuminate the basic structure of the underlying neural networks, but also their limitations. A firework of live demonstrations and showcases completes the entertaining experience. There will be neural networks creating art, deep fakes in real time, an NLP chatbot, and an AI that can generate social media comments.Ruby on the Modern JVM Using Loom, Panama, and More
Speakers: Charles Oliver Nutter
Type: Presentation 📣
Language: English 🇬🇧
JRuby brought Ruby to the JVM years ago, and since then we have pushed JVM developers for the features we need: dynamic invocation, virtual threads, native function calls. Now in 2023, we have nearly all of these features available! This talk will survey key features of the modern JVM: invokedynamic to optimize dynamic code, Loom for true userland threading, and Panama for native operations. We'll show how JRuby builds on these features to support Ruby, and how they will eventually help all JVM users, regardless of your chosen language.What are knowledge graphs, and why should you care?
Speakers: Veronika Heimsbakk, Miriam Næss Jørstad
Type: Presentation 📣
Language: English 🇬🇧
Put simply, knowledge graphs are a smart way of organizing data. They connect different pieces of information, making it easier to understand complex topics. Knowledge graphs are useful in a wide range of fields, including artificial intelligence, data management, and natural language processing. They can help improve search results, integrate data, and even uncover new insights. Additionally, knowledge graphs are valuable for decision-making, as they provide individuals and organizations with a more in-depth understanding of their information domain. So, if you're dealing with large amounts of complex (or easy) data, knowledge graphs could be a game-changer for you.The battle of the frontend frameworks
Speakers: Kristofer Giltvedt Selbekk
Type: Presentation 📣
Language: English 🇬🇧
The last couple of years, the frontend community has gone from spitting out single page applications with huge JavaScript bundles to yet again embracing the server model, with server side rendering, server components and static site generation. But what's the right tool for you? What are the tradeoffs, both in complexity, user experience and developer experience? This talk will take you on a tour through history, the current landscape – and of course – give you the answer to what you should choose.Tid for popcorn: de heteste dramaene i open-source-miljøet
Speakers: Eirik Sletteberg
Type: Presentation 📣
Language: Norwegian 🇳🇴
Bli med på en vill og underholdende reise inn i de mer betente delene av open source-miljøet! Etter en lang dag med faglige presentasjoner, kan du ta med deg noe leskende drikke og litt snacks for en saftig skravletime. Vi går gjennom noen av de mest juicy konfliktene som har oppstått blant utviklere i open source-verdenen. Historier om alt fra spektakulære GitHub-angrep, OCD-krangler om kodestil, "shitstorms" og drapstrusler, til opphetet diskusjon om tekanner. Men kan vi lære noe av alt det her? Jeg tror det. Kanskje.DevOps revolutionised software development. It's time to revolutionise data.
Speakers: Alexandra Diem
Type: Presentation 📣
Language: English 🇬🇧
What does a team of developers do in a BI and Analytics environment? The use of data analysis within a modern technology stack is at the core of a successful insurance business. Gjensidige, Norway's largest insurance company, has recently begun it's journey of moving all data operations from an on-prem data warehouse solution into the cloud. With almost 30 individual analyst teams in the mix, this task is no mean feat. Everything we do is data-driven with the goal to provide the best possible customer experience: from pricing to marketing and sales, as well as direct customer service, and claims handling. To succeed in this journey, we utilise the power of software best practices and DevOps culture: Product thinking, end-to-end responsibility, cross-team collaboration, and early problem solving. In this talk I will show how developers are a crucial resource to our success in publishing and maintaining high quality data products into our data platform by both growing and rooting DevOps culture and software best practices within our analyst teams.Moderne Retro-utvikling på Commodore 64
Speakers: Ricki Sickenger
Type: Presentation 📣
Language: Norwegian 🇳🇴
Utvikling har de siste årene blitt redusert til Jira-oppgaver, forutsigbare prosesser, og høynivå-språk. La oss ta et langt steg tilbake og se på hvordan man utvikler spill på en av meste solgte hjemmedatamaskinene noensinne. I dette foredraget vil Ricki fortelle om sin reise inn i moderne spillutvikling på den over 40 år gamle Commodore 64 maskinen.Developer Joy – How great teams get s%*t done
Speakers: Sven Peters
Type: Presentation 📣
Language: English 🇬🇧
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 losing sight of what makes this craft fun for engineers.Stateless, Data-driven UIs
Speakers: Christian Johansen
Type: Presentation 📣
Language: English 🇬🇧
React put component-driven UIs on the agenda a decade ago. Since then my approach to web development has become increasingly more data-driven to the point where my UI code is almost entirely stateless. I will show you how to successfully build data-driven components and what they're good at, and we'll explore the possibilities that open up when our UIs stop being so darn clever.Avoiding mistakes with events, one event at a time
Speakers: Andrzej Grzesik, Wojtek Ptak
Type: Presentation 📣
Language: English 🇬🇧
Some say: Use events, events are great, all will be great and rosy. Then reality bites, and.. let's talk about strangers you'd rather avoid - mistakes to make when building using events. Things change, evolve, are not and overdelivered, old events start taking a lot of space, and someone is already using the name you wanted?! Expect: problems, symptoms, consequences, and some 'get-out-of' cards. Come for the experience others gained first-hand, so you know what to avoid.Real-Time Analytics With Apache Pinot
Speakers: Tim Berglund
Type: Presentation 📣
Language: English 🇬🇧
Analytics is arguably the oldest task of digital computers, and has remained an important part of business computing during its 80-year history. What could possibly be new in this space? A better way to serialize data? A better way to run distributed queries over a data lake? An exciting new integration technology? We need all these things urgently, but to be ready for the future, we something even more: we need analytics that can deliver results to users in real time, in the interaction layer, not to internal decision makers seconds or minutes later. We need what Apache Pinot delivers. Pinot is a database optimized to serve analytical queries at extremely high levels of concurrency, at latencies measured in the tens of milliseconds, on data ingested from the streaming pipeline that underlies more and more of the systems we're building. It's an OLAP database, but one engineered from the ground up to power user-facing features, not executive-facing dashboards. In this talk, we'll look at how it's built, how to get data into it, how to query it, and the typical role it plays in a next-generation system exposing analytics-powered features to its users.Sosioteknisk systemdesign for “digitale kullgruver”
Speakers: Trond Hjorteland
Type: Presentation 📣
Language: Norwegian 🇳🇴
Begrepet "sosioteknisk" ser ut til å ha fått en renessanse den siste tiden, noe som er oppløftende med tanke på den positive effekten denne tilnærmingen har hatt for organisasjoner og deres ansatte verden rundt siden starten i de britiske kullgruvene på 50-tallet. For oss nordmenn er det enda mer relevant siden den mest betydningsfulle forskningen på denne nye måten å organisere arbeidet på ble gjort her i Norge på 60-tallet og ble til en av pilarene i norsk arbeidsliv. Spørsmålet er da hvor relevant dette er i IT, hvor vi allerede har smidig, DevOps, og andre arbeidsprosesser. Men hva med hele systemet, som organiseringen, tilpasningsdyktigheten og trivselen? I denne presentasjonen skal vi derfor se nærmere på hva sosioteknisk systemtenkning er, spesielt den grenen som kaller åpent systemteori. Vi skal både se på hvordan disse overlapper med smidig og hvor det er forskjeller. Tesen presentert her er at forskningen fra samfunnsvitenskapene med teknikkene og tilnærmingene brukt for å radikalt endre en organisasjons fra et byråkrati til et fullt deltagerne demokrati hvor alle bidrar produktivt er vel så relevant for oss i de "digitale kullgruvene" - antagelig enda mer.Software er fortsatt politikk
Speakers: Truls Jørgensen, Audun Fauchald Strand
Type: Presentation 📣
Language: Norwegian 🇳🇴
Det største tekniske systemet i NAV er et stormaskinsystem fra 70-tallet. NAV har jobbet i til sammen 17 år med å skru det av. Ikke bare har vi holdt på lenge, men vi har også med jevne mellomrom - ca hvert skuddår - fått ekstraordinære bevilgninger for å finansiere jobben. Nå er det siste prosjektet i planen ferdig, men systemet er fremdeles ikke skrudd av. Denne presentasjonen skal fortelle hvorfor - og også hvorfor vi likevel er stolte av den jobben som er gjort. På veien kommer vi innom statens prosjektmodell, konsulenter vs eierskap, arkitektur og kode, etterlevelse av lovverk, systemutvikling vs organisasjonsutvikling, smidig vs Smidig.Advanced Kotlin Techniques for Spring Developers
Speakers: Pasha Finkelshteyn
Type: Presentation 📣
Language: English 🇬🇧
As a seasoned developer, you’re likely already familiar with Spring. But Kotlin can take your developer experience with Spring to the next level! Join this webinar and learn how to: - Add new functionality to existing classes with Kotlin extension functions. - Use Kotlin bean definition DSL. - Better configure your application using lateinit. - Use sequences and default argument values to write more expressive code. By the end of this talk, you’ll have a deeper understanding of the advanced Kotlin techniques available to you as a Spring developer and be able to use them effectively in your projects.Arkitekt 2.0 - Hvordan arkitekten fortsatt gir verdi for moderne utviklingsteam
Speakers: Magnus Elden
Type: Presentation 📣
Language: Norwegian 🇳🇴
Hvem har ikke ergret seg over arkitekter? De legger seg opp i utviklingen, og hindrer kommunikasjon og samarbeid mellom forskjellige deler av organisasjonen. Verdenen hvor arkitekten designet løsningen og utviklerne implementerte den, er død. Med tverrfaglige team dekkes mange av de ansvarsområdene som en arkitekt fylte, så hva kan arkitekter gjøre nå? Magnus viser hvordan en arkitekt kan være til hjelp i stedet for til hinder, og hvordan utviklere blir mer effektive, kan designe bedre løsninger, og reduserer kognitiv last ved å samarbeide med en arkitekt 2.0.Desentralisert identitet - elektronisk ID gjort riktig
Speakers: Erling Skard
Type: Presentation 📣
Language: Norwegian 🇳🇴
Desentralisert identitet er et paradigmskifte innen elektronisk identitet. Den fjerner de sentraliserte aspektene ved dagens ID-løsninger og gir brukeren i full kontroll over sin egen identitet. Desentralisert identitet løser dagens problemer med ID-tyveri, persondata på avveie og manglende brukerkontroll. Samtidig åpner det for helt nye anvendelser av eID og skaper nye forretningsmodeller. I dette foredraget ser vi på de sentrale konseptene innen desentralisert identitet og digitale lommebøker. Jeg snakker om hvordan vi kan ta i bruk digitale lommebøker og teknologien som gjør det mulig.Hvordan bygge software for å ødelegge
Speakers: Sondre Halvorsen
Type: Presentation 📣
Language: Norwegian 🇳🇴
Datasystemer blir bare mer viktige og mer integrerte i livene våre. De siste tiårene har gjort livene våre digitale og nå følger også industrien vi tar for gitt etter. vann, kraft, mat og all industriell aktivitet går mot å digitaliseres og kobles på nett. Det gir økt effektivitet og innsikt i de viktigste bærebjelkene i samfunnet, men det åpner også for nye sårbarheter. Har du hørt navn som Industroyer, NoPeyta eller Sandworm eller annen skadevare og lurt på hvordan de egentlig fungerer? Hvordan går man frem når man skal bygge software for å bryte seg inn, få fotfeste i et system og oppnå målet, ødeleggelse? I denne presentasjonen skal vi se på hvordan malware fungerer ved å utvikle vår egen command and control (C2) applikasjon. Med funksjonalitet for å generere payloads for å bryte seg inn i et system, unngå deteksjon og tilslutt ringe hjem for å motta nye instrukser. Ved å forstå hvordan hacking software fungerer, og hvilke mål de prøver å oppnå, kan vi bedre forsvare oss mot det.Lemonade Stand Revisited
Speakers: Anders Norås
Type: Presentation 📣
Language: English 🇬🇧
In 1973 Bob Jamison created the business simulation game Lemonade Stand. After a slow start on mainframes, the game became a breakaway success in the early 1980s after the source code was released and the game was made available on 8-bit home computers. As young aspiring programmer, Anders spent hours meticulously typing in the BASIC code for Lemonade Stand on his Commodore 64 computer. Contrary to Jamison’s intention this did teach Anders much about running a lemonade enterprise, but it was the start of a programming career building enterprise software. In this talk Anders recreates the classic Lemonade Stand game using modern programming tools, techniques and software development trends. Let’s find out if the game still is “the perfect vehicle to introduce the microcomputer to family and friends and convince them that technology could be a fun and positive force in their life”, because if it is we can write code when life gives us lemons.Quarkus for Spring Developers
Speakers: Eric Deandrea
Type: Presentation 📣
Language: English 🇬🇧
In this session, I will show concepts and conventions familiar to Spring developers and how those same concepts and conventions can be implemented in Quarkus, all while highlighting similarities and differences between them. Additionally, I will show similarities and differences in how testing is done, highlighting Quarkus Dev Services. This session will be mostly code while minimizing the number of slides. I will introduce an existing Spring application with a full test suite and build a Quarkus equivalent version of it, live.Elasticsearch Performance
Speakers: Michał Kosmulski
Type: Presentation 📣
Language: English 🇬🇧
Elasticsearch is a full-text search engine rather than your typical database. This means its query performance can be surprising at times. In this talk I will discuss what happens when Elastic handles a query, and from this I will derive general rules about what kinds of queries Elastic can handle efficiently and with which it will struggle. Since the underlying principles are very similar, these hints should mostly be applicable to Solr or any other full-text search engine just as well as to Elasticsearch.The Accord Consensus Protocol, how to do ACID transactions at scale
Speakers: Mick Semb Wever
Type: Presentation 📣
Language: English 🇬🇧
The Accord Consensus Protocol, providing global leaderless single-network-round-trip consensus using commodity clocks. Research from University of Michigan & Apple Inc. introduces ACID-compliant, strict serialisable transactions possible globally at any scale, at high throughput, with low latency. Move over Paxos, ePaxos, Raft, Janus, Calvin, all now outdated consensus protocols, slow and fault intolerant. We'll explain why your database must be leaderless, scalable & fast. The notion of copying data to analytics platforms is dead weight in the age of Data Mesh & Soft-AI. Your database can no longer be a single-process monolith from ages decades old if you are to be David against the Goliath of Big Tech. Mick will explain hard problems in computer science solving elastic scalable ACID-compliant low-latency databases, explaining trade-offs from sharding data, shadow paging, sagas, to choosing eventual consistency & isolation consistency from the database.Best of Both Worlds: Apache Pulsar and Apache Kafka
Speakers: Ko Turk, Mary Grygleski
Type: Presentation 📣
Language: English 🇬🇧
Which streaming technology is right for me? Do I need to use Apache Pulsar or do I choose Apache Kafka? That is mostly the question, but did you also knew that you can combine them? In this session we will show how to use best of both worlds. Let's compare both architectures and Java Client Implementations and decide what's best for you! Do you pick the battle? Or are you making allies? It's up to you!Å telle kjøretøy i webkamerabilder med maskinlæring, hvor vanskelig kan det egentlig være?
Speakers: Hans Petter H. Bauhr
Type: Presentation 📣
Language: Norwegian 🇳🇴
Bli med på en liten reise sammen med Statens vegvesen der vi har prøvd ut en maskinlæringsmodell for å telle kjøretøy. Vi ser på de praktise utfordringene som dukker opp når en skal prøve å lage en publikumstjeneste av dette. Hvordan ser teknologien ut under panseret og hvilke problemer må løses for å kunne gi verdi til publikum. Hvor robuste tjenester kan en lage med denne teknologien?Modelling vs Reality
Speakers: Einar W. Høst
Type: Presentation 📣
Language: English 🇬🇧
To make sense of the world, we rely on our brains' capability to form fictions that we call "categories" of things and experiences. This capability is both automatic and hidden: we can't avoid doing it, yet we don't know exactly how we do it. We know that differences and similarities play a role, but how? When we try to be more deliberate about the process, for instance because we want to write software based on our categories, we call it modelling. In the process, we tend to replace our intuitive but ill-defined common-sense categories with more precise technical categories. But precision comes at a cost. In this talk, we'll look at different perspectives on categorization, see that nothing remains the same for long, and that edge cases are just regular cases that got unlucky.Breaking Free: The Joys and Challenges of Being a Digital Nomad Engineer
Speakers: Nemanja Aksic
Type: Presentation 📣
Language: English 🇬🇧
I will share my experiences traveling and working as a nomadic software engineer across 30+ countries on 4 continents. As someone who went straight from a traditional office job to working for a startup while traveling the world, I learned a lot about the joys and challenges of being a digital nomad. I'll talk about the unique aspects of working remotely, the importance of flexibility and adaptability, and how to balance work and play while constantly on the move. My aim is to inspire others to try the nomadic lifestyle while also helping them understand whether it's the right fit for them.Writing Code for the Human Brain: Optimize code for Cognitive Bottlenecks
Speakers: Adam Tornhill
Type: Presentation 📣
Language: English 🇬🇧
As software developers, we write code that is intended to be understood, and maintained by other humans. Code that fails to address its human audience becomes hard to understand, causes stress, and harms collaboration. In this talk, Adam approaches code from the perspective of the human brain. Starting from common problematic constructs such as null-references, edge-cases and complex conditional code, we discuss their cognitive costs and consequences. We then take inspiration from modern psychology to refactor the problematic constructs into a brain-friendly format, suited to our cognitive bottlenecks. When refactoring, we apply ideas from object-orientation, functional programming and lesser known array languages to explore better ways no matter what programming language we use. This is a practical session and we use real-world codebases for all examples. The participants will leave with a high-level view of the principles behind code that fits our human way of thinking together with an introduction to techniques like cohesion measurements, remote error handling and embedded domain-specific languages. As a bonus, you will also learn how to make the business case for code improvements and refactoring. Join in, and learn how to write code that fits our brain!How to handle the luxury of having too much training data
Speakers: Mathilde Ørstavik
Type: Presentation 📣
Language: English 🇬🇧
At Norkart we aim to develop the best AI models for automatic mapping of objects from aerial imagery. With a wealth of already labeled objects, such as buildings, we find ourselves in a somewhat unique position - we have too much training data! I know what you’re thinking! There’s no such thing as too much training data. However, a large amount of irrelevant data can impede the development of a well-balanced training dataset. For example, when training a building-detection model, we need to be selective in the examples we use, focusing on a diverse range of building types rather than non-relevant data such as oceans, forests, and roads. So how can we ensure an ideal selection of training data in order to get a model that is robust enough to analyze any part of Norway and recognize any sort of building? Join us as we present our training rig where we dynamically select and produce training data while training and evaluating the model - to get the best AI for building detectionPost-Quantum Cryptography 101 - aka. The end of the world as we know it
Speakers: Stian Svedenborg
Type: Presentation 📣
Language: English 🇬🇧
You might have heard that the advent of Quantum Computers heralds the end of commonly used cryptography, but what does that mean, and why does it concern you? In this talk, I will help answer some of these questions. You will learn what a Quantum Computer is, why they are such a bad thing for cryptography, and what you should do about it.Data Science og Programvareutvikling: Når venner blir bestevenner
Speakers: Alexander Amiri
Type: Presentation 📣
Language: Norwegian 🇳🇴
AI har potensiale til å skape stor verdi for din bedrift, men mange data scientister har en akademisk bakgrunn som fokuserte mer på forskningsresultater enn på kodekvalitet og dokumentasjon. Som et resultat ser man ofte kode som er dårlig dokumentert, utestet og vanskelig å lese, noe som skaper teknisk gjeld og frustrasjon i data science-miljøene. Dette kan i verste fall føre til at bedriftene mister verdifulle data og kunder, samt at de bruker mye tid og ressurser på å rydde opp i kodeproblemer. Heldigvis kan data science lære av sine kollegaer innen programvareutvikling, der fokuset ligger på kodekvalitet, dokumentasjon, testing og å gjøre koden forståelig for andre. I denne talken vil du lære hvordan du kan unngå vanlige feil og jobbe på en forsvarlig måte med AI i din bedriftFrom Java 17 to 21 and beyond: Loom, Amber and Valhalla
Speakers: José Paumard
Type: Presentation 📣
Language: English 🇬🇧
The two years realese cadence of LTS versions gives the entire Java ecosystem the opportunity to accelerate. It also brings the new features Java has to offer faster, so that developers can improve applications readability, maintainability as well as development productivity. This presentation covers three of the new features of the JDK: Amber, Loom and Valhalla. Amber is about bringing pattern matching to the Java language. It's currently added bit by bit: records, pattern matching for instanceof, for switch, and record pattern matching. Loom offers a new concurrent programming model. With Loom, you can write your code in a synchronous way, without any callback, and execute it asynchronously, with all the performances benefits you may expect. It is a preview feature of the JDK 19. Valhalla brings a new kind of objects to the language, so that you do not have to choose between performances and abstraction. Valhalla will add user defined primitive types to the Java language as well value types.Infrastructure as code done right with JVM
Speakers: Łukasz Biały
Type: Presentation 📣
Language: English 🇬🇧
Infrastructure-as-code is a constantly growing field where the need for reliability necessitated by operations meets with application developer knowledge and experience. JVM platform is well known for it's robustness and JVM languages are known for being awesome choices to build reliable software. In my talk I will introduce and compare 3 language SDKs - Java, Kotlin and Scala for Pulumi - a terraform alternative that allows you to use a full programming language to declare infrastructure. I will present what benefits they bring to the table and how you can leverage your knowledge to build scalable and maintainable platform for your team.Developing a Large-Scale Time Series Database
Speakers: Åsmund Eldhuset
Type: Presentation 📣
Language: English 🇬🇧
Cognite's customers have trillions of historical data points from industrial sensors, and they are continuously ingesting new values into millions of time series in real time. This talk will explore the architecture of Cognite's custom timeseries database, showing how it is able to query both real time data and terabytes of historical data with low latency while still providing strong consistency and high availability. The talk takes place at a conceptual level (no code), and is structured as a series of challenges that we faced during development and the solution we arrived at for each challenge.Supercharge your GraalVM applications in 5 steps
Speakers: Alina Yurenko
Type: Presentation 📣
Language: English 🇬🇧
You've probably heard of GraalVM, and how great it is for reducing startup time and memory consumption of Java applications, but do you know how to use it to the fullest in practice? In this hands-on session you'll see how to develop and test Native Image applications, optimize their performance, configure them to use popular libraries, monitor, and more!Across the Clouds
Speakers: Markus Krüger
Type: Presentation 📣
Language: English 🇬🇧
More and more systems are moving into the cloud, with Amazon Web Services, Azure, and Google Cloud Platform as the leading providers. Should you, too, be in the cloud? If so, how should you design your systems to make the most of it? Which vendor is the right for you, and what are the differences? In this presentation, you will get an overview of the essential services offered by the leading cloud providers and how to design your systems to make the most out of them. You will hear lessons learned from a decade of running systems in the cloud, and get pointers on whether you should be in the cloud at all, how to pick your cloud, and whether you should be using multiple clouds.What does discrimination feel like and how can we fix it?
Speakers: Marion Løken, Dennie Declercq
Type: Presentation 📣
Language: English 🇬🇧
Marion and Dennie join forces to shed light on the issue of discrimination and its effects on individuals. Marion, a French immigrant residing in Norway, and Dennie, an individual on the autism spectrum without a paid job, both appear to be "integrated" into society. However, despite their seemingly "normal" appearances and situations, they face microaggressions on a daily basis. Dennie frequently hears the statement that anyone can have a paid job if they want, while Marion is told there is no gender gap, no culture privileges or glass ceiling. This serves as a reminder that discrimination can occur even to those who may not fit the traditional stereotype of a minority. Through sharing their experiences, Marion and Dennie aim to raise awareness and promote empathy towards those who face discrimination. They also aim to teach people how to recognize and combat microaggressions, encouraging a more inclusive and equitable society for all.Er microtjenester den nye "silver bullet"?
Speakers: Terje Heen
Type: Presentation 📣
Language: Norwegian 🇳🇴
Regelmessig hører jeg utviklere uttrykke ønske om å lage nye microtjenester. Enten ved å implementere nye features som noe selvstendig, eller skille ut eksisterende funksjonalitet som noe eget. Men er dette alltid det rette valget, hvilke andre alternativer har en, og hva er prosessen for å komme frem til et valg? Jeg har nå begynt å spørre meg selv og andre; har microtjenester nå blitt den nye "silver bullet"? Jeg ønsker at publikum skal stoppe opp litt, reflektere litt over hvordan arkitekturen ser ut hos dem, og i hvilken grad valgene deres tar de nærmere målet sitt eller bare et steg til siden (same-but-different). Påstand: Jeg opplever samtidig at vi snakker stadig mindre om arkitektur, samtidig som arkitektur bare blir viktigere i en microtjenesteverden.Who needs a platform?
Speakers: Christin Gorman
Type: Presentation 📣
Language: English 🇬🇧
There's a good chance that you - yes you - are currently working on making a "new platform" of some kind. I have lost count of how many "new platforms" I've been asked to help out making. Why are we always working on these "new platforms"? Why is there always something so fundamentally wrong with the old ones that we need a whole new platform? Do they end up delivering the value they promise? Value for whom? The users of the software? The business owners? The project managers? The developers? Who are we making these platforms for? Let's get to the bottom of this, and figure out who's problems we should be solving, and who's money we should be saving and how we can make these platforms worth their investment.Looming Changes in Java Concurrency
Speakers: Cay Horstmann
Type: Presentation 📣
Language: English 🇬🇧
Project Loom, expected to be delivered in final form in Java 21, brings "virtual" threads to the Java platform. After an introduction to the concepts of virtual threads, structured concurrency, and extent locals, the talk focuses on the implications for programmers. Why should you care about Loom if you will never run a million concurrent tasks? How do you choose between virtual and platform threads? When blocking is cheap, is there still a benefit to reactive programming? Which parts of "Concurrency in Practice" are now outdated, and what is still relevant? What concurrent synchronization mechanisms and design patterns should you favor? How do you debug and profile virtual threads? What pitfalls do you need to recognize when transforming your current code to take advantage of virtual threads? How do you structure new code? This pragmatic presentation provides a perspective beyond the "what" of Project Loom and into the "why" and "how".Java EE simplified without Spring
Speakers: Johannes Brodwall
Type: Presentation 📣
Language: English 🇬🇧
Does Java backend development need to require lots of magic formulas and automatic behavior to be simple? 20 years ago Java development (J2EE) was dominated by complex application servers and Enterprise Java Beans (EJBs) which were cumbersome to use. In response, the Spring framework was launched with the motto "J2EE without EJBs". But all cures become the new disease and even though it simplified the development experience at the time, as the Spring framework has become more mature and more popular, it has also become more complex and started obscuring the task. Developing Java backend solutions require you to understand issues of packaging and deployment, configuration, request routing, transactions and connection management and security. Popular frameworks seek to "deal with this for you", but unless you understand what the frameworks do, you will create hard to test, buggy and insecure applications anyway. There are alternatives with fewer dependencies that don't really involve more coding or more learning, but that makes the resulting application easier to understand and the code easier to navigate. In this talk, I will demonstrate how to code for the technologies I use to set up applications that let me develop with twice the speed of a Spring programmer. Along the way, we will organize and understand the parts that go into creating any Java web backend application with any framework on a containerized platformHistorien om fire mammaer som lagde en app
Speakers: Ellen Wagnild-Antonsen, Sarah Serussi
Type: Presentation 📣
Language: Norwegian 🇳🇴
Hva har en utvikler, en designer, en lege og en influenser til felles? - Vi er alle mødre! Og vi er ganske lei av manglende og dårlige verktøy som liksom skal organisere familielivet. Såååå - vi har bestemt oss for å lage en app selv. Vi ønsker å lage et verktøy som hjelper småbarnsfamilier til å fjerne litt av kaoset i hverdagen. Vi ønsker at hverdagsoppgavene skal fordeles likt mellom partnere og at det tredje skiftet ikke kun er forbeholdt mødre. Dette er historien om hvordan det har gått hittil - med innblikk i prosess, teknologivalg og brukertesting.From zero to hero: en reise i sikkerhetskultur for Oslo Origo
Speakers: Rune Schumann, Ingvild Løes Nilsson
Type: Presentation 📣
Language: Norwegian 🇳🇴
God sikkerhetskultur er utfordrende å bygge. Vi vil gjerne dele våre seire, nederlag og drømmer om reisen til god sikkerhetskultur i Oslo Origo, Oslo kommunes digitaliseringsetat. Noen reisetips vi deler i innlegget utover å ta med sikkerhetspass, penger og digitaliseringspiller er: * Hvordan skape engasjement for sikkerhets gjennom entusiasme, medvirkning og ikke tvang. * Hva skal til for å få utviklingsteam til å ansvar for sikkerheten i egen produktutvikling. * Hvordan skape en kultur som deler og lærer av feil. * Hva sikkerhetsteamets rolle er innen rådgivning, sikkerhetstesting og støtte. * Hvordan få til “Sikkerhetstesting as a Service”. * Hvilke forbedringspunkter har vi, og hvor vil vi være i fremtiden.Det er en bedrager blant oss
Speakers: Karianne Kristiansen
Type: Presentation 📣
Language: Norwegian 🇳🇴
Bedragersyndromet er kanskje noe alle har kjent på en gang i livet, men hva er det og hvordan oppstår det egentlig? Jeg vil ta et lite dykk i ulike temaer som hvordan det ble oppdaget, hvilke trekk en bedrager kanskje har, ulike typer bedragere som finnes og litt til. Kan man gjøre noe for å føle seg mindre som en bedrager eller bli kvitt det? Dette skal alt krydres med egne erfaringer fra SpareBank 1 Utvikling.The Art of Software Development
Speakers: Sander Mak
Type: Presentation 📣
Language: English 🇬🇧
Are you a software engineer? You may want to think twice before answering... Looking closely, our collective software development practices may not be so rigidly engineered as we'd like to think. And you know what? That's ok! Let's embrace the art of software development and see where this takes us. In this keynote, we'll look at software development as a craft combining art and engineering. What does this mean for coding, testing, architecture and design, and other important aspects of our work? And more importantly: what does this tell us about learning and growing as software developers? Our obsession with tools may cloud what software development is really about. Join this keynote to unlock your inner artist!Catching Criminals with help of Apache Kafka
Speakers: Rune Liseth Høivik
Type: Presentation 📣
Language: Norwegian 🇳🇴
Hva er verdien av å tilgjengeliggjøre data i det øyeblikket de faktisk oppstår ? Å motta viktig informasjon før det er for seint ? For Politiet kan dette i ytterste konsekvens utgjøre forskjellen mellom liv og død. Vi, i Politiets IT-enhet, har fått et nytt verktøy i verktøykassa vår, og det heter Apache Kafka. Vi startet med en gammel monolitt, og forvandlet denne til moderne løsning med bruk av hendelser og mikrotjenester. Fra starten av hadde vi mål om økt ytelse og skalerbarhet, men lite visste vi at det var på helt andre områder den store gevinsten egentlig skulle komme. Og det er nettopp dette foredraget skal handle om. Om hvordan vi bruker Kafka topics som "samlebånd" for enklere kunne dele data på tvers av applikasjoner og fagområder. Apache Kafka er i dag en kjent teknologi for mange, og har kanskje sitt største største bruksområde innenfor prosessering av store datamengder. I dette foredraget ser vi på alternative bruksområder, og fortelle om våre erfaringer med Kafka som et verktøy for å dele data på tvers av mikrotjenester.Hypereffektiv flyt med parprogrammering og kontinuerlige prodsettinger i SpareBank 1
Speakers: Asgaut Mjølne, Nils Brede Moe
Type: Presentation 📣
Language: Norwegian 🇳🇴
Høsten 2021 bestemte SpareBank 1 Utvikling seg for å prøve en ny retning gjennom å kraftig øke hvor mye man jobber sammen i par. Dette har vist seg avgjørende for å oppnå økt fart, fokus og flyt. Samtidig har vi redusert antall feil og fått mer fornøyde utviklere. For å forstå effekten av parprogrammeringen har vi jobbet tett med forskere i SINTEF mens vi implementerte den nye strategien. I dette foredraget vil vi forklare hvordan vi gikk frem for å endre kursen, hvordan vi testet ut kontinuerlig prodsetting med bittesmå endringer og hvordan antallet produksjonssettinger økte dramatisk. Du vil lære om de positive effektene vi opplevde på pull requests, testmiljøer, parprogrammering, kvalitet, fokus, flyt, psykologisk trygghet m.fl - uten at det var et mål i seg selv. En viktig inspirasjonskilde er NAV som også har fokusert på parprogrammering og ikke bruker annet testmiljø enn produksjon. Nav sluttet med pull requests og argumenterer med at det samtidig gav økt kvalitet og færre feil. Kunne vi få til det samme i en bank? I denne presentasjonen skal vi dele vår erfaring og forskningsbaserte funn med nettopp dette. I denne presentasjonen forklarer vi hvorfor produksjonssetting av små endringer mens du utvikler, har blitt avgjørende hvis du skal gjøre moderne utvikling.How we build a scalable and truly cross cloud SaaS without Kubernetes
Speakers: Johannes Unterstein
Type: Presentation 📣
Language: Norwegian 🇳🇴
As we started to work on the software for Bobsled, we quickly came to the fundamental question: Which core concepts should we apply for our architecture? Some of us had very positive experience running Kubernetes operators and liked the concept of the reconciliation pattern, since their robustness and flexibility. But we wanted a leaner approach, which does not include the usual operational burden of running Kubernetes at a scale which would suit our team size a bit better. Especially since our application runs in three clouds simultaneously and for a number of databases, we didn't wanted a lot of pre-provisioned compute infrastructure running the whole time. So we quickly settled on serverless functions and the idea of borrowing a lot of concepts from Kubernetes. Ok, but how did we got all those wishes covered? In this session, we talk about the reconciliation programming pattern and we will have a closer look at how Kubernetes operators are implemented. Then we will check out how we will gain those benefits outside of Kubernetes land and see how some smart choices of technology like firebase, cloud functions and pub/sub helped us implement this. On top of that we will discuss how OIDC and OAuth will help us implement a truly cross cloud app that is not only nice and shiny, but also very secure and does not have the need to store a single password.Streaming without stress: flexibilty and error-handling in a data distribution pipeline
Speakers: Joanna Eriksson
Type: Presentation 📣
Language: English 🇬🇧
I will walk you through how we have segregated our pipeline on an architecture level through Kafka and on a software level through threads in order to handle backpressure and other failure scenarios. We have successfully used this design for years but as with all designs, it has its limitations. I’ll share both the good and the bad of this design. Finally, it’s not enough to talk about segregating a pipeline without talking about what this actually means and how you define your segregation, because it’s not as obvious as it might first seem. You will be introduced to what the terms “tenant” and “tenant isolation” can mean in this context. Schibsted is a company consisting of about 70 subsidiaries and we have been operating with a data mesh-flavored architecture for years. At the heart of this architecture is an internally developed central data integration platform. One common challenge when having this kind of platform is the need for some kind of segregation. Not having segregation could result in a data producer sending bad data halting the processing for all, or a consumer not being able to receive the data, stopping processing for all consumers.Sannhet eller fiksjon? Kunsten å avsløre DeepFakes i Tekst, Audio, Bilde og Video
Speakers: Håkan Silfvernagel
Type: Presentation 📣
Language: Norwegian 🇳🇴
I en verden full av deepfakes, hvordan kan du finne sannheten og oppdage hvis en tekst, lydfil, bilde eller video er ekte eller ikke? I denne presentasjonen vil jeg gi en oversikt over de verkøy som kan brukes for å oppdage deepfakes. For tekst så vil vi gi en introduksjon til hvordan oppdage hvis tekster produsert via ChatGTP er ekte eller ikke med verktøy som GTP Output detector, GLMT, GPTZero. Jeg vil presentere noen okkulære metoder for å skille ekte og falske bilder generert via DALL-E. For audio så vil jeg gi en introduksjon til metoder basert på ML, DNN og POI. Slutligen vil jeg vise hvordan frame-by-frame analyser, multimodale metoder, POI og kommersielle produkter kan brukes for å oppdage deep fakes for video.Lightning-Fast JVM Startup without compromise
Speakers: Tobi Ajila
Type: Presentation 📣
Language: English 🇬🇧
Fast JVM Startup or Dynamic JVM Capabilities, why not both? Statically compiled applications can significantly improve startup time, but they may not be suitable for existing applications that rely on the dynamic functionalities of a JVM. However, with checkpoint and restore, you can now enjoy the lightning-fast startup time of native images while keeping all the capabilities of a JVM. Join us in this session to learn how checkpoint and restore can revolutionize the way you approach JVM startup. Discover how this approach can help you improve your Java application's startup performance, while maintaining its dynamic features. We'll explore the challenges and solutions in implementing checkpoint and restore with unprivileged/root-less modes in containers, and how you can overcome these hurdles to improve your application's startup.Maven Puzzlers
Speakers: Andres Almiray, Ixchel Ruiz
Type: Presentation 📣
Language: English 🇬🇧
Apache Maven is an ubiquitous build tool in the Java ecosystem, some even claim it's the defacto standard build tool. Configuring Maven is deceptively simple, after all it's just a matter of writing XML, isn't it? Things look differently when the rubber meets the road. One must know the intricacies of the build lifecycle; how plugins, goals (mojos), and phases come together; rules for dependency resolution; configuration inheritance between parent - child POM files; enhancing the build with profiles; and more. These features may trip you over if the rules that govern them are unclear. We'll present a series of scenarios to test your knowledge on Maven rules. we guarantee you'll leave this session with a few bits of new information and better understanding of the Maven build tool.ClickHouse: what is behind the fastest columnar database
Speakers: Olena Kutsenko
Type: Presentation 📣
Language: English 🇬🇧
An open source columnar database ClickHouse is in many ways exceptional - it is exceptionally fast, exceptionally efficient, but also, at times exceptionally confusing. Its approach to handling data goes against many principles and concepts that we use in other databases. To give some examples: its primary index doesn't index each row and doesn't guarantee uniqueness; a secondary index is used to skip data and doesn't point to specific rows; JOINS is a complex topic and transactions are supported partially, not to mention that its SQL dialect holds a couple of surprises up its sleeve. But, all that said, if used correctly, ClickHouse is a superb solution for online analytical processing (OLAP). The goal of this talk is to help you get the most of ClickHouse and avoid the pitfalls. We'll talk about OLAP and columnar databases. We'll touch topics of indexing, searching and disk storage. We'll look at the reasons behind the most puzzling concepts of ClickHouse, so that by the end of the talk you find them not only logical, but maybe even fascinating. If your challenge is analysing terabytes of data - this talk is for you. If you're a data scientist looking for tools to work with big data - this talk is for you. And, of course, if you are just curious about what makes ClickHouse crazy fast - this talk is for you as well.Human factor. Design, creativity and meaning in the AI era.
Speakers: Paweł Nowak
Type: Presentation 📣
Language: English 🇬🇧
If AI within seconds can create a high quality image, write a program code, or generate texts that are indistinguishable from human-made text articles then... what is the point of learning and self-development? Is there any? The wide adoption of AI-based systems will boost productivity in many fields, but who will benefit? We will probably pay for this with an irreversible loss of competence, intellectual degradation and perhaps impossible to reproduce, accompanying mankind from the beginning of civilization, the ability to express oneself through art and creativity. But maybe there are human qualities that are irreplaceable by AI which are worth developing and nurturing? Are products devoid of the human factor becoming our new reality, or maybe the whole AI revolution is an opportunity to start to notice and appreciate what is truly human? Goals of my talk: - describe changes in the creative ecosystem caused by generative AIs (current and trends), - consider the benefits and costs of these changes (from the perspective of the individual and the market), - discuss which qualities of human creative work are inimitable by AI and how it might motivates to further learning, development and building competences (from the perspective of the individual and market opportunities), - discuss the changes in standards of work and education that universities and business should think about, - consider alternative models of creative activity in a world dominated by generative AI models.Jakten på gull - verdifull lærdom fra menneskelige sammenstøt
Speakers: Heidi Brovold
Type: Presentation 📣
Language: Norwegian 🇳🇴
Gull er ettertraktet og verdifullt. Veien til gullet er ofte kronglete, kaotisk og konfliktfylt. Jeg deler noen av mine mest lærerike øyeblikk som utvikler, forsker og teknologileder - og hvordan jeg fant gull. Gullet, altså innsikten og verktøyene som du skal få, fant jeg som regel i møte med mennesker. Både fine og, noen ganger, ganske friksjonsfylte menneskemøter - ofte litt bortenfor kode, nord for rammeverk og bakenfor metodikk. Om du også innimellom støter (på) folk i jobbhverdagen din, er denne talken for deg.Påskenøtteknekking med emojier 🐇
Speakers: Henrik Walker Moe
Type: Presentation 📣
Language: Norwegian 🇳🇴
Hver påske legger PST (Politiets Sikkerhetstjeneste) ut en Capture the Flag-konkurranse (CFT), og i 2020 hadde de en ekstra morsom oppgave på 2. påskedag som jeg gjerne vil dele med deg. Vi har foran oss et bilde med påskekyllingbetjenter, et merkelig Python-skript og en hel haug med emojier - hva kan dette være? Og forresten, hvordan starter og kjører et program på en datamaskin egentlig? Bli med på litt påskenøtteknekking og finn ut sammen med meg!Hjelp! Applikasjonen vår er et eneste stort kaos
Speakers: Erik Dahl
Type: Presentation 📣
Language: Norwegian 🇳🇴
Applikasjonsarkitektur. For mange et gammelt utdatert konsept som man forbinder med endeløse UML diagrammer og kompleksitet. Eller et konsept som bare senker all hastighet i utviklingen? Er du en av dem som grøsser ved tanken på applikasjonsarkitektur? Eller ikke skjønner poenget med den tradisjonelle lagdelte tre-lags-arkitekturen? Høres det ut som mye arbeid for lite nytte, og noe som driver kompleksiteten opp? Gode nyheter. Du er ikke alene! Glem UML, glem tre-lags-arkitekturen og hiv ut arkitekten! I denne presentasjonen skal vi se nærmere på hvordan du som utvikler tar kontroll over applikasjonsarkitekturen på en enkel, ren og rett frem måte.Ready to Enhance your Data Practices? Explore Synthetic Data Generation for Improved Data Sharing, Data Quality, Privacy, and Developer Productivity
Speakers: Narasimha Raghavan Veeeraragavan
Type: Presentation 📣
Language: English 🇬🇧
Generating Synthetic Cancer data is a critical innovation focus area at the Cancer Registry of Norway due to various benefits offered by synthetic data, such as easier data sharing for promoting cancer research, improved data quality for building better prediction models, better privacy protection for patients, and better developer productivity through easier software testing. In this talk, first, I focus on different synthetic cancer data generation techniques explored at the Cancer Registry for various use cases. Additionally, I share our view on why no synthetic data generation technique is best for all our use cases. Furthermore, I talk about evaluating the quality of synthetic data and the challenges in answering the following questions: a) How good is the generated synthetic data compared to the real data? b) How well does the generated synthetic data preserve patient privacy? c) Does the synthetic data satisfy the purpose for which it is generated? d) How much bias is introduced by synthetic data? Furthermore, I also talk about how federated learnings add more benefits to generating synthetic data and the new challenges that federated learning introduces regarding security, privacy, accountability and auditability. Finally, I will talk about our efforts towards addressing these challenges.Real-time Change Stream Processing with Apache Flink
Speakers: Gunnar Morling
Type: Presentation 📣
Language: English 🇬🇧
Log-based change data capture (CDC) is a key component of the modern data streaming stack, used for data replication, feeding search indexes, low-latency data warehouse updates, and more. Merely taking data from A to B often isn't enough though; instead, change event streams, as for instance created using Debezium, may need to be filtered or routed based on event contents, multiple streams be joined, continuous queries be updated, etc. Enter Apache Flink: it lets you do stateful stream processing on change event feeds. Join us for this session and learn about * Implementing streaming queries on CDC events with the Flink data stream API and Flink SQL * Aggregating and enriching change data events * Different deployment options: Kafka Connect vs. Flink CDC In a demo we'll put all these open-source components into action, showing how to set up a data streaming pipeline from your operational database to a live dashboard within minutes.The Hacker's Guide to Kubernetes
Speakers: Patrycja Wegrzynowicz
Type: Presentation 📣
Language: English 🇬🇧
Do you want to see live Kubernetes hacking? Come to see interactive demos where your newly registered accounts in a k8s application are hijacked. This talk guides you through various security risks of Kubernetes, focusing on OWASP Kubernetes Top 10 list. In live demos, you will find out how to exploit a range of vulnerabilities or misconfigurations in your k8s clusters, attacking containers, pods, network, or k8s components, leading to an ultimate compromise of user accounts in an exemplary web application. You will learn about common mistakes and vulnerabilities along with the best practices for hardening your Kubernetes systems.CVE 101: A Developer's Guide to the World of Application Security
Speakers: Theresa Mammarella
Type: Presentation 📣
Language: English 🇬🇧
Ever wonder about the mindset of a hacker? What is a Zero day attack? When does the clock start ticking? As cyber Attacks become an existential threat it’s critical that all software developers understand the role the CVE process plays in helping us keep our defenses strong - and where it can go wrong or be subverted. In this session, we’ll cover how the CVE process works, explore the timelines of a few famous CVEs, and uncover the truth about ethical reporting. We'll then discuss the practical steps you can take as a developer to write safer software. From bug bounties and bad actors to unsung developer heroes and incredible researchers, it’s time to buckle up for a wild ride as we show you what CVEs are all about.Cracking the scalability wall
Speakers: Sanne Grinovero
Type: Presentation 📣
Language: English 🇬🇧
In this talk, we’ll discuss a severe JVM performance issue, the methodology leading to its discovery, how it affects the whole Java ecosystem, and what you could do to avoid it in your code. This scalability bottleneck has existed in OpenJDK for decades; the most surprising aspect is how such an impactful problem has been undetected for so long, eluding existing diagnostic tooling, while many common idioms will trigger the issue. Chances are high that your code is affected as well. After explaining the issue, we’ll show some real-world code from popular OSS libraries and how we worked around the problem in several popular OSS Java libraries with simple, small changes, leading to significant efficiency improvements.Video editing on the command line aka. what happens when you ask a programmer to edit your video
Speakers: Benedicte Emilie Brækken
Type: Presentation 📣
Language: English 🇬🇧
Most people when asked to edit a video use programs like Premiere Pro, Final Cut or (😬) Windows Movie Maker. But that takes time. And clicking. Also, we're developers! We love the command line! If we could, we'd probably control our whole lives with iTerm2, kitty or the Visual Studio Code console. In this talk you'll get an introduction to one of the most successful open source projects in the world: ffmpeg, which has time and time again outlasted all similar commercial projects. We'll talk a bit about how the big streaming and video conferencing giants use it. And we'll look at how we can use it do everything from cutting dead time out of Google Meet recordings to creating GIFs from videos. All of it directly on the command line of course.
Presentation 📣
Is psychological safety just a lie?
Speakers: Malaz Alkoj
Type: Lightning talk 🚀
Language: English 🇬🇧
Are you a leader or a team member and want to get the best from yourself and others, as well as keep everyone happy and safe at work? Then you don’t want to miss out on this! You’ll get insight into how psychological safety is related to economic efficiency for organizations, as well as some great ideas that will benefit not only the team, but the entire company. I will share stories about psychological safety. Can you guess which ones are fake and which ones are based on real-life events?Hjelp, vi bygger med Bazel!
Speakers: Knut Eirik Leira Hjelle
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Før hadde vi mange applikasjoner i mange repositories med dupliserte Jenkins-filer, nesten like POMer og webpack konfigurasjoner - nå bygger vi applikasjoner i Java, Kotlin, Javascript og Typescript i samme byggverktøy, med samme workflower i GitHub, og vi har plass til flere språk også! Historien om hvordan et team i Fremtind gikk over til Bazel for å samle sine applikasjoner i flere språk i samme monorepo, med samme byggverktøy. Lær mer om hvorfor vi valgte Bazel og hva som skiller det fra andre byggsystemer, utfordringer vi møtte på og hvordan vi har løst de og veien videre for oss.Det datadrevne politiet
Speakers: Audun Vindenes Egge, Anthony Lærdahl
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Politiet har en enormt viktig rolle i samfunnet vårt for å ivareta lov, orden og trygghet, og data går som en rød tråd gjennom alle deler av politiets arbeid som spenner seg fra de mest kritiske situasjonene, til etterforskning, cyberkrim og forebyggende arbeid. Politiet jobber til alle døgnets tider, hver eneste dag. Det genereres store mengder data som kan være vanskelig å få oversikt over og ofte er tilgang til oppdatert data avgjørende for å kunne løse politiets oppdrag. Bli med på denne talken og lær mer om hvordan Politiets IT-enhet jobber med å skape fremtidens IT-systemer og produkter for et politi der datadeling står sentralt, hvordan vi ivaretar sikkerhet i deling av data og hvordan vi skal jobbe med å forstå dataene våre bedre. Du vil også kunne lære mer om hvordan vi kan bygge ny kunnskap av data og vi skal vise aktuelle caser som du vil kunne dra nytte av.AdventOfCode for the Brave and True!
Speakers: Artur Zabeyvorota
Type: Lightning talk 🚀
Language: English 🇬🇧
Advent of Code (AoC) is like a winter holiday party for programmers! Except instead of drinking gløgg and exchanging presents, participants solve daily programming puzzles that become increasingly difficult as the event progresses. It’s a joyful way to sharpen your coding skills, where the reward for each day is the satisfaction of solving the challenges with the language of your choice. During this talk, we’ll take a look at some funny and mind-blowing solutions to these puzzles from the AoC subreddit, as well as jokes and memes that were born from failures and focused endeavors to collect fifty "stars" and save Christmas. Get ready to be inspired by the creativity and perseverance of programmers who often intentionally overcomplicate things but still manage to find solutions. Let their stories reignite your passion for coding. This talk is intended for programmers, nerds, and elves alike.Fra hest og kjerre til digital transformasjon
Speakers: Heidi Dahl
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Digital transformasjon i et 375 år gammelt selskap er ikke bare enkelt. Posten har vokst fra levering med hest og kjerre til helautomatisk brevsortering og samlebåndsproduksjon av millioner av pakker hvert år. I foredraget vil jeg beskrive hvordan vi bruker data, maskinlæring og tverrfaglige team for å gjøre Posten mer datadrevet, og skissere noen av utfordringene man møter når man bruker datavitenskap i industriell skala.Bli tryggere i håndtering av npm-pakker
Speakers: Terje Karlsen
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
NPM har slitt med diverse sikkerhetsbrister de siste årene hvor ondsinnet kode sniker seg inn i store applikasjoner og rammeverk. Hvordan kan vi som utviklere håndtere dette? Hvordan kan vi skape større trygghet når vi installerer nye pakker eller oppgraderer eksisterende, samtidig som vi er effektive med tiden vår? Terje snakker om mekanismer, verktøy og rutiner i team i tillegg til god praksis som gjør at utviklere med ansvar for node-baserte applikasjoner kan effektivisere pakkehåndtering og samtidig føle seg trygg på integriteten i applikasjonene sine.Distribuert tracing i ID-porten med OpenTelemetry
Speakers: Randi Øyri, Bjørn-Erik Strand
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Standardisert sporing på tvers av java applikasjonar med minimalt vedlikehold? Møt opp her. Me fortel kort om kva distribuert tracing er og w3c standarden for trace context med døme frå ny arkitektur i ID-porten. Me har skrive om ID-porten frå monolitt til microservice arkitektur og me måtte ha tracing. Fokuset vil vera på korleis me teknisk løyste dette med OpenTelemetry og ulike hinder på vegen. Du vil høyre om OpenTelemetry java-agent og korleis ein applikasjon importerer denne via OpenTelemetry operator for Kubernetes. Her får du eit godt utgongspunkt for å ta i bruk tracing i dag, frå javakode til køyrande applikasjon i Kubernetes.Når UX og utvikling forenes: Om å skape lykkelige og effektive opplevelser
Speakers: Nadia Tokerud
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Hva skjer når UX og utvikling går hånd i hånd? Er det som å se en giraff og en flodhest danse tango sammen? Eller kan det faktisk føre til lykkelige brukere og økt suksess for virksomheten? Hvordan kan vi jobbe sammen for å identifisere og løse problemer knyttet til brukeropplevelser, og hvordan kan dette føre til mer effektive produkter og tjenester? Bli med og lær om hvordan samarbeidet mellom UX og utviklere kan føre til en episk dansefest på kontoret!Mapping what data the norwegian government has yet to share
Speakers: Livar Bergheim
Type: Lightning talk 🚀
Language: English 🇬🇧
What data is being shared by the government and what is not (yet) shared? There’s a lot of data available from the Norwegian government, from company registry to weather data. You can find most of what’s currently shared via the the national data-portals data.norge.no and geonorge.no. But what data is not yet shared? We recently created an overview on data.norge.no of who is sharing (or not) and of known requests for data to be shared. We’ll give you an overview of the status, and tips for finding data/APIs and how you can request data which is not yet available.GoLang Generics: Simplifying Programming Concepts So Well, Even Your Grandma Will Want to Code!
Speakers: Meimona Hakim
Type: Lightning talk 🚀
Language: English 🇬🇧
Learn Golang Generics and become the talk of the town! This talk covers everything you need to know to master Golang Generics, including writing generic functions and interfaces. I'll keep things interesting with practical examples, all explained in plain English so even your grandma can follow along (assuming she knows Go). Whether you're a beginner or a seasoned pro, join me to learn how to write more efficient, reusable, and impressive code in Go.Legg vekk telefonen!
Speakers: Tania Holst
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
I en verden hvor det meste skjer på digitale plattformer er det lett å bli avhengig av det vi bruker mest, nemlig smarttelefonene våre. Vi bruker timesvis hver dag på apper som gir hjernen vår litt ekstra dopamin, men er vi egentlig klar over skaden vi påfører oss selv? Trenger vi egentlig å vise til alle på sosiale medier at vi er på konsert? Eller at vi er ute og spiser middag på en dyr restaurant? Jeg ønsker å gjøre dere oppmerksomme på hvor avhengige vi er, samt prøve å forklare hvorfor dette er skadelig for oss, hvordan det oppleves for barn og unge i dag, og hva de store selskapene har gjort for å lure oss inn i den fella vi sitter i i dag. Jeg skal forklare metoder og teknikker som du lett kan ta i bruk og du skal få høre mine 3 beste tips til hvordan dette kan gjøres i praksis.Mixed Reality check
Speakers: Scott Leaman
Type: Lightning talk 🚀
Language: English 🇬🇧
What is the state of Mixed Reality in 2023, and how did we get here? Starting with an accelerated history of Virtual Reality and Augmented Reality, we will look at the current state of the art of Mixed Reality in terms of hardware and software, and have a look forward to the near future to see what is just around the corner for this relatively new medium. As Apple (Apple Vision Pro), Meta (Meta Quest 3), and Microsoft (HoloLens 2) carve out their own respective visions for the future of Mixed Reality, it's never been a more important time to stop and take a look at how far the technology has come, and where it might take us in the future.To kill a legacy system
Speakers: Anders Sveen
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Kontinuerlige leveranser gjør det mulig å kunne endre ting gradvis og kontrollert. Men hva gjør du hvis du har en gigantisk monolitt med gammel teknologi? Må du ikke bare skrive om alt på én gang? Ja og nei. Det finnes alltid en mulighet for å dele opp problemet. Men du må ta noen vanskelige valg under veis og kanskje gjøre ting du ikke ellers ville gjort. I denne lyntalen vil jeg fortelle om noen strategier, og et par ganger vi har måttet bytte ut motoren i fart.Når ansvarlighet og integritet blir til ord
Speakers: Dervis Mansuroglu
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Som utviklere og teknologer opplever vi stadig mange forskjellig situasjoner på både jobb, hos kunder, og i livene våre. Vi opplever oppturer og nedturer både alene og sammen med andre mennesker. Noen ganger kan vi le og smile av det, andre ganger lar vi tiden gå i stillhet. Noen situasjoner er derimot spesielle; de setter oss i en posisjon der vi må velge en retning, en reaksjon eller et svar. Dette er en historie om mentoring, en historie om ledelse, og en historie om det å bry seg om folk. I lyntalen skal jeg dele litt om min erfaring som leder for utviklere, og hvorfor stillhet ikke alltid er det rette svaret. Talken handler om det å vokse som utvikler eller ta på seg lederansvar, og som en effekt av å vokse er det avgjørende å klare å håndtere den økte mengden med ansvar. Det vil være situasjoner når du vil føle deg alene, situasjoner der teamet er splittet, situasjoner der du bevitner alt fra urettferdighet, mobbing og dårlig holdninger Ønsker du å vokse i din rolle må du kunne håndtere og prate om slike situasjoner. Når avstanden til dialog er mye lenger enn vanlig, er dialog fremdeles det beste verktøyet du har. Når dialog ikke virker, er fremdeles dialog det beste du har. Når heller ikke dette virker, må ansvarlighet og integritet bli til ord, for at endringer skal bli til handlinger.Mastering the Skies: Navigating Cloud Native Architecture with Design Principles and Patterns
Speakers: Soumitra Bhattacharya
Type: Lightning talk 🚀
Language: English 🇬🇧
In my session, I will take the audience on a special and unique journey across the Cloud native architectural landscape. I will introduce them to the design principles underlying cloud native architectures. I will also tell them about the various design patterns that are generally used.Music can be functions too: an introduction to live-coding in Haskell
Speakers: Ulrik Antoniussen Halmøy
Type: Lightning talk 🚀
Language: English 🇬🇧
The talk will introduce the audience to live coding music in Haskell through the TidalCycles framework. The goal is to demonstrate how functional programming can be applied to make music in untraditional ways, and to introduce the perspective that music-making is a model for understanding function composition. The talk will also briefly touch on the Algorave movement, events where people dance to music generated on the fly by algorithms by performers on stage. The talk aims to motivate that learning through playing is valuable, and that there are interesting connections between concepts and patterns in the musical domain and in the more traditional software development domain.Hvorfor jeg må gjøre jobben til NRK
Speakers: Sindre Lindstad
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
I 2021 begynte NRK å publisere podkastene sine én uke senere på andre plattformer enn egen app, og en del podkaster er nå kun tilgjengelig i appen. For at jeg selv og andre lyttere skal kunne høre på dem som før, publiserer jeg åpne RSS-feeds. Men hvorfor må jeg det? Og hva er en podkast egentlig? Jeg viser frem løsningen jeg har satt opp for å automatisk oppdage og publisere podkaster, basert på NRKs åpne APIer. I tillegg vil jeg belyse noen av utfordringene med å begrense tilgjengeligheten til podkaster, hvorfor podkast er et fantastisk format, og hvorfor jeg fortsatt er ganske glad i NRK, tross alt.Utnytt 1Password til det fulle som utvikler
Speakers: Henrik Dæhli
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Lagrer du bare passord i 1Password? Det er på tide å utnytte verktøyet til det fulle! I denne presentasjonen viser jeg deg noen av de offisielle, men lite kjente, måtene 1Password kan hjelpe deg som utvikler. Med praktiske eksempler viser jeg deg hvordan du kan bruke 1Password til å: - dele SSH-nøkler mellom maskiner uten å måtte kopiere dem manuelt - låse opp SSH-nøkler med fingeravtrykk i stedet for passord - bruke hemmeligheter i kommandolinjen og konfigurasjonsfiler - dele hemmeligheter med teamet ditt Disse teknikkene kan spare en enkelt utvikler for mye tid. Men når hele teamet benytter seg av dem, kan man spare enda mer – spesielt ved håndtering av hemmeligheter og onboarding av nye teammedlemmer. Ikke bare vil du jobbe mer effektivt, men også øke sikkerheten ved å bruke 1Password til å administrere sensitive data. Presentasjonen passer for utviklere på alle erfaringsnivåer, uansett om man bruker Mac, Windows eller Linux. Bli med og lær hvordan du kan ta i bruk 1Password for å øke produktiviteten og sikkerheten i arbeidet ditt!Quantumania - an unexpected journey
Speakers: Andreas Ahlgren
Type: Lightning talk 🚀
Language: English 🇬🇧
This talk will be about technology and life, about being passionate about something and make (or force) your company and maybe even your country to adapt. But where do you start when no one shares or even understand the thing you truly belive is the future for yourself, your company, your nation - heck, the very world itself?Teknologisirkus med mange tilskuere
Speakers: Lars Reed
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
I Tolletaten har vi mange interessenter på utsiden, og mange løsninger av ulike generasjoner på innsiden. Erfaring har vist oss at ulike partnere har ulike teknologipreferanser, ulik endringstakt og -vilje, og behov som ikke nødvendigvis går i takt med våre egne. Dermed har vi prøvd å få til et isolasjonslag mellom ulike teknologisfærer – eller et anti-corruption layer om man er oppvokst med domenedrevet design.Why micro frontends are the s#@t
Speakers: George Harakis
Type: Lightning talk 🚀
Language: English 🇬🇧
Dealing with the limitations and headaches of using monolithic architectures in our web applications can be tiring. As developers, it's crucial that we're informed early in our careers about different paradigms that offer improved flexibility and faster deployment and development times! That's why you should join me to discover why micro frontends are the S#@T and why everyone should try them in their teams. Through examples, we'll demonstrate how this approach can help you break down your frontend into smaller, independent pieces and develop and deploy new features more quickly.Ergosplit og hersk: fra QWERTY til selvbygget tastatur
Speakers: Mats Faugli
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Siden skrivemaskinens opprinnelse har designet preget tastaturene vi bruker selv i 2022. I denne presentasjonen vil jeg fortelle om hvorfor og hvordan jeg gikk vekk fra QWERTY og piltaster, og endte opp med å bygge mitt eget tastatur med bare 36 taster.Laserkuttere + forsikringsselskap = Lykkeligere utviklere
Speakers: Glenn Brownlee
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Ansatte bør få regelmessig fri fra daglige oppgaver til å oppdage nye evner og gjøre uvanlige ting. Men, hvordan gjør du dette internt og hvordan overbeviser du sjefen om å gi deg tid til det? Du vil få høre om hvordan Fremtind kjører halvårlige skaperdager for alle ansatte hvor det lages teknologiske løsninger på samfunnsproblemer på tre dager.Er våre Pull Request reviews altfor hyggelige?
Speakers: Kent Inge Fagerland Simonsen
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
I tidligere Javazone iterasjoner har der vært enkelte innlegg som lot til å argumentere for at man burde være hyggelig og holde en kollegial tone når man forfatter en Pull Request (PR) review. Fordelene med dette er ting som at det kan bidra til bedre arbeidsmiljø og at kolleger blir tryggere på seg selv og hverandre. I denne lyntalen ønsker jeg å illustrere, via egen erfaring, at PR reviews oftere enn ikke er for hyggelige og at dette kan gå utover kvaliteten på en kodebase. Jeg vil gjøre dette ved å vise kontrasten mellom PR review og den akademiske peer review prosessen. Jeg vil vise at det er store likheter i formålet mellom disse to prosessene, men at resultatet kan divergere noe når det kommer til resultatet av disse prosessene. Videre vil jeg fremsette en hypotese om at hyggelig tone og korte tilbakemeldinger i PR utgjør en tapt mulighet for å lage enda bedre kode. Den vil jeg så underbygge med nøye utvalgte eksempler på både PR og akademisk peer reviews.How We Settle Millions Of Payment Transactions At Norwegian Air
Speakers: Dapeng Han
Type: Lightning talk 🚀
Language: English 🇬🇧
Norwegian Air Shuttle ASA is Norway's largest airline, and the fourth largest low-cost carrier in Europe. Every year millions of customers travel with Norwegian Air Shuttle. This ambitious company has been exploring innovative payment system for years to boost revenues and improve customer experiences. Join this talk to learn how we built custom settlement system to settle millions payment transactions of Norwegian Air Shuttle customers and how we achieve scalability and reliability by using AWS serverless technologies and which challenges serverless technologies help to solve and at the same time how it enables future possibilities for data engineering and advanced analysis.Scrumming the WoW Raid: Boosting Efficiency and Fun
Speakers: Malin Jakobsen
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Are you tired of endless project plans that seem to go nowhere? Do you feel like your team is struggling to hit its goals, no matter how much you plan ahead? You know I am talking about wow raids, right? Let's take a lesson from a project management framework: breaking down raid goals into smaller, actionable tasks. As a gamer and developer, I have seen how effective it can be to think like a project manager when approaching complex group setup. Just like in a raid, you need to organize your team, set up a schedule, and assign roles and responsibilities. In this 10-minute talk, I will share practical tips and examples from my experience raiding in world of warcraft, and how i used scrum methodologies to accomplish this. Whether you're leading a team of developers or coordinating to storm raszageth, by breaking down larger goals into smaller, more manageable tasks, you can make progress towards your objectives and build a sense of momentum that can carry you to success.Anta bias. Alltid
Speakers: Nora Gjøen-Gjøsæter
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
En maskinlæringsmodell blir aldri rettferdig. I alle fall ikke mer rettferdig en de data den er trent på. Og datasettene vi benytter foreslår som hovedregel at vi diskriminerer. Så kanskje vi rett og slett må akseptere at vi ruller ut ‘urettferdige’ maskinlæringssystemer? Men hvor mye skal vi tåle? Og hvordan beholder vi kontrollen, og sikrer at systemene våre holder seg under denne smertegrensen for diskriminering?Best practice -WTF!
Speakers: Totto
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
The consultancy business and similar entities frequently use the term best practice - but let us sit back and analyse the major flaws in the idea and concept for a bit. Because it is utterly meaningless.Using dynamic DNS for service discovery
Speakers: Rickard Öberg
Type: Lightning talk 🚀
Language: English 🇬🇧
One of the key architectural decisions when building systems is how to deal with service discovery. In this talk I will present the option of using dynamic DNS techniques to register services during lifecycle phases, and then use DNS-aware clients to take advantage of this. In particular I will show how to use SRV records to enable client-side load-balancing and failover, and how this enables clients to be configured with logical DNS names, and only the physical mappings change in DNS to make the system as a whole come alive.Onboard a developer to your project in 5 minutes flat by using Gitpod.
Speakers: Fredrik Hoem Grelland
Type: Lightning talk 🚀
Language: English 🇬🇧
In this lightning talk I will show how you can be onboarded a complex data engineering project in 5 minutes. Then I will proceed in delivering the first pull request following al the standards of the project. All live! Data Engineering consistency, speed and agility can be achieved by using a cloud development environments like Gitpod and GitHub Codespaces. Be inspired.Fra powerpoint til programmering - jobber du med det du egentlig vil?
Speakers: Jens-Christian Bjerkek
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Etter å ha vært leder i 15 år, fikk jeg min første jobb som programmerer. I dag kan jeg endelig si at jeg jobber med det jeg egentlig vil, men slik har ikke alltid vært. Så, hvorfor ble det slik? Dette er min historie om hvordan jeg etter mange år endelig forsto hva jeg ønsket å bruke tiden min på, og hvordan jeg gikk frem for å oppnå det. Kom og hør hva jeg lærte om meg selv og hva som må til for å både forstå og akseptere ens egentlige drømmer, samt hva man kan gjøre for å nå dem. Målet med historien min er både å inspirere andre til å følge drømmene sine, men også dele erfaringer om hva slags støtte man trenger underveis i denne prosessen. Jeg har oppnådd min drøm, men jeg gjorde det ikke alene.Vi skal alle bli gamle – husk å designe for eldre
Speakers: Elen Haksø
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Det snakkes mye om digitalt utenforskap. Vi har jo som mål å være digitalt inkluderende, men det finnes dessverre mange som faller utenfor. Eldre er en av gruppene hvor flere opplever digitalt utenforskap. Vi skal også bli mange flere eldre i nær fremtid: Statistisk Sentralbyrå estimerer at det i 2030 vil være flere eldre (65+) enn barn og unge (0-19), og at det i 2040 kommer til å være ca 50% flere eldre sammenlignet med i dag. En stor eldrebølge er på vei! Dessverre er det mange som har oppfatningen om at eldres digitaliseringsutfordringer er et generasjonsproblem som bokstavelig talt vil dø ut. Når dagens eldre går bort, vil neste generasjon eldre være digitalt modne og kompetente, ikke sant? Dette er nok dessverre ønsketenkning. For hva skjer når neste generasjon eldre møter neste generasjon med med ny teknologi? Hva skjer når dagens unge i fremtiden møter alderdommens fysiske og kognitive anstrengelser? For det er kjipt å bli gammel; Du får forverret syn, hørsel og mobilitet. Likevel medfører alderdom også mange usynlige endringer. Kognitive funksjonsnedsettinger kan medføre store utfordringer og påvirker blant annet korttidshukommelsen. Det blir vanskeligere å lære seg nye ting, problemløse, være effektiv og gjenta eller bevare informasjon. Alt dette påvirker eldres evne til å navigere det digitale samfunnet. Vi ønsker å fremme empati og kaste lys på hva som skjer med digitale brukere når de blir eldre. Målet er å hjelpe skapere av digitale løsninger å navigere og bistå den fortsettende eldrebølgen, og konsekvensene dette kan få for vårt digitale samfunn. Vi vil dele våre erfaringer og komme med praktiske tips til hvordan designe for eldre.Nyheter i JavaScript - ES2023
Speakers: Gaute Meek Olsen
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Hvert år kommer ny funksjonalitet til språket JavaScript. La meg gå gjennom hva som er nytt i 2023.A lightning fast practical intro to IPv6
Speakers: Steinar Bang
Type: Lightning talk 🚀
Language: English 🇬🇧
IPv6 has slowly started to appear and people may be using it without knowing it,... and be baffled when a DNS name resolves to an IPv6 address instead of an IPv4 address and e.g. ping suddenly can't route. This lightning talk aims to help people quickly troubleshoot and work around IPv6 problems they stumble over, explain why there may seemingly be an IPv6 address on your NIC but you still can't route, how to read and understand the cryptic and long hex strings that are IPv6 addresses, what it means if you have multiple IPv6 addresses on a NIC and more. Also a super-brief history lesson and why NAT sidelined IPv6 for so many years, as well as why IPv6 is making a comeback. And about what IPv6 can do that NAT'ed IPv4 can't. Much will be done in a live demo from a GNU/linux bash command line.Pull Requests eller Continuous Integration, du kan bare velge én!
Speakers: Gaute Magnussen
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Pull requests brukes mer og mer, og har nå nærmest blitt standard i dagens utviklingsteam. De fleste sier også at de har Continuous Integration, samt at de har eller ønsker Continuous Delivery og Continuous Deployment. Pull Requests og Continuous Integration jobber mot hverandre og det er i praksis er umulig å ha begge deler. Jeg skal snakke om fordeler og ulemper det ene gir i forhold til det andre og hvorfor du bør ta et bevisst valg rundt hva som gir verdi i ditt team og ikke bare velge “begge deler” fordi det er "Best Practice". Jeg mener Pull Requests for de fleste team er en dårlig idé og at de fleste team bør velge andre måter å gjøre code reviews og sikre kvaliteten på kodebasen.Quantum Computing - an army of Schrödinger's cats is heading our way
Speakers: Noah Hegerland Oldfield, Shaukat Ali
Type: Lightning talk 🚀
Language: English 🇬🇧
Quantum Computing (QC) is maturing to become a reality as a large amount of money worldwide is being poured into building quantum computers with varying technologies, such as superconducting, optics-based, and ion-trapping. Indeed, having functional, powerful, and error-free quantum computers together with relevant development platforms is essential. However, the breakthrough applications promised by QC, e.g., in medicine, healthcare, finance, and simulations discovery, finance, are empowered with quantum software. Therefore, there is a need for methods for efficient and intuitive development of quantum software for quantum computers to build QC applications. This lighting talk will start with a brief introduction to quantum computing, including the state of current quantum computers, QC platforms, programming languages, and development platforms. Next, the talk will dig deep into the current practice of programming quantum computers as low-level circuits. Subsequently, the talk will provide ideas on how the current practice can be improved to enable the masses to program quantum computers as opposed to the current practice where only specialists program quantum computers. In addition, the talk will present challenges in testing QC applications to ensure their correctness. Finally, the talk will provide a teaser of quantum software testing tools developed by our team. Such tools are the first in the world to automate the testing of quantum software.Da jeg knakk prod og det nesten knakk meg
Speakers: Aleks Gisvold
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Aleks opplevde å knekke prod i en av Norges største nettbanker. Med følelsen av å være en bankraner, var han forberedt på å miste jobben. I en stirrekamp med avgrunnen, i møtet med en utstrakt arm fra den siste personen han forventet skulle hjelpe ham.How you can participate in evolving JavaScript
Speakers: Mikhail Barash, Rolf Martin Glomsrud
Type: Lightning talk 🚀
Language: English 🇬🇧
JavaScript is an actively evolving language, and its design is overseen by ECMA Technical Committee TC39. We'll explain briefly how TC39 works and give a concrete outline of the steps needed to implement a new language feature. The talk is based on our own experience implementing `array.group()` for the SpiderMonkey engine.Erfaringer med lærlinger i IT-Utviklerfaget
Speakers: Tore Skjulstad Bryhni, Mads Pettersen Vengnes
Type: Lightning talk 🚀
Language: Norwegian 🇳🇴
Vi trenger flere utviklere i bransjen vår, og et nytt sted å finne dem er den nye utdanningsretningen i videregående skole hvor ungdom tar to år på yrkesfaglig skole, og deretter jobber som lærlinger ute i arbeidslivet i to år. Utdanningen avsluttes med fagprøve og kandidatene som lykkes har da et fagbrev som systemutvikler. De fleste kjenner til yrkesfaglig utdanning for IKT-Drift, men dette er en ny linje som retter seg mot de som ønsker å bli systemutviklere. Det første kullet har nå vært ute i lærlingjobben i ett år, og to av dem er hos oss i Statnett. To til starter i august og vi har dermed fire lærlinger tilsammen. På JavaZone stiller vi med en vaskekte lærling og med faglig leder for lærlingene våre. Vi ønsker å fortelle om våre erfaringer med lærlinger, både hva de lærer hos oss og hvordan de bidrar til vårt fagmiljø for systemutviklere. Ved å være med på utdanningsløpet for ungdom med stor interesse for systemutvikling og IT generelt kan vi også være med på å påvirke hva de skal lære. Vårt mål er at disse lærlingene skal fungere som systemutviklere i våre team når de er ferdige med utdannelsen, da vil de også kunne konkurrere med utviklere med lengre utdanning og dermed bidra til å få opp antallet systemutviklere i Norge. Vi tror at med god veiledning og to års erfaring som lærling vil disse være et interessant bidrag til fagmiljøene for systemutvikling.
Lightning talk 🚀
Code reading workshop
Speakers: Marit van Dijk
Type: Workshop 👥
Language: English 🇬🇧
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 workshop we will practice our code reading skills by reading an unfamiliar piece of code (possibly in an unfamiliar language), using structured exercises. Participants will practice reading code, and take away knowledge about how they can continue to improve this important skill.OpenTelemetry up and running in 2 hours
Speakers: Philipp Krenn
Type: Workshop 👥
Language: English 🇬🇧
OpenTelemetry is one of the fastest growing CNCF projects but this also makes it hard to keep up. This workshop provides a quick how-to on getting up and running quickly without getting lost in the details or theory.Explain Postgres Explain
Speakers: Jørgen Langemyr
Type: Workshop 👥
Language: Norwegian 🇳🇴
Bad SQL statements can ruin both performance and user experience. And in some cases, they can be quite hard to fix. Luckily most relational databases have a tool we can use to analyse the execution of queries, and understand where the problem lies. In this workshop we will be taking a look at Postgres' implementation of this functionality, called Explain. We'll use Postgres as it is a popular open-source alternative, but the principles you'll learn are transferrable to most other relational databases. We will talk about how to interpret the execution plans and get to know some of the most common operations. Underway, we'll be testing the theory on a supplied dataset to see how it works in practice. After completion, you should be able to read and analyse most queries. The workshop is intended for any developer who have basic knowledge of SQL, but want to understand how to improve their queries, or are just curious as to how a relational database works.Spring Boot 3 is here. where are you?
Speakers: Tim te Beek, Raquel Pau
Type: Workshop 👥
Language: English 🇬🇧
Platform teams define Golden Paths to specify the standard way to create, build and deploy an application or library. These are usually applied using templates, such as Cookiecutter. This provides autonomy to stream aligned teams to customize them. Are you faced with upgrading dozens of services to Spring Boot 3? Want an easier way to apply all that you’ve seen at work? In this workshop we’ll explore automation to get your old Spring projects onto the new Spring Boot 3.1. And we’re not just changing version numbers; we’re actually changing code to adopt breaking changes. Currently, there are several solutions to automatically upgrade the dependencies. However, in order to take advantage of the Spring API functionalities, it is necessary to also upgrade the source code, which usually conflicts with product priorities. In this workshop, we will explore tooling to migrate to Spring Boot 3.1 and beyond, centered around OpenRewrite. Topics include OpenRewrite itself, writing migration recipes, Spring Tool Suite and Spring Boot Migrator. We’ll explore challenges and limitations along the way, such that you can migrate on your own.Continuous accessibility testing
Speakers: Vegard Haugstvedt
Type: Workshop 👥
Language: English 🇬🇧
In modern software development, with short sprints or even continuous deployment of code, time for manual testing can often be scarce. If we want to properly test for accessibility, we need to make every effort to automate what can be automated, so we can spend our time where it is most valuable. By attending this workshop, you will get hands-on experience with different tools to test for accessibility. We will cover linting, unit testing and ui-/integration testing using Eslint, React Testing Library, Cypress and Axe. You will also learn about which types of tests you can't automate, and be introduced to some tools to aid your manual testing. This workshop is best suited for developers and technical testers, or others who know how to run a Node.js application. In order to get the most out of the time at the workshop, it is beneficial to pre-install Git and Node beforehand.Quarkus Deep Dive
Speakers: Kevin Dubois
Type: Workshop 👥
Language: English 🇬🇧
Java is a great programming language, however 'traditional' Java isn't so great to work with when it comes to modern, Cloud Native development. Quarkus is a (fairly) new Java stack that addresses issues such as the typical slow startup time and rather large memory usage that hinder the adoption of Java in container and/or Serverless workloads. Quarkus is not just useful for optimizing resource usage though. There is also a big focus on improving the developer experience. In this session we'll take a look at how Quarkus is very easy to work with and allows developers to work with containers and external dependencies such as databases, Kafka clusters, Kubernetes etc without being experts in any of these technologies. Not to mention that there is no need to manually recompile/redeploy to see any of these changes. After this session, the audience should come away with inspiration to build modern Cloud Native applications with Java and Quarkus, and have fun doing so!Domain-Driven Design and microservices Hands-on workshop
Speakers: Sandeep Jagtap
Type: Workshop 👥
Language: English 🇬🇧
This Hands-on workshop would help with learning Domain-Driven Design fundamentals and how to apply them for better microservices architecture. We will also cover how to decide on boundaries of microservices and how/when to split microservices using Domain-Driven Design. Why Domain-Driven Design? DDD is very useful for designing scalable systems and platforms and the basis for designing better microservices architecture. On the data side, DDD is useful for building distributed data architectures including data mesh. DDD also helps with organizing a large team. This one-day workshop will help you learn how to use domain-driven design to split domain and to design better microservice-style architectures. You’ll learn the DDD vocabulary and strategic patterns. Throughout the workshop, you’ll complete exercises in which the name of the domain-driven design concept is initially hidden until you code the problem statement, and then it will be revealed. Using simple coding use cases, you’ll learn DDD from the bottom-up to understand how current and existing code bases can be refactored to use DDD. You will learn - The relationship between DDD and microservices Tactical and strategic DDD patterns Domain model as the primary and most important layer in three-tier/three-layer and hexagonal architecture Domain events, which are the basis for event-driven architecture And you will be able to - Come up with a microservice using the DDD aggregate concept Design and evolve better boundaries for microservices using DDD Understand the domain layer and its importance in the overall success of a project Apply DDD tactical patterns to existing code bases Topics Covered : The what/why/when of domain-driven design; domain-driven design and friends What is a domain layer in the context of 3-tier/3-layer and hexagonal architecture? Hands-on exercises- Problems 1 , 2 and showcase Hands-on exercises- Problems 3 ,4, 5 and showcase DDD Concept 1 Hands-on exercises- Problems 6 and showcase DDD Concept 2 Hands-on exercises- Problems 7 and showcase DDD Concept 3 Hands-on exercises- Problems 8 and showcase DDD Concept 4 Hands-on exercises- Problems 9 & 10 and showcase DDD Concept 5 Relationship to microservices architecture. Demo of microservice code using DDD. Covers when to split microservices. Sagas, microservices communication patterns. Hands-on exercises- Problems 11 and showcase. Demo of microservice code DDD Concept 6 Relationship to microservices architecture. Demo of microservice code using DDD DDD Concept 7 & 8 Relationship to team topology,etc. Modular monolith Brief on Event sourcing, CQRS, Brief on Event storming and Domain Storytelling - Technique to find bounded contexts. Brief on Data Mesh and its relation to Domain-Driven Design.Elegant and Maintainable scripting with Clojure and Babashka
Speakers: Rahul De, Anupriya Johari
Type: Workshop 👥
Language: English 🇬🇧
Babashka is a native Clojure interpreter for scripting with fast startup. Its main goal is to leverage Clojure in places where you would be using scripting otherwise. By the end of the workshop you will know Babashka, it's ecosystem, and know when and how to use it. This is a great way to leverage our JVM experience in a scripting context and this workshop provides a practical way to learn and use it.Første flytur i Figma
Speakers: Vegard Hesselberg
Type: Workshop 👥
Language: Norwegian 🇳🇴
Har du noen gang hatt lyst til å bli bedre kjent med Figma? Denne workshoppen er myntet på utviklere som har lite eller ingen kjennskap til verktøyet, men som gjerne vil bli bedre kjent med det. Du blir kjent med frames, components og prototyping for å nevne noe. I løpet av workshopen vil jeg også dele av mine erfaringer og fortelle om noen av mine snarveier til design med Figma. Vi vil jobbe i et figma-brett jeg har laget – hver deltaker får sin egen kopi som kan brukes som referanse etter konferansen. Etter workshoppen vil du være i stand til å lage skisser og prototyper, og du vil ha et innblikk i økosystemet til Figma. Figma er et verktøy for grensesnittdesign, der utviklere og designere kan samarbeide på designprosjekter i sanntid. Figma brukes av de fleste virksomheter som utvikler programvare, og omtales ofte som “Google Docs for design”. Ta med egen PC. Jeg anbefaler å laste ned Figma på forhånd, men om nødvending kan det også brukes i nettleseren.Making the web Svelter (tm) with SvelteKit
Speakers: Joachim Haagen Skeie
Type: Workshop 👥
Language: English 🇬🇧
Single page apps and the library frameworks that supports them have transformed the web and moved the post regarding what the users expects from a web application. In all their glory, however, they do come with some drawbacks. For starters they mostly have a steep learning curve, forcing the developer to invest a significant amount of time to get acquainted with their library of choice. The nature of SPAs mean that the size of the application grows along the apps’ functionality, while often forcing the developers into a complex programming regime. In between SPAs and traditional web apps we find Svelte, occupying a new segment - transitional apps. As Svelte is a compiler and not a library, it gets around some of the constraints of the SPA libraries, being able to build extremely fast websites with a small footprint - as svelte can include only the parts you actually use instead of the whole library. This also means that the feature set offered with Svelte can grow without impacting the size and complexity of your own app. The development process is easy to get started with, while retaining the power needed to build complex apps that have the features a user have come to expect from a web app in 2021. In this workshop you will learn to build a complete website with SvelteKit, complete with backend requests, API development, server side rendering, and the reactivity you have come to expect from a modern web app.A little taste of testing the Java compiler
Speakers: Hasnae Rehioui
Type: Workshop 👥
Language: English 🇬🇧
One of the recurrent themes from my other compiler workshops is “can you debug it ?” , so in an attempt at getting that sorted I simply ended up running and writing tests ! No spoilers, we will all discover together whether or not I got that debugger attached :) So in my series of hacking on the Java compiler, we will focus this session on adding simple syntax updates and explore Jtreg the unit/regression test harness for OpenJDK.Den mangfoldige mobben
Speakers: Heidi Mork, Lars Jørgen Tvedt
Type: Workshop 👥
Language: Norwegian 🇳🇴
Mobb-programmering er når hele teamet jobber om å løse én oppgave, på samme tid, samme sted og med én datamaskin. Det høres kanskje merkelig ut om man ikke har prøvd arbeidsmåten før, men vi mener at mobb-programmering skaper drivkraft og fokus, gir god kvalitet, og gjør teamet mer robust. Opplevelsen av mobb-programmering blir ulik avhengig av personene i mobben og oppgaven som skal løses. I denne workshopen vil vi derfor utforske og reflektere over mangfold og utfordringer man kan erfare i en mobb. Først gir vi en introduksjon til mobb-programmering, og vi definerer noen enkle kjøreregler for mobben. Deretter deler vi oss i flere mobber og løser en liten programmeringsoppgave, samtidig som vi øver på å arbeide etter mobb-reglene. Det finnes ulike strategier og mønstre for samarbeid i mobb. I siste del av workshopen vil vi prøve å identifisere hvilke mønstre og strategier vi erfarte i mobben, og diskutere hvilke mønstre som kunne ha løst eventuelle utfordringer. Enten mobb-programmering er helt nytt for deg, eller du har prøvd det før og har mye å diskutere, vil du både kunne bidra og lære av denne workshopen!Learn Rust with Conway's Game of Life
Speakers: Julian Philipp Merlin Ertel
Type: Workshop 👥
Language: English 🇬🇧
Learn the basics of the Rust programming language by implementing the world's most iconic cellular automaton: Conway's Game of Life. The Rust programming language is a modern high-level language that offers memory-safety and thread-safety guarantees, great tooling and extremely high performance. It has repeatedly been voted the most loved programming language on Stack Overflow's developer survey and has been added as an officially supported language in Linux kernel development. If you want to get in on the fun or just see what this language is all about, this workshop is for you! In this workshop we will take a look at how to write Rust programs and how to build them using cargo. We will explore Rust's approach to object-oriented programming and tackle some of its more unique features like the borrow-checker. The goal is to get a good understanding of the basics of Rust and get some hands-on experience in using it.Hvordan gjøres en autentisering med Openid Connect sånn egentlig
Speakers: Øyvind Kallevik Grutle
Type: Workshop 👥
Language: Norwegian 🇳🇴
Du har kanskje oppdaget at flere nettsider og apper de siste årene lar deg logge inn med tredjeparts aktører, som Google, Facebook, Vipps, osv. I denne workshopen skal vi gå gjennom hvordan dette gjøres i praksis med å ta en titt under panseret til OpenID Connect (OIDC) standarden, og hvordan den åpner opp for å gi en tredjeparts aktør ansvaret for å gjennomføre autentiseringen av brukeren. Autentisering med OIDC er noe som vanligvis bør løses med å bruke biblioteker. I denne workshopen kommer vi derimot til å gjøre alt manuelt for å få en grundig forståelse for hvordan flyten fungerer.Securing the Container Supply Chain Workshop
Speakers: Hans Kristian Flaatten, Jan-Kåre Solbakken, Youssef Bel Mekki
Type: Workshop 👥
Language: English 🇬🇧
“Software supply chain” is a term describing everything that happens to code from the time it leaves the developers fingers until it runs in production. The code needs to be compiled, tested, packaged and deployed, and these steps take place in a variety of systems and use lots of complex third party solutions. Our apps also depend on an increasing number of third party libraries and frameworks that we often know next to nothing about. Several initiatives have been started in an attempt to address the issues surrounding supply chain integrity, the most noticeable one being Supply chain Levels for Software Artifacts - SLSA. SLSA aims to be vendor neutral and is backed by major players like the Cloud Native Computing Foundation and Google in addition to startups such as Chainguard. Cosign - Sigstore is a Linux Foundation project which is developing Cosign, a container signing, verification and storage in an Open Container Initiative (OCI) registry, making signatures invisible infrastructure. Kyverno - Kyverno is a policy engine designed for Kubernetes. With Kyverno, policies are managed as Kubernetes resources and no new language is required to write policies. In this workshop we will make a practical approach to securing your container applications and verify that the container has not been tampered with since it was built.