Software companies are changing. Where once product managers and software engineers dominated, now a new role is emerging: the product engineer.
Want proof? Look at this graph:
Online searches for product engineers have grown over 80% in the last year and are 3x greater now than just two years ago.
Product engineers are changing the way companies think about engineering. To help explain why, we’ll compare the role of product engineer with the traditional (and still very necessary) role of full-stack software engineer.
Here's the TL;DR:
- Product engineers focus on building great products.
- Software engineers focus on building great software.
- But they both write and commit code.
Let's break those points down a bit more.
Product engineers own the product and are responsible for its successes and failures. They're empathetic towards users and care about solving their problems. They build with the user in mind and create what users need for success.
In contrast, software engineers own the code they write. They care more about solving technical problems, optimizing systems, and writing clean, secure code. They have flexibility with implementation, but they aren’t making product decisions.
Product engineers are less focused on implementation and focus more on solving the users’ problems. In this way, they are pragmatic. They are willing to build fast, iterate, or even from scratch if needed.
Software engineers are more idealistic. They look for the best solution to the problem in front of them, focus on best practices, and build off prior work. Security, risk, and scaling weigh heavier in their minds.
Product engineers still spend the majority of their time coding, but they have responsibilities outside of coding that software engineers don't.
Product engineers also spend their time talking to customers, digging into usage data, and researching the competitive landscape. They test other products, build prototypes, and brainstorm experiments to make their product better.
They spend time communicating with users, their team, and other members of the company. They communicate what they learned in research, why their work relates to that research, and how to prioritize what to work on next. They own the product roadmap, and this comes with a responsibility to communicate it.
Software engineers focus on writing code, testing it, and maintaining it. They look for ways to optimize code, improve scalability, and solve bugs. They are deeply focused on specific areas of technology, whether that is databases, data pipelines, backend APIs, or client-side app frameworks. This means researching and reading documentation, updates, and code.
There's no single reason, but typically it's motivated by a desire to ship product improvements faster. Product engineers are popular among startups and early-stage companies for this reason, even if they don’t say it.
At larger companies, product engineers are seen as a way to drive innovation, sometimes through the creation of smaller teams that have the freedom to ideate and execute product ideas. Software engineers and multidiscipline teams are still important, but product engineers can inject urgency where it's needed.
Elon Musk's Twitter is a good example of company that might benefit from product engineers, whether he's aware of it or not. Elon wants to make dramatic changes to the product, but in his opinion, the organization he inherited was too large and unwieldy to achieve this. In other words, he doesn't need software engineers to maintain or optimize the existing codebase; he needs product engineers who can identify problems and opportunities, and execute solutions quickly and independently.
As a person, if owning a product and its roadmap as well as responsibility for its success or failure interests you, then product engineering might be for you. If you want to focus on solving difficult technical problems and optimizing existing technologies and processes, then software engineering might be a better choice.
There isn’t a right answer, and roles change as companies change. It is possible a product engineer to focus on a specific area and becomes a software engineer as a company grows. It’s also possible for software engineers to join new teams or companies and take on a product engineering role.
As a company, having software engineers appeals to companies with a large-scale or complex products. Software engineers can focus deeply on specific areas of technology and are great for optimizing systems.
Startups or companies that want to be agile and move fast, should look for product engineers. Product engineers have a holistic view of the product and the ability to move fast when the need arises.
Picking what is right is up to the company and its goals. If you're a small team focusing on building great products, multi-skilled product engineers who can talk to users are a great choice. If your larger product requires specialization to scale and maintain, software engineers are the better choice. Companies with both types of roles have succeeded and more will continue to succeed.