This page contains all the information about me and the talks I’m currently offering as a speaker, that is typically requested by organizers of conferences. If you want me to speak at your event, please contact me. If you want me to speak about a different topic, let me know.

Bio

Deutsch

Jens Schauder hat vor unglaublich langer Zeit auf einem in Assembler programmierbaren Tischrechner angefangen zu programmieren. Nach über 30 Jahren, davon fast 20 als Consultant für meist große Konzerne, hat er 2017 in das Spring Data Team gewechselt. Dort arbeitet er an allem was mit relationalen Datenbanken zu tun hat, erzählt davon auf Konferenzen oder hilft anderen Entwicklern auf Stackoverflow. Wenn er nicht programmiert, spielt er, läuft, macht Freeletics, bouldert und wenn die Inzidenz wieder dauerhaft unten ist, organisiert er auch wieder die JUG Ostfalen.

English

A long long time ago in a city far away Jens Schauder started coding on a desktop calculator programmable in assembly. Over 30 years later, after almost 20 years as a consultant working mostly with huge enterprises, he joined the Spring Data Team. Here he works mainly on the “JPA” and “JDBC” modules and tells about it at conferences or helps other developers on StackOverflow. In his spare time he spends time running, bouldering, playing games, torturing himself with Freeletics. And once the pandemic is under control he’ll restart the JUG Ostfalen again.

Talks

I can do all talks in English or German. Most talks therefore exist twice in the following list. If a talk exists only once it just means I submitted it only in language so far.

Interesting Times.

Nightmare of software developers are made out of date and time values. Timezones, calendar, point in time, wall clock time, dates with or without time, differences in precission are ingridients of this horror movie. Together with many APIs of varying (often low) quality which are guaranteed to be incompatible make for unbearable suspense. And when these value go into the dark cellar, also known as “the database” things get gruesome quickly.

We’ll face our fears and take a closer look. What APIs are relevant for the Java developer, what kinks do they have and how do they get abused. What special problems arise beyond timezones when you deal with historic data or when precision is of outmost importance.

When attending this talk you’ll improve your knowledge about dates and time and hopefully will have a good time while doing so.

Interessante Zeiten.

Aus Zeit und Datumswerten werden Albträume von Entwicklern gemacht. Zeitzonen, Kalender, Zeitpunkte, Uhrzeit, Datum mit oder ohne Zeitanteil, Unterschiede in der Präzession sind die Stilmittel dieses Horrorfilms. Verbunden werden mit APIs, die unterschiedlich gut (meist ehr schlecht) sind, aber auf jeden Fall inkompatibel sind, entsteht ein kaum erträglicher Spannungsbogen. Wenn dann die Datumswerte auch noch in den unbeleuchteten Keller gehen, sprich in der Datenbank gespeichert und wieder geladen werden, mag man sich nur noch die Augen zu halten.

Wir stellen uns unserer Angst und schauen uns das Ganze gründlich an. Welche APIs gibt es, die für Entwickler relevant sind. Welche Fehler sind darin verbaut und welche Fehler werden bei der Benutzung gemacht.

Ihr nehmt eine ordentliche Portion Wissen über die Fallen bei der Arbeit mit Zeit und Datumswerten mit und habt hoffentlich eine vergnügliche Zeit dabei.

Wir müssen reden - Depression, Suizid und was man tun kann

“Suizid war 2016 die zweithäufigste Todesursache der 15- bis 29-Jährigen.” (WHO Fact Sheet)

Wir reden über Verkehrstote, über Krebstote, über Drogentote. Dabei ist Suizid die einzige relevante Todesursache, bei der das “darüber reden” tatsächlich den Tod verhindern kann.

Also lasst uns darüber reden.

Im August 2020 habe ich mich mit einer schweren Depression und detaillierten Plänen zum Suizid in stationäre psychiatrische Behandlung begeben. Ich bin in die Klapse gegangen.

In diesem Vortrag werde ich berichten wie es dazu kam.

  • Warum ich diesen Schritt erst so spät gemacht habe.
  • Was in der Behandlung passiert ist.
  • Wie mir und anderen geholfen wurde.

