Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Invited Talk at TU Dortmund
Search
Martin Lippert
June 05, 2023
Programming
130
0
Share
Invited Talk at TU Dortmund
Martin Lippert
June 05, 2023
More Decks by Martin Lippert
See All by Martin Lippert
Model Context Protocol - Game Changer for AI Applications
martinlippert
1
120
OCX / EclipseCon 2024: GitHub Copilot + Spring: Making AI-Assisted Coding Spring Aware
martinlippert
2
110
OCX / EclipseCon 2024: Spring Tools Live - All the Great New Things
martinlippert
0
97
JUG Saxony Day 2023: Upgrade to Spring Boot 3? Spring Tools to the Rescue!
martinlippert
1
140
code.talks 2023: The Sustainability Mythbuster
martinlippert
0
140
The Sustainability Mythbuster
martinlippert
0
110
JCON_ONLINE_2022__From_Zero_to_Spring_Boot_Hero_using_GitHub_Codespaces.pdf
martinlippert
0
120
Devoxx UK 2022: Sustainability in Software Engineering - Today and Tomorrow
martinlippert
0
190
Java Cro 2022: Bootiful Spring Tooling for the Masses
martinlippert
0
190
Other Decks in Programming
See All in Programming
Feature Toggle は捨てやすく使おう
gennei
0
430
Strategy for Finding a Problem for OSS: With Real Examples
kibitan
0
140
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
120
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
170
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.5k
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
270
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
160
おれのAgentic Coding 2026/03
tsukasagr
1
130
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
850
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
500
Java 21/25 Virtual Threads 소개
debop
0
330
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
4.8k
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Unsuck your backbone
ammeep
672
58k
Into the Great Unknown - MozCon
thekraken
40
2.3k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
270
Mobile First: as difficult as doing things right
swwweet
225
10k
Claude Code のすすめ
schroneko
67
220k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
450
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.1k
Prompt Engineering for Job Search
mfonobong
0
250
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
KATA
mclloyd
PRO
35
15k
Transcript
Martin Lippert, Spring Tools Lead & Sustainability Ambassador @ VMware
June 2023 Invited Talk TU Dortmund
Why are you here?
Who am I ?
Software Engineer
Spring Tools Lead
None
VMware Apple Google Xerox PARC Stanford University Meta Intel Tesla
How I started
Schneider CPC 664 Z80 processor @ 4Mhz, 64 KB RAM
https://de.wikipedia.org/wiki/Amstrad_CPC#/media/Datei:Schneider_664_en.jpg 1985
Atari 1040 ST Motorola 68000 processor @ 8Mhz, 1024 KB
RAM @ Bill Bertram, 2006, https://de.wikipedia.org/wiki/Atari_ST#/media/Datei:Atari_1040STf.jpg
Atari TT 030 Motorola 68030 processor @ 32Mhz, 4 MB
RAM https://de.wikipedia.org/wiki/Atari_TT#/media/Datei:Atari_TT030.JPG
Apple Power Macintosh 6100 PowerPC 601 @ 60Mhz, max 72
MB RAM MIKI Yoshihito - https://www. fl ickr.com/photos/mujitra/13981566927/
On the software side?
None
Today
Software is everywhere
Software changes the world
How to develop truly great software?
Structure
Design Patterns Elements of Reusable Object-Oriented Software by Erich Gamma,
Richard Helm, Ralph Johnson, John Vlissides
Refactoring Improving the Design of Existing Code by Martin Fowler
Feedback Cycles
JUnit
Test-Driven Development
Test Driven Development By Example by Kent Beck
User Feedback
"Real Artists Ship" Steve Jobs
Agile Software Development
Extreme Programming Explained by Kent Beck
Distributed Systems
APIs and Evolution
Eat Your Own Dogfood
Test at scale
"Hello World" always work
Massive amounts of data
public long calculate(List<Order> orders) { long sum = 0; for(int
i = 0; i < orders.size(); i++) { sum += orders.get(i).getPrice(); } return sum; } What is the problem here?
Complexity Matters
t(n) = n6 vs. t(n) = 2n 103 machines in
parallel 109 operations per second n = 100 1s universe doesn’t exist long enough
"software is getting slower more rapidly than hardware is becoming
faster" Wirth’s Law
Back to the beginning
Running on Motorola 68030 processor @ 32Mhz, 4 MB RAM
What comes next?
Vulnerabilities CVEs are now part of your daily life
GenAI (probably more ML + LLM than intelligence)
Decarbonization super important
"The best way to predict the future is to invent
it" Alan Kay
Thank You for listening Martin Lippert @martinlippert