← ALL WRITING

The Designer Who Codes: What the Hybrid Role Is Actually Good For

I've spent nine years on both sides of the handoff — wireframes and interaction design on one, React, Angular and TypeScript on the other. The hybrid role is genuinely useful, and it is also genuinely the wrong hire in about half the situations it gets proposed for.

Suraj Vaidya··8 min read

The objection, first

Jack of all trades, master of none. It is the first thing anyone thinks and it deserves a straight answer rather than a defence: it is often correct. A designer who codes a bit is usually a weaker designer than a specialist and a considerably weaker engineer, and hiring one to cover two roles at once is a false economy that becomes obvious around month four.

The version that works is narrower than the version usually advertised. Not “does both jobs”, but: designs the interface, and is fluent enough in the front-end that the design is made of things the codebase can actually express. The value is not in the breadth. It is in the seam.

What actually gets faster

The handoff loop. In a conventional setup, a design goes to an engineer, the engineer finds three things that don't survive contact with real data, and each one becomes a message, a wait, a revision and a re-review. Four rounds of that is a fortnight, and most of the fortnight is queueing rather than working.

When the person designing it knows what the component library already contains, most of those three things never occur, because the design was made from pieces that exist. What is left is a real conversation about a real trade-off, and it happens once.

The measurable version of this is not “design is faster”. Design is often slower, because more is being resolved before anything is handed over. What shrinks is the total elapsed time between an idea and a shipped screen.

Three things only the hybrid tends to catch

These are the specific gaps that a designer with no front-end fluency and an engineer with no design context both walk past.

  • Designs that are two components pretending to be one. A card that is subtly different on three screens looks like attention to detail in Figma and reads as three components to maintain in the repository. Someone who will have to maintain it designs it differently.
  • States that don't exist in the design because they don't exist in the mockup's data. Empty, loading, error, and the string that is four times longer than the placeholder. These are the states that reach production unfinished, every time.
  • Motion and interaction specified in a way the framework can't cheaply deliver. A transition that requires animating a property the browser cannot animate cheaply is a design decision with a frame-rate cost, and the cost is invisible until it ships.

The seam, in three concrete cases

Abstractions are easy to agree with, so here are three specific instances where the hybrid position changed the outcome rather than just the vocabulary.

At Infomentum, on the baesystems.com redesign, the design and the front-end were being resolved against each other continuously rather than in sequence. The value was not that any single decision was better — it was that a decision about how a module behaved at a breakpoint could be tested in the browser the same afternoon it was drawn, rather than surviving two weeks in a static file before anyone discovered it did not work.

At HiUp Solutions, across AcademyHQ and ConnectedRMS, the design system existed because one person was accountable for both the specification and the implementation of the components in it. Systems built by a designer who will not maintain them tend to specify things that are expensive to build; systems built by an engineer alone tend to specify things that are cheap to build and unpleasant to use.

On D'ARK, the constraint runs the other way. As the only person on it, every design decision is immediately priced in implementation time, which is a brutal but effective filter. Roughly a third of what I have designed for it has been dropped at the point of realising what it would cost to maintain, and the product is better for the omissions.

Where the hybrid is the wrong hire

When the hard problem is research. If the actual question is what users need, a hybrid is a worse choice than a dedicated researcher or product designer with real discovery experience. Interface fluency is not the same skill and pretending otherwise wastes a quarter.

When the hard problem is engineering depth. A large-scale migration, a rendering performance investigation, a complex state architecture — these want a specialist who has done nothing else. I would not take that work over a front-end engineer with five focused years on it, and would say so.

And when the role is really two roles with one salary attached. That is not a hybrid position, it is understaffing described optimistically, and it produces burnout rather than throughput.

If you're hiring one, ask for this

Portfolios are unreliable here, because a hybrid's best work looks identical to a specialist's from the outside. The distinguishing evidence is process rather than output.

  • Ask them to walk through a component they designed and then built, and to name what changed between the two. If nothing changed, they are describing someone else's work.
  • Ask what they removed from a design because it was disproportionately expensive to build. A hybrid who has never made that trade-off has not really been on both sides.
  • Ask how they handle disagreeing with themselves — the designer wants one thing, the engineer knows it costs a week. The answer tells you whether they arbitrate honestly or just let one side win.
  • Look for a design system or component library in their history. It is the artefact that only gets built well by someone who lives in the seam.

What changes about how you get managed

This is the part nobody warns you about. Hybrid roles sit badly in organisations that manage by function, because there is no obvious person to report to and no obvious ladder to climb. A design manager will assess the design work and be vague about the engineering; an engineering manager will do the reverse. Both reviews will read as slightly incomplete, and over a few cycles that reads as underperformance even when the output is strong.

The practical countermeasure is to make the seam legible. Rather than reporting on design work and engineering work as two streams, report on the thing the hybrid position uniquely produces — the rework that did not happen, the components consolidated, the design decisions priced and changed before they were built. Nobody else in the organisation is measuring that, so if you do not describe it, it does not exist.

It also helps to be explicit about which half of the role is load-bearing in a given quarter. Trying to be equally accountable for both at all times is how the position becomes two jobs, which is the failure mode this whole article is trying to avoid.

If you're a designer who wants to get there

Learn to read the codebase before you learn to write it. Being able to open the repository, find the button component and see which variants exist changes how you design more than any amount of syntax practice does.

Then learn CSS properly — layout, cascade, custom properties — rather than a framework. Most of what makes a design cheap or expensive to build is decided in CSS, not in JavaScript. Framework fluency can come later, and comes much faster once the styling layer is genuinely understood.

Ship something small end to end. A personal site you designed and built teaches more about the seam than a year of reading, mostly because you cannot hand the awkward parts to anyone else.

If you're an engineer who wants to get there

The route in is not learning Figma. It is learning to argue about interface decisions in terms of the user rather than the implementation. An engineer who can say why a flow is confusing, and not only that it is hard to build, is already doing the job.

The specific skill worth developing first is typographic and spatial judgement — type scale, hierarchy, rhythm, alignment. It is unglamorous, it is learnable, and it is what separates an interface that looks considered from one that looks assembled.

What nine years actually taught me

That the value of the hybrid role is almost entirely defensive. It does not produce better ideas than a good designer or better code than a good engineer. What it removes is a category of expensive mistake — the design that could not be built as drawn, the component that quietly became three, the state nobody specified — and it removes them early, when they cost an hour instead of a sprint.

That is a narrower claim than the role is usually sold on. It is also, in my experience, the one that survives contact with a real team.