Und vielleicht am wichtigstens: Was ihr tun könnt um euch selbst oder anderen zu helfen.

Dazu gehört natürlich, was Depression ist, und was sie nicht ist und unterschiedliche Formen, wie sie entstehen kann.

We Need to Talk: Depression, Suicide, and What You Can Do

“Suicide … was the second leading cause of death among 15-29 year-olds globally in 2016.” - World Health Organization Fact Sheet on Suicide

We talk about death caused by traffic accidents, cancer, or drug abuse. Only suicide is a relevant cause of death that can actually be prevented by “talking about it”.

So let’s talk.

In August of 2020, I got admitted to the hospital for major depression. At that time, I had specific plans to end my life.

In this talk, I’ll tell you about

  • How all this happened
  • What happened in the hospital
  • What helped me and others

Most importantly, I’ll talk about what you can do to help yourself or others.

Spring Data JDBC Beyond the Obvious.

The Domain Driven Design inspired ORM Spring Data JDBC intentionally puts some strict constraints on the way objects may be constructed in order to keep the concepts easy to understand. But of course nothing comes for free and sometimes these constraints might get in your way. In this talk we’ll look at some tricks you might use to solve such challenges.

After a short introduction in the basic concepts of Spring Data JDBC and a quick look at new features we’ll discuss topics like:

  • Bidirectional relationships.
  • ID generation strategies.
  • Context dependent query strategies.
  • Tweak the mapping when you don’t like what Spring Data is doing.

The goal is to have a talk which may serve as a first introduction to Spring Data JDBC but also caters to those already using Spring Data JDBC, deepening their understanding of how Spring Data JDBC works and therefor how to use it.

Spring Data JDBC Beyond the Obvious.

Das, durch Domain Driven Design inspirierte, ORM Spring Data JDBC limitiert ganz gezielt die Art und Weise wie Objekte modeliert werden können. Dies hat den Zweck Spring Data JDBC konzeptionell einfach zu halten. Dies kann dazu führen, das Spring Data JDBC nicht das tut, was man möchte. In diesem Vortrag teile ich einige Tricks und Strategien, wie man solche Probleme angehen kann.

Nach einer kurzen Einführung in die Grundlagen von Spring Data JDBC und Vorstellung der neusten Features werden wir uns Themen wie die folgenden anschauen:

  • Bidirektionale Beziehungen.
  • ID Generierung.
  • Kontextabhängige Abfragestrategien
  • Fine tunen von mappings.

Das Ziel ist, das dieser Vortrag sowohl für Einsteiger geeignet ist, aber auch für erfahrene Spring Data JDBC Nutzer interessant ist, da er ein tieferes Verständnis davon vermittelt, wie Spring Data JDBC funktioniert und wie es genutzt werden kann.

Nur ein Quantensprung oder ist es was wirklich Neues?

Was sind Quantencomputer und wird es demnächst ein Spring Quantum geben?

Im Oktober 2019 hat Google verkündet, dass sie “Quantum Supremacy” erreicht haben. Da fragt sich der nervöse Softwareentwickler, ob er schon wieder was Neues lernen muss, oder ob es reicht eine weiteres Spring Modul auf start.spring.io auszuwählen.

Wir werden uns die Sache von der Basis her anschauen. Wie funktioniert ein Quantencomputer? Wie wird er programmiert? Wo kann man das ausprobieren? Warum gibt es einen solchen Hype darum? Und haben wir wirklich “Quantum Supremacy” erreicht?

Am Ende des Vortrags werdet ihr den Titel verstehen und euch eine fundierte Meinung bilden können, ob ihr tiefer in das Thema einsteigt oder ob ihr das Feld den Akademikern überlassen wollt.

Spring Data JPA from 0-100 in 60 minutes.

JPA is the most popular persistence technology for JAVA. In this talk, we’ll look into how it works and how it integrates with Spring by means of Spring Data JPA. We’ll look at the various ways one may use Spring Data from ready-made queries over query derivation, query by example, specifications, paging and sorting to custom method implementations.

