Skip to content
← All posts

What is a product engineer, and how is that different from a programmer?

What a product engineer does, how the role differs from a programmer, and how to tell which of the two your business needs before you hire anyone.

Illustration: a loose ticket that ends in a block of code, next to a continuous path that runs from the decision through building, launching and maintaining a product

A product engineer is the person responsible for making your digital product work and solve what your business needs, not just for writing the code you asked for. They decide what the first version should do and what can wait, build it, launch it and keep it running. A programmer, in the most common sense of the word, receives a task someone else defined and executes it well. Both roles are legitimate and both write code; the difference is who makes the decisions and who answers for the result. I am writing this because it is the question founders ask me most before hiring, and because picking the wrong role costs more than picking the wrong technology.

TL;DR
  • A programmer executes tasks someone else defined. A product engineer defines what gets built, builds it, launches it and answers for the result.
  • If nobody in your company decides what goes into the first version and what does not, you will end up doing that job yourself, without the experience, or nobody will. That is where a product engineer pays off.
  • If you already have a CTO or a technical lead who decides, what you need is a good programmer. Over-hiring is a mistake too.

In this article:

What a product engineer does

The shortest way to put it: a product engineer answers for the product, not for the tickets. When a client hands me their mobile app, their website or platform, or their AI chatbot, what they get in return is one person responsible for making that thing exist, work and keep working. That covers work normally split across four profiles: understanding the business, defining the scope, designing how it gets solved, writing the code, launching it and watching what happens next.

What defines the role is not the list of tasks but where the responsibility starts and ends. It starts before a task exists, in the conversation where you decide what is worth building. And it ends after the code is written, when the product has been in real users’ hands for months and someone has to decide what gets fixed, what gets measured and what comes next.

In my case I have worked this way since 2019, as an independent contractor, for founders and teams without a technical lead in-house. Before that I worked inside teams with the traditional structure, and that experience is exactly what makes me value the programmer role when the structure exists.

What a programmer does, and why that is not a criticism

A programmer receives a specification, a task or a design and turns it into working software. It is hard work, and there are excellent programmers who do not want to decide what gets built and should not have to. In a team with a product manager, a designer and a technical lead, that split is the right one: each person decides in their own area and the programmer can focus on doing the most technical part well.

The problem shows up when you hire a programmer and have nobody to do the rest. The decisions do not disappear; someone makes them anyway. If there is nobody to make them with judgment, one of two things happens:

  • You make them, and you know your business but not what is expensive to build, what is fragile or what will hurt in six months.
  • The programmer makes them implicitly, task by task, without seeing the whole and without anyone having asked them to.

Neither is the programmer’s fault. You asked them to execute and they executed. The gap was in the role nobody filled.

The difference in one table

ProgrammerProduct engineer
What they receiveA task defined by someone elseA business problem
What they deliverCode that completes the taskA launched product in use
Who decides the scopeSomeone elseThey do, with you
What happens if the task was framed wrongThey build it anyway, or askThey question it before starting
What happens when something breaks in productionDepends on who noticesNoticing it is their job
How their work is measuredTasks completedProduct outcomes
Who talks to youOften an intermediaryThe same person writing the code

The row that matters most is the third one. Defining the scope of the first version is where a project’s money is won or lost, and it is precisely the part a programmer, by definition of the role, does not do.

The decisions a programmer cannot make for you

These are the decisions that come up in every project I have taken on, and that nobody will make if the only technical profile at the table is someone hired to execute:

What not to build yet. Every first version, the MVP or minimum viable product, has a list of things that look necessary and are not. Cutting them requires knowing what each one costs and what it contributes to the business in the first months. It is the decision that saves the most money and the one made least often.

What to buy and what to build. Authentication, payments, notifications, email delivery, usage analytics. Almost all of it exists as a service. Deciding when to use one and when not to requires knowing the options and the hidden costs of each, not just knowing how to program it from scratch.

When to launch. A product can be polished without limit. Someone has to say “we ship with this” and answer for that decision. If the criterion is “when it is finished”, it never ships.

Which technical debt to accept. In a first version shortcuts make sense, but not all shortcuts are equal. Some are paid back in an afternoon and others force a rewrite. Telling them apart is an engineering decision that has to be explained in business terms: this saves us three weeks today and will cost us two once we have a thousand users.

What to measure after launch. Without usage data, the next version gets decided by intuition. Installing analytics and error tracking is cheap; deciding what to look at and what to do about it is not.

When someone asks me what it means that I work as a product engineer, the practical answer is that list. It is the work I do before and after writing code, and it is what a client without a technical lead has no other way to cover.

What a product engineer’s work looks like, week to week

The full cycle, in the order it happens:

   BUSINESS PROBLEM


   ┌───────────────┐   what the first version does
   │    DECIDE     │   what waits for later
   └───────┬───────┘   fixed quote

   ┌───────────────┐   weekly deliveries you can open
   │     BUILD     │   a demo every week
   └───────┬───────┘   course corrections in time

   ┌───────────────┐   live, in the stores
   │    LAUNCH     │   domains, accounts and keys in your name
   └───────┬───────┘

   ┌───────────────┐   analytics and error tracking
   │   MAINTAIN    │   a roadmap in plain language
   └───────┬───────┘

           └──────────► back to DECIDE, with real data

A programmer occupies the second block. A product engineer occupies all four, and the arrow that loops back to the top is the part that gains the most value over time: the next decision is made with usage data, not assumptions.

In my case this translates into a direct channel with you, a fixed weekly call with a demo, and a build or a URL you can open every Friday. How I work describes it step by step, from the first message to the first delivery.

There is no agency in the middle and no account manager relaying messages. The person making the product decisions is the same one writing the code, and that is who you talk to from the first call.

