Insights

What Makes a Great Product Engineer

Beyond technical skill — what the ceiling of product engineering actually looks like. On mental models, language, ambiguity, and building for the person, not the user.

What Makes a Great Product Engineer

The best product engineers share a quality that has nothing to do with technical ability: they think in human terms at every layer of the system. Mental models before features. Language before code. The problem before the solution. What follows is an attempt to describe what that actually looks like — and why so few reach it.

Beyond the 'User': embracing the person

"User" is a convenient label, a functional abstraction that helps engineers categorise interactions. But it's also a subtle blindfold, obscuring the very essence of product thinking. The truth is, there's a human being on the other side of that screen, living a life that extends far beyond the moment they tap your app. They have a context, a set of pressures, and motivations that rarely align perfectly with the interaction you meticulously designed. The truly great product engineers never lose sight of that person.

Every line of code, every feature, every decision they make flows from this profound understanding. When this insight is superficial, the product feels generic, built for a demographic rather than an individual. People sense this disconnect, even if they can't articulate it; the product functions, yes, but it never quite lands. It works, but it doesn't truly fit.

The real interface is the one in the user's mind

Every product has two interfaces. There's the one we design — the buttons, the screens, the flows. And then there's the one that lives in the user's mind: their mental model of how the product should work. When these two align closely, the product feels intuitive, almost magical. When they diverge, confusion, frustration, and a breakdown of trust inevitably follow.

Bridging this gap isn't a skill engineers hone by writing cleaner code or optimising algorithms. It's born from a deep, almost anthropological understanding of people — their ingrained assumptions, their existing habits, the picture they'll paint in their heads long before they've read a single word of your onboarding guide. The engineers who craft genuinely intuitive experiences close this gap before they even consider writing a line of code. Their question isn't "Is this feature complete?" but rather "Will the person using this truly grasp it?" Intuition isn't the starting point; it's the hard-won output of profound human understanding.

The code speaks first

That understanding — of the person, of their mental model — doesn't stop at the design layer. It travels all the way into the codebase, and from the codebase onto the screen.

Engineers who understand their users write different code. They choose different names, different labels, different words at every level of the system.

A button that says "Submit" is the engineer's language. It describes what the system does. A button that says "Send my application" or "Confirm my order" or "Record this sale" is the user's language. When the language of the interface matches the language of the user's mental model, the product feels intuitive — because language is how mental models are built. This is why language in a product is never a copywriting problem. It's an engineering problem.

A good product engineer is also a good translator

The product engineer sits at the boundary between two languages that don't naturally speak to each other — the language of human experience and the language of systems. Their actual job is translation: taking something messy, felt, and contextual on one side, and producing something precise, executable, and structural on the other — without losing what mattered in the original.

Most translation work collapses one side. Either the human experience gets flattened into a data model, or the system gets bent into something unmaintainable trying to honour every nuance. The good ones hold the tension.

They know something will be lost in translation — and they choose carefully what that something is. That act of choosing is where most of the real engineering judgment lives. Not in the implementation. In the decision about what to preserve.

They navigate ambiguity without freezing

Much of the most challenging work in product engineering unfolds in the fog of uncertainty. Requirements are blurry. Problems lack clear definitions. The user's true need often lies buried beneath their stated request. The best product engineers don't freeze in this ambiguity. They navigate it with deliberate intent, asking incisive questions, slowly narrowing the scope, and resisting the premature urge for concrete solutions.

It's tempting to grasp for a definitive answer early, as certainty feels safe. But when the problem itself is still taking shape, a solution chosen for its apparent solidity is almost always the wrong one.

Their questions are a direct barometer of their understanding. Before a single line of code is written, before any design review, the most insightful engineers are already posing the questions the room hasn't even considered. They've foreseen where the current path might lead and aim to surface potential pitfalls before they become costly.

The engineer who loves the problem