We’ll also take a look at common pitfalls of JPA and how to circumvent them. And if time is left we’ll take a glance at other technologies available to Java developers to complement JPA and how these integrate with Spring Data.

Participants will learn to distinguish between JPA and Spring Data JPA, the various features Spring Data JPA offers and when to use which feature to achieve their goal.

Spring Data JDBC: The new kid on the block

Mit Spring Data ist bekannt für seine von Domain Driven Design inspirierte Repository Abstraktion. Diese erlaubt den Zugriff auf unterschiedliche Persistenztechnologien wie JPA, MongoDb, Redis und andere mit einer konsistenten API. Seit dem Lovelace Release Mitte des Jahres gibt es eine weitere Technologie, die unterstützt wird: JDBC.

Dieser Talk wird den aktuellen Stand von Spring Data JDBC demonstrieren und erläutern warum JDBC neben JPA Sinn macht. Darüber hinaus gibt er Einblick in wesentliche Designgrundlagen und Entscheidungen, die Spring Data JDBC zu Grunde liegen.

Nach dem Vortrag sollten Teilnehmer in der Lage sein, für sich zu entscheiden, ob der Einsatz von Spring Data JDBC für ihre Persistenzbedürfnisse eine Option ist.

The new kid on the block: Spring Data JDBC

Spring Data is mostly known as a way to create Repositories as described in Domain Driven Design (DDD) for persistence technologies like JPA, MongoDB, Redis, and others. We now support another technology: JDBC. Spring Data JDBC is an opinionated library for persisting your data to a relational database. This talk will describe the current state of Spring Data JDBC, its features and the underlying design decisions, especially how the Spring Data team attempts to walk the tightrope of offering a DDD-based API and at the same time allow precise control of each and every SQL statement issued to the database.

After this talk, the audience will be able to make a well-grounded decision if Spring Data JDBC is worth to look into for their specific challenges and what to expect from it.

Domain Driven Design with Relational Databases using Spring Data JDBC

Domain Driven Design introduces the concepts of Aggregate, AggregateRoot, and Repository. If one takes these concepts serious certain habits we picked up while fighting working with JPA become unacceptable. Even more, a substantial part of the complexity of JPA seems to become superfluous. The result will be performant, scalable, and maintainable.

A drawback of this approach is that we might have to fight our database administrator. But you can’t have it all, can you?

As it turns out Spring Data JDBC supports this approach rather well.

In this talk, I’ll present how to design an object model the DDD way, why this might be a good idea and how to build a persistence layer for it backed by Spring Data JDBC.

And I’ll even figuratively bring some candy to pacify the Database Admins.

Domain Driven Design mit Relationalen Datenbanken (und Spring Data JDBC)

Domain Driven Design (DDD) führt die Konzepte Aggregate, Aggregateroot und Repository ein. Wenn man diese Konzepte ernst nimmt stellt man fest, dass viele Dinge, die man sich im Kampf in der Arbeit mit JPA angewöhnt hat nicht wirklich akzeptabel sind. Mehr noch, es werden sogar ganze Features von JPA überflüssig oder zumindest wesentlich weniger wichtig.

In diesem Vortrag stelle ich vor welche Auswirkungen DDD auf ein Objekt Modell hat, und wie dies massiv die Komplexität reduziert. Wir werden sehen, wie es Integrationstests vereinfacht und ganze Kategorien von Fehlern vermeidet, die aktuell in sehr vielen Datenbankanwendungen vorhanden sind.

Diese Designentscheidungen eröffnen schließlich auch noch die Möglichkeit über die Vor- und Nachteile von Foreignkeys nach zu denken um diese gezielter und bewusster einsetzen zu können.

Das beschriebene Vorgehen ist integraler Bestandteil der Architektur von Spring Data JDBC und in den letzten ca 10 Minuten werden wir dies nutzen um uns das Ganze in der Praxis anzuschauen.

Kommunikation für Softwareentwickler und alle anderen.

