Is there growth in testing?
Over the past month, I have mentored 3 engineers directly on topmate. It’s been a fun experiment, and I love the experience of talking to new engineers at different stages in their jobs, hearing about their challenges and perspectives, and hopefully nudging them in the right direction. If you or someone you know wants to get in touch with me, here is my topmate page: https://topmate.io/automationhacks/
I’ve been getting a recurring question from them and over the years many other engineers have reached out to me on LinkedIn, and Twitter DMs, asking me what is the growth ladder for a testing professional
Some variants of this question are:
- “I’ve heard testing maxes out at 10 years of experience. Should I move to dev or management?”
- “My manager is suggesting that becoming a manager is the way you can progress in your testing career”
- “I feel stuck and don’t know what else to explore to transition from QA automation to SDET”
- “Is testing a dead-end job, is there a career to be made in this?”
These are critical questions and each engineer is right to ask them
They also paint quite a gloomy picture of the role
Let me help you paint a better picture
🪜 Job Ladder
There are tons of different testing setups in the industry.
If you want to get a feel of it you can read Deep dive into evolution of testing organizations in which I’ve explored some of these.
There are 3 major roles that people play in the testing space
- Test Engineer
- Software engineer in Test (SDET)
- Engineering manager (EM)
In many companies there are well-defined career ladders for each of them, some it is a very flat org and a whole buffet of different setups in between
🧑🏻💻 Individual contributor (IC)
I’ve seen companies have a level distribution generally like the one below for individual contributors
- Intern, fresher, entry-level (0 - 2 years)
- Mid-level (2 - 6)
- Senior level (6 - 9)
- Staff/Lead level (8 - 12) (may have direct reports)
- Architect/Principal (12+) (may have direct reports)
- … some further levels like senior principal/architect, distinguished (this is quite rare)
A small caveat:
Please don’t take the years of experience thing so seriously, they are general approximations
I don’t believe in the years of experience level filtering because while indicative of breadth of experience it may not convey the level of depth your company needs for a given role.
The notion that years of experience automatically entitles you to a given level is a bit absurd. You may not have exposure to that level of responsibility, impact, and scale. Past performance, strong aptitude for the role, and transferable skills are probably better indicators, but hey, who am I to question everything that’s broken with recruiting and compensation 🤷
In some companies, Test engineer roles are capped at a certain level, while SDET role generally has these levels.
One clear signal to someone reading this is that developing software engineering skills is crucial to your long-term success as an IC
👩🏻💼 Engineering manager (EM)
Typically there are below levels
- Engineering manager (5 - 8)
- Senior engineering manager (8 - 12)
- Director (12 - 15)
- VP (Vice president) (15+)
- SVP (Senior vice president) (15+)
- GM (General manager) (15+)
VP+ levels are usually present in larger companies, but levels up to Director are quite common
Many companies may cap the levels at a certain point depending on whether that role is required and if the company is big enough
I would not go in-depth on what are the roles and expectations from each level in this blog.
Any solid leadership group worth their salt would have enumerated this as an internal rubric, but let me know in the comments if you would like to hear my take on it and I can expand on this as well
🧗🏻 Climbing the ladder
Your level on the engineering ladder is a strong indicator of growth.
It has implications for your title, and compensation and directly influences the level of agency and responsibility you can have in the org as well as your impact
What does the path look like to climb this ladder?
This is a pretty deep question, it may even demand a book read like The Staff Engineer’s Path: A Guide for Individual Contributors Navigating Growth and Changeor The Manager’s Path: A Guide for Tech Leaders Navigating Growth and Change or even a new one just for professionals in testing
I’ll attempt to give you an ELI5 (explain like I’m five) answer without going into deep nuances
Loosely speaking,
- Learn: Became a deep expert in your domain, make sure you have the technical proficiency needed to do your job, which may involve learning a new technology, stack, programming language, or people skills
- Execute well: You should clearly understand what role you are playing in your org, talk, and ensure you and your manager are on the same page on this, then go out and execute, execute, and execute. Keep on knocking off project after project and do the damn best job you can do on them with the customer in mind. Make sure you are in the top 5% of your team and try your best to create value everywhere and be a force multiplier on the team.
- Perform at the next level: Then look at your level + 1 role and expectations and ensure you take some of them on. Keep on knocking them off and present a demonstrated history of strong performance. Performance appraisals and reviews are usually lagging and if you are already performing at the next level and your manager is good, chances are you can expect a promotion soon.
- Seek and mentor: Find out the best people in your company, local region, or globally, and follow them. Learn from them and soak their wisdom. Seek out mentors discuss ideas with them and go back and implement and show hands-on value. You should also pass on what you’ve learned to help others around you get better
This advice and general framework has personally served me quite well in my career but like I said earlier, there is tons of nuance here. Maybe I’ll write some more about these in future blogs.
🦖 Develop the Breath
Tech
Is climbing the ladder all there is to it?
If you’ve reached the Principal/Architect level, have you made it in your testing career?
What’s next?
You’ll find that only seeking compensation, title, and level as proxies for growth can turn out quite shallow in the end.
Please don’t get me wrong, it is super important and you need to do a good job at it.
✅ Your life and your family depend on you for this. I will encourage you to keep on working on it to make sure you are rewarded and paid well for your efforts
❌ But it’s not the only thing.
When people say testing maxes out at X years of experience, they are taking a quite shallow view of using the job ladder as the only growth indicator
But testing is not just your years of experience
It’s a crucial part of SDLC without which no software should ever go to production.
You’ll be a fool to ignore this at your peril.
There is a ton of breath to be covered and if you are a person on your way to becoming a master, you have much to learn and experience young padawan 🥷
Let me attempt to give you a peek at how I think about it
Areas to explore
We can divide the software engineering world into 6 broad areas
- Mobile
- Web
- Backend
- Infra
- Data
- ML/AI
Each of these areas has opportunities to choose which layer you write tests at:
Test Pyramid
- Unit
- Integration
- E2E
And broader areas to apply to the above
- Engineering productivity
- Code coverage
- Exploratory testing
- Building community with like-minded peers
- Test frameworks
- Test infrastructure
- Test tooling
- CI/CD
- Security
- Performance
- Accessibility
- Chaos/Resilience
You can take a cartesian product of these three and that is one unique combination for you to explore deeper
E.g. Mobile test infra, data security, data performance, backend chaos/resilience, etc.
It’s a whole wide world out there for your explore
I have 13+ years of professional experience in testing and I can safely say I’ve just scratched the surface
I also don’t think I’ll be able to explore them deeply in this lifetime but I’m still curious and choose to make incremental progress towards some of them.
Each of these areas in itself could be a project for you to explore and become an expert in over a few quarters
The good news is there is a ton of overlap and you can build a lot of deep software engineering skills; such as
- Reading code
- Writing code
- Understanding programming principles
- Understanding system design: How do DB, Queue, cache, CDN, and Gateway work and are scaled, how do you test with them
- Building solutions
- And so on …
🍦 Soft skills
You’ll notice that above is a list of technical things
To grow into a mature leader you also need polished people skills.
They are table stakes if you are in a manager role or in an IC leader role like an architect
- Building trust with peers
- Driving cross-functional projects
- Project management
- Strong written and verbal communication skills
- Empathy
- Servant leadership
- Engage and develop others with 1:1 mentoring
- Sponsoring someone’s career growth
- Public speaking in internal presentations, all hands, meetups, or conferences
- Negotiation
- Conflict resolution
- Succession planning and removing single points of failure in teams
- Setting direction and strategy
- So on and so forth
We can keep on adding to this list as well
What’s next
Say you are someone who has worked on most of these and still feels stuck.
How do you grow then?
Firstly congratulations 🎊
I’m sure you are in a very small company of elite people who have proven experience with all or most of these.
Well,
Software engineering is huge.
If vertical growth is not possible, you may consider even shifting to a horizontal ladder in a different set of skills like a developer, product manager, data scientist, AI/ML engineer, etc.
As you can see there is no endgame in this world and endless challenges are waiting for you with great rewards.
All you can do is:
Work hard, have fun, and make history
That is Amazon’s motto and a pretty good way to summarise this blog
Keep on delivering exceptional value for your customers, because that is what truly matters
If your company does well, you will also do well and leaders around you will be happy to share more responsibilities.
Growth will happen organically.
Go out there, kill it!
Hope this helps. Let me know in the comments if you want to share a personal journey around how you grew in software testing or what I’ve missed. I’m looking forward to learning from your thoughts
Thanks for the time you spent reading this 🙌. If you found this post helpful, please subscribe to the substack newsletter and follow my YouTube channel (@automationhacks) for more such insights in Software Testing and Automation. Until next time 👋, Happy Testing 🕵🏻 and Learning! 🌱 | Newsletter | YouTube | Blog | Twitter. |
Comments