Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Invited Talk (at the University of Warwick): Th...
Search
Martin Lippert
January 12, 2012
Technology
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Invited Talk (at the University of Warwick): The daily software engineering life - How to be prepared
Martin Lippert
January 12, 2012
More Decks by Martin Lippert
See All by Martin Lippert
Cognitive Debt - What AI will do to us
martinlippert
1
88
Model Context Protocol - Game Changer for AI Applications
martinlippert
1
160
OCX / EclipseCon 2024: GitHub Copilot + Spring: Making AI-Assisted Coding Spring Aware
martinlippert
2
150
OCX / EclipseCon 2024: Spring Tools Live - All the Great New Things
martinlippert
0
130
JUG Saxony Day 2023: Upgrade to Spring Boot 3? Spring Tools to the Rescue!
martinlippert
1
170
code.talks 2023: The Sustainability Mythbuster
martinlippert
0
190
Invited Talk at TU Dortmund
martinlippert
0
160
The Sustainability Mythbuster
martinlippert
0
130
JCON_ONLINE_2022__From_Zero_to_Spring_Boot_Hero_using_GitHub_Codespaces.pdf
martinlippert
0
140
Other Decks in Technology
See All in Technology
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
180
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
230
購入ドメインでの課題と取り組み
ykagano
0
140
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
410
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
520
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
150
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
260
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
490
ミイダス株式会社 テックチームのご紹介 / MIIDAS Tech Team
miidas
0
160
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
350
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
280
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
140
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
The Curse of the Amulet
leimatthew05
3
15k
Designing Experiences People Love
moore
143
24k
Optimizing for Happiness
mojombo
378
71k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
550
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
Visualization
eitanlees
153
17k
Why Our Code Smells
bkeepers
PRO
340
58k
Test your architecture with Archunit
thirion
2
2.4k
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