⚡️ SDET career roadmap: from entry level to staff engineer
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 can be a combination of many factors
- sometimes it is a raw skill, talent, and execution
- sometimes it’s the relationships you’ve built that work for you
- often it’s being at the right place at the right time and showing up 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, These do not seem very deterministic, do they?
Since there are only a few aspects that you have personal control over.
I’ll suggest we start from there.
🪜 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
plain text more your thing?
🌍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. I intend 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?
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 | X | BlueSky |
Comments