Embracing the Product Engineer Mindset
A few months ago, I decided to try Ghost for the first time (Ghost.org is an excellent open-source platform for bloggers and independent publishers). I had wanted to try it for some time, but for some reason, never did.
Finally, I dived into their documentation and executed the command to install their CLI on my machine. At the end of the installation process, a message popped up: Love open source? We’re hiring JavaScript Engineers to work on Ghost full-time,
or something to that effect. I promptly clicked the link to explore further and was directed to their career page. There, among other roles, the position of Product Engineer was listed.
It was a surprise. I was expecting titles like Software Engineer or Frontend Engineer, as is common in the industry. However, the title of Product Engineer was new to me.
I mean, I have always envisioned myself as a Product Engineer (more on that later); I just didn't realize companies were specifically seeking this kind of engineer (when the title of software engineer sounds so cool).
But what is a Product Engineer? In the context of software development, a Product Engineer is a professional who combines technical skills with a deep understanding of user needs to design, build, and improve software products that solve real-world problems effectively and empathetically.
It might seem obvious to view the software we develop not just as code, but as a product that solves real problems for real people. Yet, this user-centric perspective is far from universal in the tech industry.
Yes, we all understand that we're building products to solve someone's problem. However, the reality is that not every developer is deeply invested in the human aspect of development.
Some folks are more passionate about writing machine code than anything else. They are the experts on the system, the tests, the patterns... oh, the patterns. They are (almost) always engrossed in finding that perfect design that solves a problem both beautifully and harmoniously. And that's fantastic. These individuals are invaluable. Any company needs a hardcore software engineer just as much as it needs a product engineer, a designer, or someone who makes fantastic coffee.
Then, there are people like me who care about the software, the system, the patterns, and everything else, but who also deeply care about what is being built, why it is being built, and for whom.
I enjoy the psychology behind the decisions and care about the result as much as the development process itself. I use the necessary tools to do the important work and solve the task at hand. This doesn't mean I'm careless with the choices I make, quite the opposite. To deliver a great product, we need great technology. To deliver fast, we need planning and organization. And to deliver the right solution, we need to understand the problem we are trying to solve.
In this context, Ian Vanagas from PostHog says the following about product engineers:
What makes them unique is their focus on creating a product for users. They care about building a solution to problems that provides value to users. They must be empathetic to users, and this means caring about user feedback and usage data.
And...
They do similar work to software engineers: writing code and shipping features. Usually, they write full-stack code with a focus on the frontend.
Having spent the majority of my career in frontend development, I couldn't agree more. Perhaps this is the main reason I decided to focus on the frontend in the first place. My aspiration has always been to craft products that I, myself, would enjoy using.
To craft great products, we need to understand our users and their needs. To accomplish this, we must engage with them (until we can read their minds, of course). There's little room for guesswork. I mean, we can always rely on our good sense in decision-making; however, if we don't pay attention to what they're saying, chances are we'll spend precious time working on something that fulfills our ego but solves no one's problem.
I don't believe the Product Engineer title is a reality in most companies nowadays, especially in big corporations with well-defined roles. However, I think every engineer could benefit from viewing the products they build through the eyes of a Product Engineer, with empathy and consideration for the people who will use the product, whoever they may be.