SlideShare a Scribd company logo
The senior dev
An opinionated take
Luciano Mammino (@loige)
2022-03-10
Agenda
Discuss what is expected from a senior
software engineer (skills, mindset, duties)
Packed with opinions* (my own and m o re)
For devs to be inspired
For managers to hire, set expectations,
support, and evaluate
Photo by Alexander Milo on Unsplash
* opinions are subjective
Meta slide
loige.link/senior
These slides are already online if you want to grab them! 👇
Hello
👋I'm Luciano
14 years in the industry
Senior Architect at fourTheorem
Co-author of Node.js design Patterns
❤️
Node.js, AWS & learning Rust 🦀
Let's connect
Blog
Twitter
LinkedIn
GitHub
Twitch
YouTube
nodejsdesignpatterns.com
A senior engineer
The definition changes in every company
There are many levels of seniority: senior,
staff engineer, principal, etc.
My definition: moves projects & people
forward ("Force multiplier")
Team player, not a hero (or rockstar,
superstar, magician, unicorn, etc.)
Photo by Rudolfo Spott on Unsplash
It’s not just about time
or age
5 years of experience
At least 28 years old
More time ?== more senior…
Photo by Elena Koycheva on Unsplash
Skills
Tech skills (hard skills) Soft skills
🤗Somewhat important! 🔥Very important!
Photo by Moritz Mentges on Unsplash Photo by Icons8 Team on Unsplash
Tech skills
T-shaped profile
Master at 1 thing
Proficient at many other things
Example:
Master at backend & API development
Can do some frontend
Can do some IaaC
Understands cloud architectures
Photo by Lucas van Oort on Unsplash
Broad understanding
Understand the platform
Architecture
Code Structure
Testing
Deployment process
Scalability model
Photo by Jen Theodore on Unsplash
Understand tradeoffs
Eg.
Monolith vs Microservices
Memory vs CPU
Highly Scalable vs low latency
Reusable vs bespoke
Complex (but powerful) vs Simple (but
limited)
Optimizes for the most relevant ones
Understands the short vs long term impact
of these tradeoffs
Photo by Pickled Stardust on Unsplash
Flexible
Comfortable with different programming
languages
…and paradigms:
OOP vs Functional
Declarative vs Imperative
Compiled vs Interpreted
Can solve the same problem in different
ways and with different tools
Photo by Wesley Tingey on Unsplash
Bug catcher
Understands and refines user stories
Can write different types of test:
Unit
Integration
E2E
Can find and discuss edge cases
Keeps track of technical debt and helps to
pay it back
Photo by Benjamin Balázs on Unsplash
Good advisor
Understand patterns and best practices
Can suggest patterns that have good long
term effects
…and avoids other that might lead to
problems
Suggests but does not mandate
Photo by Diego PH on Unsplash
Soft skills
Active lever
Ask hard questions
Takes leadership to find what they don’t
know
Is a bridge between product and
technology
Know when (and how) to say NO
Photo by Florian Olivo on Unsplash
Understand the
business
What’s the purpose?
What’s the long term vision?
What’s the strategy?
What are the unique strenghts?
What are the main weaknesses?
How can technology help?
Photo by Stephen Dawson on Unsplash
Communication!
Can talk with all the stakeholders
Can explain uncertainties and propose
ideas on how to address them
Can talk about failures and learnings
Can write docs & deliver presentations
Can make complex topics digestable
Photo by Hugo Jehanne on Unsplash
Supports management
Planning
Drive cerimonies
Keep in track priorities and technical debt
Can split complex tasks into manageable
parts
Understands and leverages team strengths
Pulls in the right people at the right time
Photo by Jason Goodman on Unsplash
Autonomy
Can drive projects that require research and
grind
But aware of avoiding silos
Knows how to get unstuck
Ask for help
Research and experiment
Read the docs
Read and understand existing code
Photo by Taelynn Christopher on Unsplash
Focus on delivery
Negotiates expectations
What does it mean to be successful in the
current environment
Positive attitude:
Don’t blame the system
Propose solutions
Facilitate conversations
Help to find compromises
Confidence that hard problems can be
solved even if we don’t know how yet
Photo by Annie Spratt on Unsplash
How to grow
Go 1 level deeper
Don’t stop at the layer you are familiar with
What happens in the underlying layers?
E.g.
How does the HTTP protocol work?
How does TCP work?
UTF-8, SHA512, DNS, etc.
🎥The computer science iceberg
Discend one level at the time
Build prototypes to test your understanding
Photo by Oleksandr Horbach on Unsplash
Have fun
Learning new stuff can be fun
You can build utilities and side projects
Showcase what you learned to your peers
Can you apply these learnings at work?
Hackaton and free study days are a great
way to spend work time for engineering
growth
Photo by Nathan Dumlao on Unsplash
Pair programming
Try to pair with as many people as possible
within the org
You can probably learn something from
everyone (even from the most junior)
You can probably teach something to
everyone (even to the most senior)
Not everyone loves pair programming, so
try alternatives:
Interactive code reviews
Show and tell sessions
Photo by Geran de Klerk on Unsplash
Create content
Articles, Talks, Videos, Twitter threads, Etc.
You don’t need to be an expert to share
something new you learned
Make it a habit
Creating content will massively improve
your communication skills
⚛️
Atomic essays
Photo by Florian Klauer on Unsplash
Keep a positive
attitude
With enough time and money the team can
probably solve everything
With sligthly less money and time you can
find decent compromises 😅
Don’t be picky about technology or style
Support other people’s ideas (even if you
would have done it differently)
Photo by Nathan Dumlao on Unsplash
Do the hard work
Volunteer for that refactoring that no one
wants to do
Get involved in parts that people generally
avoid because they are hard or messy
Try to make things a little bit better!
Photo by Jess Zoerb on Unsplash
Additional resources
Progression.fyi
Career Ladders
20 Micro-Habits Of High-Impact Software
Engineers
Engineering levels at Carta
Photo by Sharon McCutcheon on Unsplash
We cannot excel at everything
Photo by Marek Szturc on Unsplash
But we should know our strengths and weaknesses
Photo by Marek Szturc on Unsplash
Work with our team to amplify strenghts and compensate
weaknesses
Photo by Marek Szturc on Unsplash
…and strive to get better every day!
Photo by Marek Szturc on Unsplash
Thanks!
Luciano Mammino (@loige)
loige.link/senior
Cover photo by TK on Unsplash