Most engineers fall in love with what they built. Good product engineers hold that loosely. Their curiosity remains fixed on the person's actual experience, and they are willing to discard their own work when it ceases to serve that fundamental purpose. This distinction becomes glaringly obvious in how they respond to feedback. One type of engineer seeks reasons to dismiss it; the other leans in, genuinely intrigued, because they understand that feedback is rarely about what it appears to be.

Feedback, more often than not, signals a gap — the very gap between the system's logic and the user's mental model. Something behaved unexpectedly. Their internal picture of how things work was shattered. They report what they observed, not what's "wrong," because they can't see the system; they only experience its effects. So the truly skilled don't merely patch the surface. They return to the person, to the mental model, to the foundational understanding, and they pinpoint where that gap first opened. That's the real work. The feature request is merely the point where the user felt the friction.

Knowing what not to build

This might be the most undervalued quality in the entire field. Great product engineers push back — not out of idleness, but out of profound clarity. They possess the foresight to recognise when a feature request is a symptom rather than a solution, understanding that a direct answer would only entrench the problem instead of resolving it. They know that the most impactful engineering decision is sometimes the one that results in nothing being built at all.

This is the logical extension of loving the problem. If you're emotionally invested in a particular solution, you'll build it. If your attachment is to the problem itself, you'll naturally question whether building anything is truly the answer.

Their code reads like intent, not implementation

Because they prioritise understanding the person and the problem, their code reads like a clear narrative of what needs to happen, not merely a record of their implementation choices. The business logic shines through. The intent is immediately apparent. When you find yourself reverse-engineering a function to decipher its purpose, it's a sign that a misstep occurred long before any typing began — a flaw in the thinking, not just the syntax.

Every name chosen is a micro-decision about the essence of a thing, shaping every subsequent choice. A function named handleUser and one named recordSale are not just different strings; they inhabit distinct conceptual universes and invite divergent futures.

The most crucial code they write is often the code they delete. Deletion demands absolute clarity about what the system genuinely requires, stripping away accumulated cruft. Most engineers add; the best subtract, dispassionately and proactively.

Clever code might make you feel brilliant in the moment of creation. Good code makes the next person to read it feel instantly oriented. These two impulses, more often than engineers care to admit, pull in opposite directions.

They also write for the failure case first. The edge case, the error, the unexpected input — this is where true judgment reveals itself. How a system behaves when it breaks is the ultimate test of attention to detail. And finally, they know when to stop. Code is never truly finished; it's abandoned at a point of sufficient quality, with the full awareness that this stopping point is a conscious choice, not an inevitable conclusion.

They build for the person who inherits it

Good product engineers think in multiple time horizons at once. They make today's decisions while acutely aware of the cost those decisions might impose on someone — perhaps themselves, perhaps a stranger — two years down the line. The code will be inherited. The system will evolve. The names chosen today will profoundly influence the thinking of everyone who touches this project thereafter.

Most engineers optimise for the immediate. The truly great optimise for that future moment when their creation is handed off to someone who wasn't in the room, striving to make that person feel oriented and empowered, rather than abandoned and confused. This is a form of care that extends beyond the immediate user, reaching into the very future of the codebase itself.


The qualities, plainly:

  • They see a person, not a user
  • They close the gap between the designed interface and the mental model
  • Their language matches the user's language at every layer
  • They translate between human experience and systems without flattening either
  • They navigate ambiguity without grasping for false certainty
  • They're attached to the problem, not the solution
  • They know when not to build
  • Their code reads like intent
  • They build for the person who inherits it

At its highest, product engineering stops being about building and starts being about understanding — deeply enough that what you build becomes almost a natural consequence of that understanding. The person, the system, the language, the team, the codebase, the user who hasn't arrived yet — the good ones hold all of it at once, not as a burden but as the actual shape of the work. They're not just engineers. They're the connective tissue between human experience and the systems that serve it. That's a rarer thing than technical skill. And it's what the ceiling actually looks like.

See it in practice

The thinking applied to real products.

PsTally and Stoka were built with the same principles — starting from the person, not the feature.

Leave a response

← Back to insights