Tech

Tech

Tech

Software engineering is broken. Product engineers can fix it

Software engineering is broken. Product engineers can fix it

Software engineering is broken. Product engineers can fix it

September 5, 2025

Subscribe to
our newsletter

Subscribe to
our newsletter

Just a decade ago, there were frontend developers, backend developers, and a handful of other specialized roles. These distinctions made sense when products were generally simpler and teams were larger.

Now, the divide between frontend and backend is becoming less relevant:

  • Frontend developers aren’t limited to HTML, CSS, and JavaScript anymore. Today, they can deliver an entire web app on their own. They can integrate and connect to databases, handle authentication, and ship end-to-end features independently.

  • Backend developers are often pushed into a choice: either write more frontend to support their backend work, or move deeper into infrastructure.

  • AI is shifting the balance even further. Copilots and LLMs reduce the effort of writing code, putting the emphasis on building the right thing rather than just building. Startups in particular feel this change the most. Their small teams move fast, combining engineering with product sense.

In this setting, the traditional software engineer is becoming less needed. Developers who only focus on writing code are losing effectiveness as “just coding” gets automated or absorbed into broader responsibilities.

What teams need instead are product engineers, developers who can navigate across the stack, make tradeoffs, and connect technical work directly to user and business outcomes. Even further, as the boundaries between roles blur and AI gets better at writing code, product engineers are becoming the future of software development.

What is a product engineer?

A product engineer is an engineer who starts with the product experience and works backwards to the technology that makes it possible. Instead of focusing narrowly on a single part of the stack, they think holistically about frontend, backend, design, and everything in between. Their goal is to create a product that users actually want to use.

Unlike the common idea of a “full-stack” developer, product engineers don’t need to know every technology in depth. What matters is a broad understanding of the available tools and strong experience applying the right ones in practice.

We define this as someone who:

  • makes and owns product decisions.

  • talks to users and cares deeply about their needs.

  • cares more about outcomes than shipping perfect code.

  • is opinionated about what they should be building and can back that up with arguments.

  • understands how their work impacts the business.

  • tests in production and iterates with real users.

  • thrives when given autonomy to engineer every element of the product.

At Appolica, we don’t hire people who just want to be code monkeys. We’ve had talented engineers who didn’t care about the product, who wanted to stay in their narrow lane, and we parted ways. Because in a startup environment, that mindset is a liability. Everyone on the team is expected to own outcomes, not just outputs.

You can easily see this way of thinking in how product engineers actually build. The best ones share a few qualities:

  • Iterative. They value speed of learning over perfection. They’d rather ship something small, get it in front of users, and refine it than spend weeks building in isolation.

  • Customer-focused. They aren’t afraid to talk to customers, gather feedback, and use those insights to guide what they build. Even in larger companies where PMs lead this, strong product engineers stay close to the source of truth.

  • Pragmatic. They see technology as a means to an end. New frameworks or tools are useful only if they help deliver value. They’re just as willing to remove tools as they are to adopt them if it helps the product succeed.

These qualities are what separate someone who just writes code from someone who drives the product forward.

How to think like a product engineer

Most engineers are trained to work in a very specific way. You get a ticket, you write the code, you close the ticket. The focus is on outputs: did you complete the task, did the tests pass, did the feature go live.

Product engineers work differently. They think about outcomes instead of outputs. Did the change actually make the product better? Did it solve a real user problem? Did it help the business grow? The mindset shift seems small, but it changes how you approach almost everything you do as an engineer.

The good news is you don’t need a special background to think like a product engineer. You don’t need to be a designer or a PM. You just need to adjust how you think about your work. That’s what we expect from our teams as well. Everyone executes, everyone takes ownership, and excuses like “the designer didn’t give me the file” or “the deploy is blocked” aren’t acceptable. If something is blocking you, your job is to unblock it, even if that means stepping outside your comfort zone.

Here are some ways to get started.

1. Focus on outcomes, not outputs