More Related Content

PDF
Lars Jankowfsky - Learn or Die - code.talks 2015
PDF
Why projects fail
PPTX
Testing in the Wild
PPTX
Project management wisdom from the trenches
PPT
Beyond Four Walls
PPTX
Zero Bugs
PDF
Mob Programming and the Power of Flow by Woody Zuill at #AgileIndia2019
Lars Jankowfsky - Learn or Die - code.talks 2015
Why projects fail
Testing in the Wild
Project management wisdom from the trenches
Beyond Four Walls
Zero Bugs
Mob Programming and the Power of Flow by Woody Zuill at #AgileIndia2019

What's hot (16)

PDF
5 Things: How to Rock Remote Work
PPTX
TDD and S.O.L.I.D.; Two Ingredients For High Quality Software
PPTX
Traversing hyper driven developpement to do great technical choices and make ...
PPT
Building a culture where software projects get done
PPTX
Interface Design for Elearning - Tips and Tricks
PDF
AntiPatterns
PPT
Skip Cole, USIP, techatstate
PPT
Framework for Decision Making-NeVC2010
PPTX
A Happy Marriage between Context-Driven and Agile
DOCX
Cmgt 575 week 4 dq 1
PPT
Jisc e assess-mar_12
PPT
Innovation and Product management
ODP
Build a great Technical Team
PDF
Machine learning Des Moines (Prairie Code)
PPT
Bits of Evidence
PPTX
Presentation 4
5 Things: How to Rock Remote Work
TDD and S.O.L.I.D.; Two Ingredients For High Quality Software
Traversing hyper driven developpement to do great technical choices and make ...
Building a culture where software projects get done
Interface Design for Elearning - Tips and Tricks
AntiPatterns
Skip Cole, USIP, techatstate
Framework for Decision Making-NeVC2010
A Happy Marriage between Context-Driven and Agile
Cmgt 575 week 4 dq 1
Jisc e assess-mar_12
Innovation and Product management
Build a great Technical Team
Machine learning Des Moines (Prairie Code)
Bits of Evidence
Presentation 4
Ad