What changes in the engineering: nothing

There is one confusion I want to clear up: “product engineer” does not mean a developer who programs less, or with less rigor, because they also act as a manager. The engineering stays senior or the role does not work. In my work that includes unit and end-to-end tests, code review, continuous integration, and evaluating language models before a chatbot answers a real user.

What changes is the context in which that engineering is applied. Every technical decision is made knowing what the product is for, how much money there is and what happens if something fails. A concrete example of how I do it: before writing code, I write the specification of what the product has to do and validate it with you; how I built an earthquake app from a specification shows that process end to end. An excellent programmer without that context can build very well something that did not need building. That is what the role prevents.

When a product engineer is right for you, and when it is not

It is not always the right answer, and over-hiring is expensive too. The rule I use:

Your situationWhat you need
You have a CTO or a technical lead who decides and reviewsGood programmers who execute within that structure
You have a product manager and a designer, but nobody senior on the technical sideA product engineer, or a technical lead on staff
You are a founder without a technical background and want to launch a first versionA product engineer
You have a product that already exists and the team that built it is goneA product engineer, starting with an audit
You need extra hands for a backlog that is already defined and well prioritizedFreelance programmers, hourly or per project

The cases where the role pays off have one thing in common: nobody on your side is making the technical decisions with judgment, and those decisions are being made anyway. If that gap does not exist, do not hire me to fill it.

The inherited product is a case of its own. When the developer left, the agency finished and disappeared, or the codebase has drifted after years of small changes, the first job is not building but understanding. I start with an audit of the code and the architecture and deliver a written verdict: what is worth keeping, what needs rewriting and what it costs to run from here. With that you decide whether to continue, and with whom.

How to tell whether the person you are about to hire is a product engineer

The title on the profile does not tell you. The questions they ask and the ones they answer do. Before hiring, look for this:

  1. Do they ask about the business before the technology? If the first conversation is about what your company sells, who pays and what has to happen in the first three months, that is a good sign. If it is about which framework you prefer, it is not.
  2. Do they tell you what not to build? A product engineer cuts. If they accept the whole list without discussing it, they are executing, not deciding.
  3. Can they explain a technical decision in terms of money and risk? “This saves us three weeks now and costs us two once we grow” is the answer you want. “It is best practice” is not.
  4. Do they talk about what happens after launch? Analytics, error tracking, maintenance, accounts and access in your name. If the plan ends on delivery day, so does the role.
  5. Do they show launched products in use, not just repositories? It is the most direct proof that they have closed the full cycle at least once.

If you answer yes to most of these, you have someone in front of you who can take charge. If most answers are no, they may be a very good programmer, and in that case you need someone else next to them.

What changes in the price and the contract

Two things change, and it helps to know them before comparing quotes.

The unit of work. A programmer usually charges by the hour or by the task, because that is how their work is measured. A product engineer charges for the outcome: in my case, the first version is quoted at a fixed price after the scope is defined, and maintenance is an ongoing agreement. The fixed quote is only possible because the deciding phase happened first; without a scope there is no price, and whoever gives you one without defining it is making it up.

What is yours. The code, the service accounts, the domains, the app store listings and the access keys are in your name from day one. This should be normal and it is not always. When the contract leaves it out, switching providers becomes expensive, and that dependency is rarely accidental.

In an hourly comparison the product engineer always looks more expensive. In a comparison of what the whole project costs, including what did not get built and what did not have to be redone, the math usually comes out the other way. If your first version is a mobile app or an AI product, mobile apps and AI products explain what each one includes and what the price depends on.

Frequently asked questions

Is a product engineer the same as a full-stack developer?

No. Full stack describes which technologies a person handles: they can build both the visible part and the server side. Product engineer describes what they are responsible for: the product’s outcome, including the decisions about what to build and what not to. A product engineer is almost always full stack, because they need to cover the whole product, but a full-stack developer can perfectly well work only executing tasks someone else defined.

Does a product engineer replace a product manager?

In a small team, yes, in practice. They make the scope and priority decisions a product manager would make, with the advantage that they also know what each option costs because they are the one who will build it. In a company with several teams the product manager role still makes sense, and the product engineer works with them instead of replacing them.

Do I need a product engineer if I already have a CTO?

Almost certainly not. If your CTO decides what gets built, reviews the code and answers for the product, that role is already covered and what you are missing is programmers who execute well within that structure. Hiring a product engineer in that context gives you two people deciding the same things.

Can a product engineer take over a product that already exists?

Yes, and it is a large part of the work. The starting point is different: instead of deciding what to build, the first step is understanding what is there. That is done with an audit of the code and the architecture that ends in a written verdict on what to keep, what to rewrite and what it costs to run. After that the role continues the same way as with a new product: maintenance, releases, new features and a roadmap in plain language.

Does a product engineer also design the interface?

They design enough for the product to be usable and coherent, and they know when that is not enough. For a first version, in most cases it is. When the product depends on a strong visual identity or a highly crafted experience, the right call is to bring in a designer, and part of the role is saying so instead of improvising.

Conclusion

The difference between a programmer and a product engineer is not one of talent or technology. It is one of responsibility: one answers for the task and the other for the product. Hiring the first when you needed the second leaves a gap of decisions that someone fills badly, almost always you. Hiring the second when you already had someone deciding duplicates a role and costs more than necessary.

Before hiring, do this in order: identify who in your company decides today what gets built and what does not; if the answer is nobody, or it is you without a technical background, look for someone who will take charge of the whole product and check them against the five questions above; if the answer is a technical lead you already have, look for programmers and let them decide. And in either case, insist that the code, the accounts and the keys are in your name from day one.

Keep reading