Skip to main content
May 12, 20265 min read

How I Think About Full-Stack Product Development

Balancing technical execution, product thinking and business value across the whole stack.

productengineeringphilosophy

Full-stack is not a list of technologies. It is a way of holding the whole problem in your head — from the user opening a page to the row that gets written in Postgres — and refusing to treat any layer as someone else's responsibility.

When I sit down to build something, I try to ask three questions before I touch a file:

  • What is the user actually trying to do here?
  • What does the business need this to become in twelve months?
  • What is the smallest, most honest version of this we can ship next week?

If I can answer those clearly, the technology decisions get much smaller. The framework matters less than the shape of the data model. The database matters less than the contracts between services. The UI library matters less than the rhythm of the interface — how it makes the user feel between clicks.

Product first, then stack

Most engineers I admire are quietly product people in disguise. They read the spec, then sketch the flow on paper, then write the migration, then build the screen. They are paid for code, but their real work is reducing ambiguity. A good full-stack engineer trims the problem until it is small enough to ship without losing the part the user actually cares about.

This is why I push back on tickets that describe how before they describe why. "Add a modal here" is not a task — it is the residue of a decision someone made in a meeting. The job is to recover the original intent and then ask whether a modal is really the cheapest way to honor it.

Business value is a feature

Every line of code I write should make at least one of three things easier: the user's job, the team's job, or the next change. If it doesn't, it is overhead.

That is the lens I bring to architecture decisions, to APIs, to schemas, to the UI. Not "is this elegant?" but "is this earning its keep?"

Full-stack thinking, for me, is just that question — repeated, calmly, at every layer of the system, every week.