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
0
130
Invited Talk at TU Dortmund
Martin Lippert
June 05, 2023
Tweet
Share
More Decks by Martin Lippert
See All by Martin Lippert
Model Context Protocol - Game Changer for AI Applications
martinlippert
1
88
OCX / EclipseCon 2024: GitHub Copilot + Spring: Making AI-Assisted Coding Spring Aware
martinlippert
2
96
OCX / EclipseCon 2024: Spring Tools Live - All the Great New Things
martinlippert
0
83
JUG Saxony Day 2023: Upgrade to Spring Boot 3? Spring Tools to the Rescue!
martinlippert
1
120
code.talks 2023: The Sustainability Mythbuster
martinlippert
0
120
The Sustainability Mythbuster
martinlippert
0
100
JCON_ONLINE_2022__From_Zero_to_Spring_Boot_Hero_using_GitHub_Codespaces.pdf
martinlippert
0
110
Devoxx UK 2022: Sustainability in Software Engineering - Today and Tomorrow
martinlippert
0
180
Java Cro 2022: Bootiful Spring Tooling for the Masses
martinlippert
0
170
Other Decks in Programming
See All in Programming
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
200
Navigating Dependency Injection with Metro
l2hyunwoo
1
200
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
140
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
170
JETLS.jl ─ A New Language Server for Julia
abap34
2
460
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
8
3.4k
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
200
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
460
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
270
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
220
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1k
マスタデータ問題、マイクロサービスでどう解くか
kts
0
150
Featured
See All Featured
Scaling GitHub
holman
464
140k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
ラッコキーワード サービス紹介資料
rakko
0
1.8M
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
320
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
410
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
410
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
210
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
79
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
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