Software engineers often measure progress by tasks completed. Product engineers measure progress by impact. Shipping a new feature isn’t a win if no one uses it. Fixing a bug doesn’t matter if it doesn’t actually improve retention.

A product engineer starts by asking what problem is this solving for the user, and how will we know if it worked. That perspective makes every technical choice clearer.

How to start: The next time you’re given a task, don’t just ask “what do I need to build?” Ask “why are we building this?” and “how will we measure success?” Even if the answer isn’t obvious, asking the question helps everyone think more clearly about the outcome.

2. Work across boundaries

Product engineers don’t get stuck in the frontend/backend divide. If a change touches design, frontend, and backend, they’ll figure out enough of each to move it forward. That doesn’t mean they’re experts in everything. It means they’re not blocked by labels.

How to start: The next time you feel like saying “that’s not my area,” stop and ask if you can get 80% of the way there yourself. Momentum matters, not perfection.

3. Embrace iteration

Most engineers are taught to value clean, stable, bug-free releases. That’s important, but in a startup environment, speed of learning is more valuable. Product engineers prefer to ship a rough version, get feedback, and improve.

How to start: Try cutting your next project in half. Then cut it in half again. Ship that smaller version first. See how users respond, then decide if you need the rest.

4. Stay close to users

Product engineers care deeply about the people using what they build. They don’t just rely on specs or second-hand reports from PMs. They join user calls, read support tickets, or simply use the product themselves and notice every point of friction.

The closer you are to the user experience, the better your instincts get. Over time, you start to see patterns and anticipate what will delight users and what will frustrate them.

How to start: Make a habit of using the product you’re building as if you were a customer. Go through the signup flow. Try the onboarding. Push the product until it breaks. Write down everything that feels confusing or slow.

5. Be pragmatic about tools

It’s easy to get distracted by frameworks and libraries. A lot of engineers identify themselves by the stack they use. Product engineers see tools for what they are: a means to an end. The “right” tool is the one that makes the product better, not the one that’s newest or most popular.

They’re also not afraid to remove tools. If a dependency adds more overhead than value, it’s gone. Simplicity often wins.

How to start: Before adding a new library or framework, ask “what happens if we don’t?” If the answer is “nothing,” then maybe you don’t need it.

Hiring product engineers

Many startups post job ads for “full-stack engineers,” but what they actually need are product engineers. That’s true for us too. When we hire, we don’t just look at your stack knowledge. We look for signs that you care about the product itself, that you can adapt, that you want to learn. We expect engineers who can step in, pick up the missing pieces, and move the work forward. Usually, these people tend to have two things in common:

  1. A genuine passion for crafting great user experiences.

  2. A constant curiosity and drive to learn new things.

They aren’t just coders. They’re builders who take ownership of what they ship and care deeply about the end result. Because their work is so visible, they should be able to point to plenty of examples that show the quality of their approach.

Strong product engineers also look beyond what’s on the screen. They think about how the entire experience holds up in the real world. What if the network is slow or drops out completely? What happens if an API fails? How does it feel on a touchscreen? What latency targets should we hold ourselves to? These are the details that separate someone who writes code from someone who builds products.

The bottom line

Thinking like a product engineer also changes the way progress is measured. It is no longer about lines of code, tasks completed, or features shipped. What matters is whether the product improves and whether users feel the difference.

Strong technical skills are still important, but they are only the baseline. The real value comes from judgment, from connecting your work to real-world outcomes, and from taking ownership when things aren’t perfect.

That’s why we believe product engineers are the only type of engineer that matters in the future. Everyone else, the ones who just want to write code and stay in their corner, will be replaced either by AI or by engineers who think like owners.

That is what makes product engineers so valuable. They are not just building software. They are building products that matter.

Continue reading
Continue reading
Continue reading

The latest handpicked blog articles

The latest handpicked blog articles

The latest handpicked blog articles

Let's build your product together.

Ready to start your project? We're here to help.

Let's build your product together.

Ready to start your project? We're here to help.

Let's build your product together.

Ready to start your project? We're here to help.