Similar to The senior dev (20)

PPT
USIP Open Simulation Platform
PDF
Coventry University SPRINT for Rapid Course Design
PDF
Teaching in the Age of Screens
PPT
PAR for Doctors EIS
PPTX
The Complexity Toolkit: Techniques for Navigating Uncertainty
PDF
Facilitating online agile retrospectives
PDF
The Elephant In The Room: Motivation (2nd revision)
PPT
Why3 D2 Penn State Presentation
PPT
Why3d2
PPTX
Agile Retrospective
PDF
Designing the User Experience
DOCX
Develop a 20 slide PPT lecture titled Human Sexuality Sexual Dys.docx
PDF
JDD2014: Game of Throneware, or how not to get killed when a developer become...
PPT
PAR for Doctors Manangement
PPTX
Learning Shot: Como fica a arquitetura de software em projetos ágeis?
PDF
My research story (presentation at ICSE 2021 New Faculty Symposium)
PPT
What every teacher should know about cognitive research
PDF
Get things done : pragmatic project management
PDF
Web Engineering Workshop
PDF
Advice on how to get started — and ahead — in a career in DevOps
USIP Open Simulation Platform
Coventry University SPRINT for Rapid Course Design
Teaching in the Age of Screens
PAR for Doctors EIS
The Complexity Toolkit: Techniques for Navigating Uncertainty
Facilitating online agile retrospectives
The Elephant In The Room: Motivation (2nd revision)
Why3 D2 Penn State Presentation
Why3d2
Agile Retrospective
Designing the User Experience
Develop a 20 slide PPT lecture titled Human Sexuality Sexual Dys.docx
JDD2014: Game of Throneware, or how not to get killed when a developer become...
PAR for Doctors Manangement
Learning Shot: Como fica a arquitetura de software em projetos ágeis?
My research story (presentation at ICSE 2021 New Faculty Symposium)
What every teacher should know about cognitive research
Get things done : pragmatic project management
Web Engineering Workshop
Advice on how to get started — and ahead — in a career in DevOps
Ad

More from Luciano Mammino (20)

PDF
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the ben...
PDF
Did you know JavaScript has iterators? DublinJS
PDF
What I learned by solving 50 Advent of Code challenges in Rust - RustNation U...
PDF
Building an invite-only microsite with Next.js & Airtable - ReactJS Milano
PDF
From Node.js to Design Patterns - BuildPiper
PDF
Let's build a 0-cost invite-only website with Next.js and Airtable!
PDF
Everything I know about S3 pre-signed URLs
PDF
Serverless for High Performance Computing
PDF
Serverless for High Performance Computing
PDF
JavaScript Iteration Protocols - Workshop NodeConf EU 2022
PDF
Building an invite-only microsite with Next.js & Airtable
PDF
Let's take the monolith to the cloud 🚀
PDF
A look inside the European Covid Green Certificate - Rust Dublin
PDF
Monoliths to the cloud!
PDF
Node.js: scalability tips - Azure Dev Community Vijayawada
PDF
A look inside the European Covid Green Certificate (Codemotion 2021)
PDF
AWS Observability Made Simple
PDF
Semplificare l'observability per progetti Serverless
PDF
Finding a lost song with Node.js and async iterators - NodeConf Remote 2021
PDF
Finding a lost song with Node.js and async iterators - EnterJS 2021
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the ben...
Did you know JavaScript has iterators? DublinJS
What I learned by solving 50 Advent of Code challenges in Rust - RustNation U...
Building an invite-only microsite with Next.js & Airtable - ReactJS Milano
From Node.js to Design Patterns - BuildPiper
Let's build a 0-cost invite-only website with Next.js and Airtable!
Everything I know about S3 pre-signed URLs
Serverless for High Performance Computing
Serverless for High Performance Computing
JavaScript Iteration Protocols - Workshop NodeConf EU 2022
Building an invite-only microsite with Next.js & Airtable
Let's take the monolith to the cloud 🚀
A look inside the European Covid Green Certificate - Rust Dublin
Monoliths to the cloud!
Node.js: scalability tips - Azure Dev Community Vijayawada
A look inside the European Covid Green Certificate (Codemotion 2021)
AWS Observability Made Simple
Semplificare l'observability per progetti Serverless
Finding a lost song with Node.js and async iterators - NodeConf Remote 2021
Finding a lost song with Node.js and async iterators - EnterJS 2021

