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 the University of Warwick): Th...
Search
Martin Lippert
January 12, 2012
Technology
0
88
Invited Talk (at the University of Warwick): The daily software engineering life - How to be prepared
Martin Lippert
January 12, 2012
Tweet
Share
More Decks by Martin Lippert
See All by Martin Lippert
Model Context Protocol - Game Changer for AI Applications
martinlippert
1
26
OCX / EclipseCon 2024: GitHub Copilot + Spring: Making AI-Assisted Coding Spring Aware
martinlippert
2
71
OCX / EclipseCon 2024: Spring Tools Live - All the Great New Things
martinlippert
0
57
JUG Saxony Day 2023: Upgrade to Spring Boot 3? Spring Tools to the Rescue!
martinlippert
1
92
code.talks 2023: The Sustainability Mythbuster
martinlippert
0
98
Invited Talk at TU Dortmund
martinlippert
0
110
The Sustainability Mythbuster
martinlippert
0
81
JCON_ONLINE_2022__From_Zero_to_Spring_Boot_Hero_using_GitHub_Codespaces.pdf
martinlippert
0
82
Devoxx UK 2022: Sustainability in Software Engineering - Today and Tomorrow
martinlippert
0
150
Other Decks in Technology
See All in Technology
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
3
22k
使いたいMCPサーバーはWeb APIをラップして自分で作る #QiitaBash
bengo4com
0
2k
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
130
Yahoo!しごとカタログ 新しい境地を創るエンジニア募集!
lycorptech_jp
PRO
0
130
関数型プログラミングで 「脳がバグる」を乗り越える
manabeai
2
200
Reach American Airlines®️ Instantly: 19 Calling Methods for Fast Support in the USA
flyamerican
1
170
20250705 Headlamp: 專注可擴展性的 Kubernetes 用戶界面
pichuang
0
280
20250707-AI活用の個人差を埋めるチームづくり
shnjtk
6
4k
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
3
7.4k
Operating Operator
shhnjk
1
600
CDK Vibe Coding Fes
tomoki10
0
100
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
250
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Designing Experiences People Love
moore
142
24k
Become a Pro
speakerdeck
PRO
29
5.4k
Docker and Python
trallard
44
3.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
970
We Have a Design System, Now What?
morganepeng
53
7.7k
RailsConf 2023
tenderlove
30
1.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
740
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
Transcript
The daily software engineering life - How to be prepared
- Martin Lippert, VMware
[email protected]
@martinlippert
Martin Lippert Lead of Spring Developer Tools at VMware Founder
of it-agile GmbH Developer, Architect, Coach, Technical Lead
- 1 - Software Engineering Fundamentals
Writing something that runs is easy Writing good software is
hard
Essential: Programming Languages Algorithms Data Structures
The „old“ parts: the difference between ArrayList and LinkedList? how
does a HashMap work? how does a relational database look like? The „new“ parts: how does MapReduce works? what about distributed and messaging systems? what are key/value stores, document and graph dbs?
O(n)
Concurrency is becoming more and more important
Deep understanding necessary e.g. Who knows how the Java Memory
Model works? What does „notify()“ mean? What is garbage collection? How does it affect my programming?
Parallelism is becoming more and more important
Different thinking necessary e.g. parallel vs. optimized non-parallel algorithms distribution
- latency - redundancy - fault tolerance
„comments lie - code doesn‘t“
Modularity Dependency Management remember? don‘t let your code look like
this...
SOLID principles Single responsibility principle Open/closed principle Liskov substitution principle
Interface segregation principle Dependency inversion principle http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
- 2 - Domain Driven Engineering
! Knowing the technology is essential - but it is
not enough
Is the software correct? But what does it mean? Correct?
You need to understand the domain, the problem, and the
context (the „why“)
Agile Software Development Extreme Programming Scrum Kanban - Inspect and
adapt -
- 3 - Daily Engineering
Working with existing code reading and understanding refactoring code regression
testing
Test-Driven Development Red - Green - Refactor
Programming in small steps for all kinds of problems
„What you don‘t ship doesn‘t exist“
Continuous... Integration Delivery Deployment
DevOps
must read...
Thank you very much! QA Martin Lippert
[email protected]
@martinlippert