⚡️ SDET career roadmap: from entry level to staff engineer
In this post, I break down expectations at entry/mid, senior, and staff levels and then help you form an intuition about what you can learn and share an approach that worked for me
Recently, a bright, up-and-coming SDET at work asked me:
How can I grow in my career?
How can I become a better engineer?
These are timeless questions. All high-growth engineers keep asking this often of themselves and their mentors or managers
It was wonderful to see them have self-awareness in their early career and the drive to improve themselves. I wish I had started asking about this earlier. 🙂
I’ve pondered on this question myself and often do self-reflection from time to time on this, and while I probably cannot give you a magic formula of success that would catapult you to the next level
I can share my take on it.
Disclaimer:
Please take it with a grain of salt 🧂 as this contains my unconscious biases.
When in doubt, do what feels is the best course of action for yourself in your unique life situation. There are no black and white answers here and anyone who says otherwise has something else on their agenda 😉
Phew! With that ominous disclaimer out of the way. Let’s dive in
Progression in your career realistically a combination of many factors -
sometimes it is a raw skill, talent, and execution
sometimes relationships you’ve built at work for you
often it's being at the right place at the right time with the right attitude
Most often it is luck or foresight to work on high-impact projects
a favorable sponsor, mentor, or manager
and what have you?
Surely you may be thinking, it does not seem very deterministic, does it?
Since out of all the above there are only a few aspects that you have personally larger control over.
I’ll suggest we start from there to make this a fruitful read.
🪜 Level Expectations
Before we look at skills that an SDET should master, let's set some broad behaviors and expectations that leaders reasonably expect from engineers at different stages of their career journey.
This is not an exhaustive list by any stretch, but it is meant to give you a ballpark idea and some high-level intuition
At each stage of your journey
You should assume the person has demonstrated performance indicators on the previous level and has the potential to reliably and consistently demonstrate at least 30% of next-level skills.
Entry/mid-level - A new hope; solid executor
Project impact:
Strong execution on one team and ownership of shipping tasks on time
Can design and execute test plans for independent features with guidance from senior engineers
Can add incremental features to framework and tools for well-defined problem spaces and domains
Engineering excellence:
Expert in one area (web, mobile, backend)
Can code fluently in one programming language
Has a solid understanding of testing fundamentals and techniques e.g. boundary value analysis, equivalence partitioning, decision tables, state transition tests mind mapping
People impact:
Can communicate clearly with stakeholders and help drive bug fixes
Direction:
Limited to a small/medium problem space
Senior - An independent, reliable, and seasoned engineer
Project impact
Leads execution for a functional area in a group
Deliver outcomes on medium complexity features with minimal or directional guidance
Proactively takes ownership, designs, and builds scalable and efficient test frameworks and tools to solve testing problems
Engineering excellence
Expert in more than one area (web, mobile or backend)
A polyglot programmer and can code fluently in more than one language, with a good understanding of design patterns and approaches, refactoring techniques
Understand sophisticated testing techniques and approaches like mocking, stubbing, integration testing, mutation, etc
Good understanding of associated technology stacks: test runners, code coverage, CI/CD, reporting
People impact:
Mentor early career engineers to grow into senior role
Direction:
Influences technical direction for one area
Effectively communicates technical concepts to both technical and non-technical audiences, and influences technical decisions.
Staff/Principal - A deep expert, who sets technical direction, large functional area influence, or industry impact
Project impact
Leads execution of complex projects across multiple cross-functional teams
Aligns testing efforts with broader organizational goals anticipates future challenges, and drives strategic initiatives.
Able to deliver complex projects involving either deep technical skills or cross-team collaborations with no supervision and occasional directional feedback
Able to build a robust, scalable, and comprehensive test strategy covering different app stacks
Engineering excellence
Expert across domains (web, mobile, backend)
Solid hands-on grasp on nonfunctional testing (resilience, chaos, load, security)
People Impact
Motivated to mentor and teach senior engineers to grow into staff and guide peer managers on nuances in the technical domain
Able to handle ambiguity and navigate organizational dynamics to drive progress
Inspires and motivates others, builds high-performing teams, and fosters a culture of excellence
Direction
Influences technical direction and identifies opportunities for innovation
Leads the development and implementation of new testing methodologies and tools across teams and multiple areas
There are levels further than this in large companies like a Senior principal engineer, or distinguished engineer
I have personally not been in those trenches enough to give you a concrete viewpoint, however, if I had to guess, take what a Staff engineer does, add more ambiguity and challenges, and imagine an individual who can have a strong impact on industry or large functional group and you’ll probably be in the right ballpark.
Side note: If you are wondering, Where are the project, people impact, engineering excellence, and direction headings coming from? It is the way Meta does performance reviews and I generally find it gives a good overall structure to think about your work
🌿 What could you learn?
Now that you have a broad sense of expectations for these three SDETs archetypes
Let's get a bit practical, shall we?
Below you’ll find an intentionally incomplete laundry list of tools, libraries, technologies, and approaches that SDETs should probably know.
For each category, it's good to understand one tool deeply first and then one more to compare and contrast.
🚨Learning every tool and technology under the sun deeply is not possible. As a senior engineer, you should choose your battles wisely. With time and experience, your knowledge will compound as you figure out the design principles, approaches, and patterns behind each tool. You’ll start to notice that all these will influence your taste and style when it comes to building robust testing solutions
Do you prefer mind maps?
I have a mind map covering these in SDET roadmap.pdf
🌍Testing Fundamentals
Test strategy
Test design
Test planning
Test execution
Bug discovery, triage, retesting
Smoke, sanity, regression testing, and severity/priority
Boundary value analysis
Equivalence partitioning
Decision tables
Exploratory testing
Black box testing
White box testing
Test data management
Root cause analysis and debugging
Test documentation and reporting: Jira, zephyr, test rail
🔺Test pyramid
Unit testing: Pairwise, Mutation testing
Integration testing
E2E testing
Load/stress testing
Security: DAST (Dynamic application security testing), SAST (Static application security testing)
Accessibility
Usability
🕸️Web UI automation
Selenium
Playwright
Cypress
📱Mobile UI automation
Appium
Native Android: Espresso, Roboelectric
Native iOS: XCUITest, XCTest
Device clouds: BrowserStack/LambdaTest/SauceLabs
🌀Backend
Tools
API types
Rest: RestAssured, Postman
Grpc
GraphQL
🥵Load:
Locust
K6
Gatling
Distributed systems
Message Queue:
Amazon SQS
RabbitMQ
Kafka
Databases
Relational
PostgreSQL
MySQL
Non-relational
DynamoDB
MongoDB
Cache:
Redis
Concepts:
Replication
Sharding
Partitioning
CAP theorem
Horizontal vs vertical scaling
CDN
Resilience
Chaos engineering
Security
Burp suite
OWASP Zap
Snyk
DevOps
Cloud
AWS
GCloud
Azure
CI/CD:
Jenkins
Gitlab
GitHub actions
Containerization:
Docker
Kubernetes
Programming
Languages:
Java
Python
Javascript/Typescript
Design
Design patterns
Refactoring
Test Infrastructure
Code coverage
Test selection
Test recommendation
Test tooling
Test runners: TestNG, JUnit, Pytest
Mocking/Stubbing: Mockito, Wiremock, Mock server
Dependency injection (DI): Guice
Proxy: MITM, Charles Proxy
AI
Prompting GenAI models
Using Copilot, Claude, etc to generate tests or testing solutions
Human skills
Collaboration
Communication: written and spoken
Confidence and body language
Negotiation
Conflict resolution
Mentoring
How to approach it?
OMG … 😮
If I was a beginner in 2025, seeing this list for the 1st time. It would scare the hell out of me. 😱
I would have had 2 questions.
Is learning all this really necessary?
Where should one even start?
Both are valid questions
Firstly, It's not required to know everything on this list to be a successful SDET.
Your mileage really will vary. My intent is to convey the breadth of skills and technologies that you may be exposed to in your career as an SDET. You could very well spend multiple years just focusing on mobile, web, or backend or a niche like distributed systems testing, security, etc. There are no wrong answers here, we are all on our unique learning journey
However that said, it's important to mix it up and work across the board to have solid intuition
Primarily because you don’t want to keep on doing the same things forever. It's boring, isn’t it?
An easy heuristic is to learn the tech stack of your current company well before you branch out 😀 If you work at different workplaces or teams in your career, chances are you’ll probably pick up a few different tech stacks organically.
As far as how to start, you could follow your unique path
Please allow me to suggest a general approach that worked for me
Be curious and ask questions, take notes on what you learn, and share them with others
Learn testing fundamentals and how to design and test well 😉
Learn one programming language well
Learn one CI system well
Learn one test runner well
Choose one area of backend, web, or mobile automation and develop good expertise in it
Find a mentor that you can leverage like a sounding board
Once you know the basics
Use the foundation to branch out and pick another area that either you need for work or you are curious about and learn
What could be your learning approach?
Let me break down my process
Learn: Learn a topic by reading docs, watching some videos, or taking a course. Take notes on it in your internal note-taking system
Build: Don’t be a passive learner, implement by applying that either at work or in a side project. Get hands-on practical experience
Write: Write a blog on it
Teach: Teach the concept, tool, or technology to others in your peer group
Talk: Prepare a talk and present it to a wider audience
Hope this is useful.
Do you have questions?
You can send them my way on any of the socials or if you prefer a more personalized discussion, I’m available on topmate for 1:1 mentoring, coaching, and counselling.
Thanks for the time you spent reading this 🙌. If you found this post helpful, please subscribe to the newsletter and follow my YouTube channel (@automationhacks) for more insights into software testing and automation. Until next time 👋, Happy Testing 🕵🏻 and Learning! 🌱| Substack | YouTube | Blog | LinkedIn | X | BlueSky