Kommunikation mit Computern ist wundervoll einfach. Sie erfolgt fast ausschließlich schriftlich, d.h. Ich kann mir so viel Zeit lassen wie ich will und mir über die Formulierung und meine Ziele in Ruhe Gedanken machen. Und wenn ich was falsches Schreibe, bekomme ich eine Fehlermeldung, und kann es nochmal versuchen. Aber am wichtigsten: Wenn ich zweimal das Gleiche tue, bekomme ich das gleiche Ergebnis. Mit Menschen ist dies alles viel komplizierter. Aber auch das kann man lernen! Warum ändert kaum jemand seine Meinung, wenn er mit Fakten konfrontiert wird? Wie erziehe ich Manager, Ehemänner und Kinder? Sollte ich Entwickler, die sich an Architekturvorgaben nicht halten durch Schläge oder durch Liebesentzug strafen? Und wie kann ich das üben, wo ich doch meinen Lebensabschnittsgefährten, nach einem fehlgeschlagenen Testlauf, nicht so einfach neu instanzieren kann?

Communication for Software Developers and all Others.

Communication with Computers is wonderfully easy. It’s almost exclusively in writing. This means I can take as much time as I want to fine tune my wording and to reflect on my goals. And if I write something that doesn’t work I get an error and can try again. But most importantly: If I do the same thing twice, I get the same result. Everything is much more complicated than this with real humans. But you can still learn it! Why does hardly anybody change his mind based on facts? How do I train manager, spouses, and children? How should I penalize a developer not conforming to architecture rules? How can I practice this when I can’t just reinstantiate my spouse after a failed test run?

Das Leben als OSS Entwickler - Wie fühlt sich das an? Und wie wird man einer?

Im Februar 2017 habe ich bei Pivotal angefangen zu arbeiten und wurde ein Teil des Spring Data Teams. Mit meinem Hintergrund als Enterprise Software Entwickler war dies eine ziemliche Umstellung. Seit dem gehen mir 2 Fragen im Kopf herum: Was macht es möglich, dass die Arbeit an einem Open Source Software Projekt so anders (und angenehmer) ist? Wie bin ich hier gelandet?

In diesem Vortrag beantworte ich die Fragen, so weit ich es kann. Als Grundlage werde ich erzählen, wie mein Arbeitsalltag aussieht, und einiges an Anekdoten aus meinem Leben.

Nach dem Vortrag solltet ihr in der Lage sein zu entscheiden, ob OSS Entwicklung etwas für euch ist. Ihr bekommt vielleicht die eine oder andere Idee, was ihr in eurem Team verändern könntet und wie ihr eure Karriere vorantreibt und weiterentwickelt. Und wenn das alles nichts für euch ist, könnt ihr wenigstens Hoffnung daraus ziehen, das jemand, der so viele dumme Dinge getan hat wie ich trotzdem den beinahe perfekten Job gefunden hat.

Being an OSS Developer - What does it feel like and how do you get there?

In February 2017 I joined Pivotal and became part of the Spring Data Team. Coming from a career as a consultant (read software developer) for huge enterprises this was a huge change for me. And certainly a change for the better. Ever since I can’t get two kinds of questions out of my head: Why is working on Open Source Software so different (and so much more fun)? How the f*** did I manage to get here?

In this talk I’ll try to answer these questions as far as I have answers. As a basis I will explain how working in the Spring Data team does work, and I will tell a good measure of anecdotes from my life.

In the end you should be able to decide, if you would like to work on a similar team. You might have some ideas about changing things in your team and possibly how to approach your career. And if nothing else you may funnel hope from the fact that someone doing as many stupid things as I did, did still end up with something pretty close to the perfect job.

Links

Blog: http://blog.schauderhaft.de

Twitter: https://twitter.com/jensschauder

GitHub: https://github.com/schauder

Xing: https://www.xing.com/profile/Jens_Schauder

LinkedIn: https://www.linkedin.com/in/jens-schauder/

Foto

Foto of Jens Schauder

Talks

Wan't to meet me in person to tell me how stupid I am? You can find me at the following events: