Better software, faster.
-
The value of learning and sharing
duration: 45 minutesAs a developer, two of the best ways for me to progress in my career have been learning from others and sharing with others. In this talk, I’ll talk about my journey of learning and sharing. I’ll explain how I became active in software communities; first by joining and consuming, later by organizing and presenting. I’ll share my journey from an aspiring speaker at in-company events to taking the stages of big international conferences. I’ll end with explaining why I believe that deliberate learning and sharing is important and I’ll give you a couple of practical tips to get started. After this talk, you’ll be ready to boost your career by engaging in learning and sharing too! -
Software architecture in a DevOps world
duration: 40 minutesMost modern software teams strive for Continuous Delivery of business impact with a DevOps mindset: you build it, you run it. With short iterations and continuous feedback loops, teams deploy new software to production daily. But how about the role of a software architect in such a fast-paced world? With daily deployments, is there even time for software architecture? As an architect, how do you prevent being a delaying factor to the pace and success of a team? And how do you keep up? In this session, I’ll share my experiences as a software architect in the DevOps world. I’ll talk about “just enough” architecture and moving from up front design to evolving architecture. After this session, you’ll have practical insights and tips in how to work as an architect with a DevOps team. -
Mastering the Linux command line
duration: 45 minutesShort version: I’ll show you everything you need to know about the Linux command line as a developer.
Long(er) version:
As a developer, you often have to deal with Linux servers. Troubleshooting, digging through logs, editing configuration files, you name it. If you’re used to working with Windows or OSX GUI’s, the Linux terminal might appear fairly basic and difficult to use.
But, with some basic background knowledge and a small set of terminal commands in your toolbox, it can actually be extremely powerful and loads of fun!
In this session, I’ll explain the concepts behind the Linux command line and I’ll demo loads of useful stuff. You’ll learn how to quickly navigate, find files, examine and search through logs, how to investigate a system under load, a bit of shell scripting, ssh tunneling and more!
This talk takes places entirely in the command line. No slides, no IDE, just a plain terminal window. After this session, you’ll be on your way to master the Linux command line yourself!
-
Generic or Specific? Making sensible software design decisions
duration: 45 minutesIn software design and software architecture, we often face the question: should we build this generic or specific? Usually, this is not an easy question to answer. The answer depends on a lot of different factors, including future factors you may not be aware of - yet.
In this talk, I’ll share my experiences and thought process as a developer and software architect with choosing between generic and specific solutions. I’ll talk about generic vs specific design & architecture, both on a project level and organization level. We’ll look at sharing code/components between teams, inner source culture, monorepo’s, microservices, lifecycle management of generic components and strategic design as a tool to help decide. After this talk, you’ll have practical insights that can help you to choose between generic and specific solutions yourself.
-
Do we still need architects?
duration: 40 minutesYears ago, when all software projects were doing big up front design, it made perfect sense to have full time architects work on an architecture a couple of months before development would start. The impact of making a wrong choice could have a disastrous impact on the project’s success, after all.
But nowadays, most projects are using agile approaches to software development with quick feedback loops where we can recalibrate our architecture every sprint. Therefore, wrong choices have only limited impact and we don’t need architects anymore - right?
In this talk, we’ll look back at what changed in software development in the past 10-15 years: from waterfall, monoliths and your own servers in your own datacenter to agile, microservices, cloud and DevOps. We’ll look at the impact these changes had on how we approach software architecture and will ask ourselves: do we still need architects?
-
Debugging distributed systems
duration: 75 minutesNowadays, most software projects are distributed systems: components are located on different networked computers which communicate and coordinate their actions by passing messages. Debugging distributed systems is not easy. When two components don’t play nice together, the cause could be virtually anything: software, DNS, routing, firewalls, proxies, load balancers, TLS.. and more!
In this talk, I’ll share my experience with debugging distributed systems. We’ll look at typical issues and share ways to debug those issues and find their root causes. We’ll dive into networking, infrastructure, logging/tracing/metrics, testing, remote debugging and more. I’ll share lots of examples and war stories along the way. After this talk, you’ll have practical knowledge on how and where to get started with debugging distributed systems yourself!
-
The Joy of Coding Competitions
duration: 30 minutesIt’s been a while since I’ve worked on a full time development project. But I love coding.. so how do I stay in touch with my inner developer? By participating in coding competitions!
These types of events typically challenge you by solving a difficult problem or delivering a solution in the least amount of time - or even in the least amount of characters of code.
In this fast-paced talk, I’ll introduce you into the world of coding competitions. I’ll talk about challenge types, approaches, strategy, the community aspect and I’ll share a couple of examples from competitions and challenges I participated in. Join me and learn about the Joy of Coding Competitions!
-
Getting started with speaking
duration: 60 minutesHave you wondered what it takes to be a successful speaker? Where to start, which topic to pick, and how to deliver? You’ll find answers to these questions in this session, delivered by two experienced speakers. Come learn why speaking is both fun and important. We’ll give you tips on getting started, writing proposals, preparing for the talks, and to deliver a great presentation. We’ll share our experiences, what has worked, what has not, and provide some key take-aways. After this session, you’ll be ready to start on your own journey to speak at technical events. -
Better software, faster: principles of Continuous Delivery and DevOps
duration: 50 minutesThe Wall Street Journal already mentioned it in 2011: “Software is eating the world.” Nowadays, every company is an IT company. Product owners and other business representatives seeing their competitors release new features to end users every day are demanding the same from their own software teams. How do you measure up to this heavy pressure as an IT organization? How do you quickly make changes to software systems in fast-paced environments without losing your grip on quality? How do you build and test software in such a way that it’s always in a releasable state?
This session explains the principles of Continuous Delivery and DevOps. You’ll leave with enough insights into how and where to get started yourself.
-
Angular for Java developers
duration: 45 minutesFront-end development has evolved massively. New tools, libraries and frameworks are released every day. But how do you keep up with this as a Java developer? Which frameworks should you learn, and where do you get started?
Angular is without doubt one of the most popular frameworks for building modern web front-ends. And one of the good things about Angular is: most of its concepts are not that far off from everything we now from the Java world. Take TypeScript for example – you now can write proper typed code in the browser!
In the past years, I’ve spent a fair amount of my time at work developing front-ends with Angular, starting with the early 2.x betas to the current 12.x release. In this session, I’m sharing my experience as a Java developer with developing Angular applications.
I’ll explain all about tools like npm, rxjs, sass, karma, protractor and compare them to their counterparts in the Java ecosystem. I’ll start with an empty IDE and live code my way to a working Angular application connected to a Spring Boot backend, sharing lots of tips, insights and gotcha’s.
At the end of this session, you’ll know enough about Angular to get started yourself right away!
-
The DevOps disaster: 15 ways to fail at DevOps
duration: 42 minutesGetting DevOps right isn’t easy. It’s downright hard. In this talk, I’m not going to explain how to ‘do’ DevOps in your organisation, since there is not just one ‘right’ way to do it. What I can show you however, is how NOT to do DevOps. This session shares 15 common misconceptions, call them anti-patterns, of DevOps. I’ll talk from my own experiences in getting things wrong, explain why they are wrong and prevent you from making the same mistakes. You’ll leave this session with a basic understanding of how (not) to fail at DevOps and hopefully, a smile on your face ;-) -
Continuous performance: load testing for developers with Gatling
duration: 70 minutesPerformance testing is traditionally a task for specialists that takes place at the very end of the software delivery life cycle. But how does this fit in with a DevOps way of working, where continuous feedback is one of the key points? It doesn’t. In a world where scalability and performance are just as important as delivering new features, you need to embed performance testing in your daily development workflow: it needs to become a natural part of development. And this is where Gatling comes in… -
Going serverless with Quarkus, GraalVM native images and AWS Lambda
duration: 50 minutesShort version: In this talk, I’ll show how I migrated the backend for the NLJUG conference app (used for J-Fall, J-Spring and more events) from Spring running on Linux virtual machines to Quarkus running as GraalVM native image on AWS lambda.
Long(er) version: In this talk, I’ll show how I migrated the backend for the NLJUG conference app from a traditional approach with Java and Spring running on Linux VM’s to a fully serverless architecture with Quarkus, GraalVM native images, AWS lambda, API gateway and DynamoDB. I’ll talk about (and demo) the Quarkus development experience, migrating code to Quarkus, creating native images and the caveats involved, testing, deploying to AWS with the SAM CLI, monitoring, costs and more.
-
Making significant software architecture decisions
duration: 52 minutesSoftware architecture represents the significant design decisions that shape a system, where significant is measured by the cost of change. At its core, architectural decision-making is about balancing trade-offs to align technical solutions with broader requirements. I’ll share a structured approach to making informed, high-impact architecture decisions. You’ll walk away with practical strategies to make better architectural decisions in real-world projects. -
Building a self-driving RC car
duration: 50 minutesThis session will share our experiences in converting a small remote controlled car into an autonomous driving vehicle. We’ll talk about electronics, sensors, AI, computer vision and of course, the software that ties everything together. We’ll introduce you into the world of self driving cars and compare our solution to the stuff that is done in the big leagues by the likes of Tesla’s ‘autopilot’ and Waymo’s self driving cars. -
Building microservices with Vert.x
duration: 52 minutesVert.x is a toolkit for building reactive applications on the JVM. It’s event driven, non blocking and polyglot, which makes it an excellent platform for building microservices. In this talk, I’ll share experiences and real-world use cases from a Dutch company that started building reactive web applications with Vert.x about 3 years ago. You’ll learn the concepts behind Vert.x, why we chose Vert.x, how we’re using it and the challenges we faced. -
Microservices in action at the Dutch National Police
duration: 50 minutesMicroservices? At the Police? Definitely! At the Cloud, Big Data and Internet division of the Dutch National Police, 4 DevOps teams use the latest open source technology to build high tech, cloud native web applications in a private cloud. In this session, I’ll share our experiences and real-world use cases for microservices. -
Decoding the air around you with Java and $7 hardware
duration: 50 minutesSoftware-defined radio (SDR) is a radio communication system where parts of the components are implemented in software. In this session I will explain the basic concepts of software-defined radio and show how to use a 7 dollar USB stick to receive and decode AIS messages from ships and ADS-B messages from airplanes. -
From Spring Boot to Quarkus
duration: 46 minutesWhen you’re building (micro)services, you have lots of framework options. Spring Boot is no doubt a popular choice. But there’s more! Take Quarkus, a framework that’s considered the rising star for Kubernetes-native Java. Let’s compare the two by looking at a couple of common use cases in Spring Boot and live coding their Quarkus counterpart. -
Understanding Log4Shell: vulnerability, attacks and mitigations
duration: 52 minutesLog4Shell (CVE-2021-44228) is a zero-day vulnerability in Log4j, a popular Java logging framework. Watch this video for answers! Java champions Roy van Rijn and Bert Jan Schrijver dive into the vulnerability together by explaining its origin, looking at the inner workings and showing a live demo. -
How good of a developer are you?
duration: 60 minutesAre you a good Java developer? What makes a good developer? And how can we measure this? In this talk we’ll describe our long journey to find a better way to test software development skills; a model based on scientific research, to measure actual coding skills, in a realistic environment. -
Pipeline as code: building Continuous Delivery pipelines with Jenkins 2
duration: 56 minutesBuilding Continuous Delivery pipelines with Jenkins 2.
Looking for a specific topic not listed above?
INQUIRE ABOUT CUSTOM KEYNOTES