A decade ago, when I first started working, software quality engineer career is still a solid career path with tons of opportunities. However, around five years ago, many big companies started to eliminate software quality engineer jobs or software engineer in test jobs. They either transitioned and trained the software quality engineers into developers or laid them off. I first noticed this trend happened in Paypal five years ago. By now, a number of the major tech companies have removed the software quality engineer jobs, including Salesforce, Ebay, Intuit, etc. In addition, throughout the decade, many new start ups do not hire software quality engineers, including Airbnb, Uber, Lyft, etc. What happened that pushing the software quality engineers jobs towards extinction?
The Rise of Full Stack Engineers
In recent years, full stack engineers have become very trendy. Full stack engineers are responsible essentially the entire end to end software development process, from coding backend and frontend, testing, deploying and monitoring in production. This includes the job responsibilities for developers, quality engineers, ops, and dev ops. To engineers, we feel empowered to control the entire process and also maximize the learning in the job. On top of that, it looks great on resumes. To companies, it is more cost saving to have one engineer to do everything instead of hiring several people to do each part. It also eliminates the coordination needs and the potential political fights between different job functions. Best of all, engineers can not play the blame game on others, since now they control everything! No more it’s quality engineer’s fault not finding the bugs. No more it’s Ops fault deploying a buggy script. The ownership is very clear and straightforward. Developers simply need to be more careful throughout the entire process to ensure the quality of the software.
Another flexibility for full stack engineers are fungibility. This is the definition of fungibility in Wikipedia.
In economics, fungibility is the property of a good or a commodity whose individual units are essentially interchangeable, and each of its parts is indistinguishable from another part.
Essentially what it meant is that since everyone is a full stack engineer and is capable of doing anything, it will be a lot easier to move engineers between projects based on the projects needs. If project A need some engineers, we will move some people there. When they are done, we can move people to any other projects that require resources. Since engineers are capable of doing everything, it shouldn’t be a problem. This is extremely flexible for managements to allocate resources.
In the future, I believe software quality engineer jobs will continue to diminish with the rise of full stack engineers. It probably won’t completely extinct since some products still require certain level of end to end testing. But the career opportunities will dwindle down gradually. I would recommend engineers that still have decades of career life ahead to join the trend of full stack engineers. After all, it’s always safer to jump out of a sinking ship.