Recently uploaded (20)

PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
cuic standard and advanced reporting.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Approach and Philosophy of On baking technology
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Review of recent advances in non-invasive hemoglobin estimation
Advanced methodologies resolving dimensionality complications for autism neur...
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
cuic standard and advanced reporting.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Approach and Philosophy of On baking technology
The AUB Centre for AI in Media Proposal.docx
Dropbox Q2 2025 Financial Results & Investor Presentation
Mobile App Security Testing_ A Comprehensive Guide.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Chapter 3 Spatial Domain Image Processing.pdf
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
Per capita expenditure prediction using model stacking based on satellite ima...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Understanding_Digital_Forensics_Presentation.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
MYSQL Presentation for SQL database connectivity
Review of recent advances in non-invasive hemoglobin estimation

The senior dev

  • 1. The senior dev An opinionated take Luciano Mammino (@loige) 2022-03-10
  • 2. Agenda Discuss what is expected from a senior software engineer (skills, mindset, duties) Packed with opinions* (my own and m o re) For devs to be inspired For managers to hire, set expectations, support, and evaluate Photo by Alexander Milo on Unsplash * opinions are subjective
  • 3. Meta slide loige.link/senior These slides are already online if you want to grab them! 👇
  • 4. Hello 👋I'm Luciano 14 years in the industry Senior Architect at fourTheorem Co-author of Node.js design Patterns ❤️ Node.js, AWS & learning Rust 🦀 Let's connect Blog Twitter LinkedIn GitHub Twitch YouTube nodejsdesignpatterns.com
  • 5. A senior engineer The definition changes in every company There are many levels of seniority: senior, staff engineer, principal, etc. My definition: moves projects & people forward ("Force multiplier") Team player, not a hero (or rockstar, superstar, magician, unicorn, etc.) Photo by Rudolfo Spott on Unsplash
  • 6. It’s not just about time or age 5 years of experience At least 28 years old More time ?== more senior… Photo by Elena Koycheva on Unsplash
  • 7. Skills Tech skills (hard skills) Soft skills 🤗Somewhat important! 🔥Very important! Photo by Moritz Mentges on Unsplash Photo by Icons8 Team on Unsplash
  • 9. T-shaped profile Master at 1 thing Proficient at many other things Example: Master at backend & API development Can do some frontend Can do some IaaC Understands cloud architectures Photo by Lucas van Oort on Unsplash
  • 10. Broad understanding Understand the platform Architecture Code Structure Testing Deployment process Scalability model Photo by Jen Theodore on Unsplash
  • 11. Understand tradeoffs Eg. Monolith vs Microservices Memory vs CPU Highly Scalable vs low latency Reusable vs bespoke Complex (but powerful) vs Simple (but limited) Optimizes for the most relevant ones Understands the short vs long term impact of these tradeoffs Photo by Pickled Stardust on Unsplash
  • 12. Flexible Comfortable with different programming languages …and paradigms: OOP vs Functional Declarative vs Imperative Compiled vs Interpreted Can solve the same problem in different ways and with different tools Photo by Wesley Tingey on Unsplash
  • 13. Bug catcher Understands and refines user stories Can write different types of test: Unit Integration E2E Can find and discuss edge cases Keeps track of technical debt and helps to pay it back Photo by Benjamin Balázs on Unsplash
  • 14. Good advisor Understand patterns and best practices Can suggest patterns that have good long term effects …and avoids other that might lead to problems Suggests but does not mandate Photo by Diego PH on Unsplash
  • 16. Active lever Ask hard questions Takes leadership to find what they don’t know Is a bridge between product and technology Know when (and how) to say NO Photo by Florian Olivo on Unsplash
  • 17. Understand the business What’s the purpose? What’s the long term vision? What’s the strategy? What are the unique strenghts? What are the main weaknesses? How can technology help? Photo by Stephen Dawson on Unsplash
  • 18. Communication! Can talk with all the stakeholders Can explain uncertainties and propose ideas on how to address them Can talk about failures and learnings Can write docs & deliver presentations Can make complex topics digestable Photo by Hugo Jehanne on Unsplash
  • 19. Supports management Planning Drive cerimonies Keep in track priorities and technical debt Can split complex tasks into manageable parts Understands and leverages team strengths Pulls in the right people at the right time Photo by Jason Goodman on Unsplash
  • 20. Autonomy Can drive projects that require research and grind But aware of avoiding silos Knows how to get unstuck Ask for help Research and experiment Read the docs Read and understand existing code Photo by Taelynn Christopher on Unsplash
  • 21. Focus on delivery Negotiates expectations What does it mean to be successful in the current environment Positive attitude: Don’t blame the system Propose solutions Facilitate conversations Help to find compromises Confidence that hard problems can be solved even if we don’t know how yet Photo by Annie Spratt on Unsplash
  • 23. Go 1 level deeper Don’t stop at the layer you are familiar with What happens in the underlying layers? E.g. How does the HTTP protocol work? How does TCP work? UTF-8, SHA512, DNS, etc. 🎥The computer science iceberg Discend one level at the time Build prototypes to test your understanding Photo by Oleksandr Horbach on Unsplash
  • 24. Have fun Learning new stuff can be fun You can build utilities and side projects Showcase what you learned to your peers Can you apply these learnings at work? Hackaton and free study days are a great way to spend work time for engineering growth Photo by Nathan Dumlao on Unsplash
  • 25. Pair programming Try to pair with as many people as possible within the org You can probably learn something from everyone (even from the most junior) You can probably teach something to everyone (even to the most senior) Not everyone loves pair programming, so try alternatives: Interactive code reviews Show and tell sessions Photo by Geran de Klerk on Unsplash
  • 26. Create content Articles, Talks, Videos, Twitter threads, Etc. You don’t need to be an expert to share something new you learned Make it a habit Creating content will massively improve your communication skills ⚛️ Atomic essays Photo by Florian Klauer on Unsplash
  • 27. Keep a positive attitude With enough time and money the team can probably solve everything With sligthly less money and time you can find decent compromises 😅 Don’t be picky about technology or style Support other people’s ideas (even if you would have done it differently) Photo by Nathan Dumlao on Unsplash
  • 28. Do the hard work Volunteer for that refactoring that no one wants to do Get involved in parts that people generally avoid because they are hard or messy Try to make things a little bit better! Photo by Jess Zoerb on Unsplash
  • 29. Additional resources Progression.fyi Career Ladders 20 Micro-Habits Of High-Impact Software Engineers Engineering levels at Carta Photo by Sharon McCutcheon on Unsplash
  • 30. We cannot excel at everything Photo by Marek Szturc on Unsplash
  • 31. But we should know our strengths and weaknesses Photo by Marek Szturc on Unsplash
  • 32. Work with our team to amplify strenghts and compensate weaknesses Photo by Marek Szturc on Unsplash
  • 33. …and strive to get better every day! Photo by Marek Szturc on Unsplash