Why I’m Not Afraid to Code as a UX & Product Designer

Changing Expectations in UX Design
Over the past few years, something subtle but important has shifted in UX job descriptions.
It’s no longer just research, wireframes, usability testing, and polished prototypes. More and more listings include phrases like “basic understanding of HTML/CSS”, “ability to work in React”, or even “ship production-ready UI”. Some roles blur the line entirely: Product Designer with Front-end experience. UX Engineer. Design Technologist.
For many designers, this feels like scope creep. For product teams, it feels like evolution.
Modern teams move faster. They ship weekly, not quarterly. Design systems live in code, not just in Figma libraries. Collaboration with engineering isn’t a final handoff step. It’s continuous. In lean startups, especially, the distance between idea and implementation keeps shrinking. The expectation is no longer just to design the interface, but to understand how it behaves in production.
This shift has created tension in the industry. Should UX designers code? Is this dilution of craft, or expansion of capability? Are we merging roles, or redefining them? The conversation is ongoing, and opinions are strong on both sides.
“MODERN TEAMS MOVE FASTER. THEY SHIP WEEKLY, NOT QUARTERLY”
But whether we agree with it or not, the market signal is clear: hybrid thinking is becoming more valuable. Employers aren’t just looking for visual output. They’re looking for designers who understand constraints, systems, performance, and real-world implementation.
This convergence isn’t just my observation. Design leaders from Brad Frost to Una Kravets have pointed to the same shift: modern UX increasingly lives at the intersection of design and implementation.
For some, that expectation feels new.
For me, it never was.
The Classic UX Role vs. Modern Product Demands
For a long time, the UX role was clearly defined.
UX designers were responsible for understanding users, defining problems, mapping journeys, creating wireframes, building prototypes, and validating ideas through testing. The focus was on research, structure, flows, and clarity. Once the experience was defined and approved, it moved to UI refinement and then to engineering for implementation.
- It was a clean system.
- UX defined the what and the why.
- Engineering handled the how.
In larger organizations, especially in enterprise environments with longer release cycles, this separation worked well. Teams were specialized. Responsibilities were segmented. Handoff was a structured milestone, not an ongoing collaboration. Designers didn’t need to think deeply about performance budgets, component architecture, or Front-end constraints. That was someone else’s domain.
But product teams changed.
“PRODUCT TEAMS INCREASINGLY VALUE DESIGNERS WHO UNDERSTAND FEASIBILITY”
Modern environments operate on continuous delivery. Small cross-functional squads own features end-to-end. Design systems are no longer static style guides. They’re living component libraries tied directly to code. Iteration cycles are measured in days or weeks, not quarters.
In this context, the traditional handoff model started to feel inefficient.
When designers create screens without understanding technical constraints, friction appears. When engineers reinterpret prototypes without context, intent gets diluted. When iteration is constant, long documentation cycles slow everything down.
As a result, the expectations expanded.
The core UX toolkit didn’t disappear. Research, systems thinking, usability testing still matter. But product teams increasingly value designers who understand feasibility, think in reusable components, speak the language of developers, and design with implementation in mind.
Not because design lost importance. But because the environment demands tighter integration between thinking and building.
So the question becomes: Where did this expectation actually come from?

Where the Expectation Comes From
So where did this expectation actually come from?
It didn’t appear because companies suddenly decided designers should code. It emerged from structural shifts in how products are built.
❶ First, teams became leaner.
Startups and modern product organizations operate with smaller, cross-functional squads. Instead of large departments with rigid boundaries, you often have a product manager, a designer, and a handful of engineers owning a feature end-to-end. In these environments, specialization still matters, but overlap becomes valuable. When roles understand each other’s domain, collaboration accelerates and friction decreases.
❷ Second, product cycles became dramatically faster.
Continuous delivery, A/B testing, feature flags, and rapid iteration changed expectations around speed. Ideas are validated in days, not months. When designers understand how interfaces are structured in code, they can prototype more realistically, anticipate constraints earlier, and reduce back-and-forth during implementation. The gap between concept and production shrinks.
“THE EXPECTATION THAT DESIGNERS UNDERSTAND CODE ISN’T A TREND”
This isn’t about ego or territory. It’s about reducing iteration cost.
❸ Third, design systems moved into code.
What used to be static style guides are now living component libraries. Tokens, reusable components, accessibility patterns, and interaction logic often live in frameworks like React or other Front-end architectures. Design is no longer just visual output. It’s increasingly system architecture. When systems are component-driven, thinking in components becomes essential. And components are, ultimately, code.
This convergence between design and implementation has been visible across the industry for years. As design systems pioneer Brad Frost put it, “Telling web designers they don’t need to worry about code is like telling architects they don’t need to worry about physics.”
Leaders in the design-systems space echo the same shift. Dan Mall describes modern systems as “not just visual, but code systems,” reflecting how deeply design now lives inside implementation.
❹ Finally, entirely new hybrid roles began to emerge.
Titles like UX Engineer, Design Technologist, or Product Designer with Front-end experience didn’t appear randomly. They surfaced because teams needed translators: professionals who could move fluidly between experience design and implementation without losing intent.
Taken together, these forces created a market signal.
The expectation that designers understand code isn’t a trend driven by hype. It’s a response to faster product cycles, tighter collaboration models, and component-based development ecosystems.
But acknowledging where this expectation comes from doesn’t automatically mean it should apply universally.
So the real question becomes: Does that mean coding should be a core requirement for every UX designer?
Arguments Against Coding as a Core UX Requirement
Before going further, it’s important to acknowledge something clearly:
❌ Coding is not, and should not automatically become, a universal requirement for every UX designer.
UX is already a deep and demanding discipline. Research, behavioral psychology, information architecture, accessibility, systems thinking, usability validation: each of these areas requires focus and mastery. Designing meaningful, human-centered experiences is not a lightweight responsibility. It’s a craft that takes years to develop.
“THE ARGUMENT MANY DESIGNERS MAKE IS VALID: DEPTH MATTERS”
When expectations expand to include research, strategy, visual design, prototyping, Front-end implementation, and even maintaining UI in production, there’s a real risk of dilution. Instead of creating stronger designers, we may end up with professionals stretched too thin, competent across many areas but exceptional in none.
There’s also an organizational dimension to this debate.
Sometimes hybrid expectations are driven by evolution. Other times, they’re driven by cost efficiency. Merging roles can be a strategic decision, but it can also become a shortcut to avoid hiring the right mix of specialists. In those cases, asking designers to code may be less about collaboration and more about filling resource gaps.
“CONTEXT MATTERS”
In large enterprise environments with dedicated Front-end teams and complex engineering pipelines, a designer may bring more value by going deeper into research and systems thinking rather than implementation. In research-heavy or highly regulated industries, separation of responsibilities can actually protect quality and compliance.
So no. Coding is not a mandatory extension of UX by default. But the discussion shouldn’t end with whether designers must code.
A more useful question is: When does understanding code become a strategic advantage?

Why Coding Can Be Valuable as a UX Designer
So no. Coding shouldn’t automatically be a universal requirement for UX designers.
But when used intentionally, it can become a serious strategic advantage.
✅ The first and most immediate benefit is collaboration. When designers understand how interfaces are structured in code, conversations with engineers change:
- Constraints are discussed earlier.
- Edge cases are identified sooner.
- Ambiguity decreases.
- Instead of long handoff documents and multiple clarification rounds, alignment happens in real time.
“SHARED LANGUAGE REDUCES FRICTION. REDUCED FRICTION ACCELERATES DELIVERY.”
Designing with implementation in mind also changes the quality of decisions being made. When you understand component structure, responsive behavior, accessibility standards, and performance implications, you naturally design more realistic and scalable solutions. You think in reusable modules rather than isolated screens. You consider states, not just visuals.
From a business perspective, this matters.
- Designs that account for real-world constraints require less rework.
- Engineering teams spend less time rewriting layouts.
- QA teams encounter fewer UI inconsistencies.
- Fewer misunderstandings mean fewer bugs.
- And fewer bugs mean less time spent on hotfixes, patch releases, and reactive updates.
Upstream clarity reduces downstream cost. Speed is another multiplier.
In modern product environments, iteration cycles are short. Being able to prototype interactions in code, test micro-states realistically, or validate edge cases without waiting on a full implementation shortens the feedback loop. The distance between idea and production shrinks. MVPs ship faster. Experiments run sooner. Learning accelerates.
When product velocity increases without sacrificing quality, the impact is tangible.
There’s also the system dimension.
Design systems today are not static style guides. They are living component libraries connected directly to code. Tokens, spacing scales, interaction logic, accessibility patterns: these are implemented, not just documented. Designers who understand how systems function in production create more scalable frameworks. They reduce duplication, minimize UI drift, and help teams maintain consistency over time.
“THAT CONSISTENCY LOWERS MAINTENANCE COST AND INCREASES LONG-TERM STABILITY”
This is also why many hybrid practitioners see technical awareness as part of modern UX fluency. Google design-engineering advocate Una Kravets notes that “the future of the web belongs to people who understand both design and development.” When designers grasp how interfaces are built, as educator Joshua Comeau observes, they naturally create “more realistic and resilient experiences.”
None of this means designers must become full-time engineers.
But understanding how products are actually built creates an edge. It reduces iteration loops, decreases technical debt, minimizes update cycles, and improves predictability in delivery. In fast-moving teams, that combination is powerful.
For me, these advantages were never theoretical. Designing with implementation in mind has shaped how I’ve worked for over a decade.

My Journey: Designing and Developing for 13+ Years
For many designers, the expectation to understand code feels like a recent shift.
For me, it never was.
From early in my career, I gravitated toward roles where the line between design and implementation was thin. As a UX/UI Engineer, I wasn’t just creating polished interfaces in Figma and passing them forward. I was translating them into production-ready Front-end, working with HTML, CSS, JavaScript, and later modern frameworks like React and Next.js. That period wasn’t about “adding coding to my skill set.” It was about understanding how digital experiences truly behave once they leave the design tool.
“IT WAS ABOUT UNDERSTANDING HOW DIGITAL EXPERIENCES TRULY BEHAVE ONCE THEY LEAVE THE DESIGN TOOL”
That hands-on exposure changed everything.
I learned quickly that beautiful layouts can break under real content. That interactions feel different in a live environment than they do in a prototype. That performance, accessibility, responsiveness, and state management aren’t theoretical concerns. They shape user experience directly. Writing code forced me to confront reality early, and that discipline stayed with me.
“WRITING CODE FORCED ME TO CONFRONT REALITY EARLY, AND THAT DISCIPLINE STAYED WITH ME”
As my responsibilities expanded, so did the scale of the problems.
I moved into more complex SaaS environments (data-heavy dashboards, enterprise systems, multi-role platforms) where design decisions affected not just aesthetics but workflows, efficiency, and business logic. In high-traffic e-commerce projects, performance and conversion weren’t abstract KPIs; they were measurable outcomes. Design systems weren’t visual guidelines. They were scalable component architectures tied directly to Front-end implementation.
Eventually, I stepped into UX Tech Lead roles, where the integration between design and engineering became even more critical.
Managing both designers and developers gave me a unique perspective. I understood the creative intent behind UX decisions and the technical constraints behind implementation choices. I could facilitate conversations that didn’t get stuck in translation. When designers proposed ambitious solutions, I could evaluate feasibility. When engineers raised constraints, I could help re-frame them without compromising the user experience.
“MANAGING BOTH DESIGNERS AND DEVELOPERS GAVE ME A UNIQUE PERSPECTIVE”
Instead of long cycles of interpretation and revision, teams operated with shared context. Roadmaps became clearer because design and engineering were not operating in silos. Priorities were easier to define because I could weigh user impact against technical effort realistically. As a result, projects moved with fewer surprises, fewer late-stage conflicts, and fewer reactive fixes.
Leading mixed teams also reinforced something important: hybrid capability isn’t about replacing specialists. It’s about creating stronger bridges between them.
- When designers understand how their work will be implemented, they design more responsibly.
- When developers understand the user rationale behind decisions, they build with more intention.
As someone operating between both, my role was often to reduce friction, clarify trade-offs, and protect both user value and technical integrity.

Over 13+ years, this way of working became natural. I don’t switch hats between “designer mode” and “developer mode.” I think in systems, components, flows, constraints, scalability, and long-term maintainability, all at once.
“I DON’T SWITCH HATS BETWEEN “DESIGNER MODE” AND “DEVELOPER MODE””
The current industry conversation about hybrid roles didn’t redefine my career path. It simply described it.
Examples of this approach (across SaaS platforms, enterprise systems, e-commerce rebuilds, and design system implementations) can be seen across my portfolio.
For me, bridging design and code isn’t a reaction to market demand. It’s the foundation I built my career on.
The more interesting question now is: What does a well-defined hybrid role actually look like in modern product teams?
Hybrid Roles in Practice: What Teams Actually Need
When people hear “designer who codes,” the first reaction is often concern.
- Does that mean one person is expected to do everything?
- Is this just a cost-cutting strategy in disguise?
- Are we collapsing roles instead of strengthening them?
A healthy hybrid role is not about replacing engineers or eliminating research depth. It’s not about overloading one person with every responsibility in the pipeline. And it’s definitely not about turning designers into junior developers.
“HYBRID CAPABILITY, WHEN DONE RIGHT, IS ABOUT FLUENCY”
It’s about understanding how experience decisions translate into real systems. It’s about knowing how components behave in production. It’s about being able to anticipate complexity before it becomes friction.
🚀 In practice, hybrid designers tend to add the most value in specific environments.
Early-stage product teams benefit from someone who can move quickly between defining an experience and validating it in code. MVP-focused environments gain speed when the gap between prototype and production is small. Design system initiatives move faster when the person defining tokens and components understands how they’ll be implemented.
In complex UI ecosystems (data-heavy dashboards, enterprise tools, high-traffic platforms) hybrid thinking reduces ambiguity. Instead of designing isolated screens, the work centers around scalable components, predictable states, and maintainable interaction logic.
⭐️ The real strength of a hybrid role, though, is the bridge function.
Teams lose momentum when design intent gets diluted during implementation or when engineering constraints surface too late. A hybrid designer can participate in technical trade-offs early. They can translate user rationale into implementable patterns. They can align product ambition with realistic feasibility without defaulting to compromise.
In practice, this bridge between disciplines is exactly what design-systems leaders emphasize. 🖤 Jina A. has argued that successful systems require designers and engineers to “work in the same language”: not as merged roles, but as aligned collaborators.
This doesn’t mean every team needs designers writing production code daily.
But most modern teams benefit from designers who understand how their work behaves beyond the mock-up. Designers who think in systems instead of isolated pages. Designers who anticipate responsive behavior, accessibility implications, and state transitions before development begins.
When that level of understanding is present, several things happen:
- Product cycles shorten.
- Redesigns after development decrease.
- UI inconsistencies surface earlier.
- Design systems mature faster.
- Trust between design and engineering strengthens.
“THE REAL STRENGTH OF A HYBRID ROLE, THOUGH, IS THE BRIDGE FUNCTION”
The result isn’t just smoother collaboration. It’s more predictable delivery. Hybrid roles, at their best, don’t blur boundaries. They clarify them.
So the real question isn’t whether designers should code.
It’s how both designers and hiring managers should think about this shift strategically.

Advice for UX Designers (and Hiring Managers)
At this point, the conversation isn’t about whether UX is changing. It clearly is. The more useful question is how to respond to that change, thoughtfully, not reactively.
For UX Designers
❶ First, don’t learn code out of fear.
If your motivation is anxiety about job listings, that’s not a strong foundation. The better question to ask yourself is: What kind of environment do I want to work in? If you’re drawn to fast-moving teams, MVP cycles, startup ecosystems, or product ownership models, technical fluency will naturally extend your reach. If your strength and passion are deep research, behavioral modeling, and complex problem framing in structured environments, coding may be less central.
❷ Second, aim for fluency, not role replacement.
You don’t need to become a senior Front-end engineer. But understanding how components are structured, how responsive logic works, how accessibility is implemented, and how state affects UI behavior changes the way you design. Even a foundational understanding of modern Front-end architecture can dramatically improve collaboration and reduce friction.
Fluency creates credibility.
When engineers see that you understand constraints, conversations shift. When product managers see that you can estimate feasibility realistically, trust increases. When you anticipate complexity early, iteration becomes cleaner.
❸ Third, protect the core of UX.
Research, systems thinking, usability validation, clarity of interaction: these are not optional. Hybrid capability should strengthen UX depth, not replace it. The industry doesn’t need designers who trade empathy for syntax. It needs professionals who understand how thinking and building intersect.
For Hiring Managers
Clarity matters.
Before adding “must know React” to a job description, define what problem you’re actually solving. Do you need a designer who can prototype realistically? Someone who understands Front-end constraints? Or a true UX Engineer who will contribute production code regularly?
These are different roles.
Vague hybrid expectations create frustration on both sides. Designers feel stretched. Engineers feel role boundaries blur. Projects lose focus.
“VAGUE HYBRID EXPECTATIONS CREATE FRUSTRATION ON BOTH SIDES”
If you decide to merge responsibilities, do it intentionally. Hybrid roles work when scope is clearly defined and workload is realistic. They fail when they become a quiet substitute for hiring both design and engineering expertise.
Also, hire for systems thinking, not just tool familiarity.
Tools evolve quickly. Frameworks change. What scales long-term is the ability to think in components, anticipate constraints, frame problems clearly, and collaborate across disciplines. A designer who understands how products behave in production will always outperform someone who only knows the latest tool set.
UX is evolving, but evolution doesn’t mean dilution.
It means adaptation with intention.
The challenge isn’t whether designers should code. It’s how we integrate technical awareness without losing what makes UX powerful in the first place.

Conclusion: Defining UX for Today’s Landscape
UX is evolving. Not because the fundamentals are broken, but because the environment around them has changed.
Product cycles are faster. Teams are leaner. Systems are more complex. Design no longer lives in static documents; it lives inside component libraries, shared repositories, and production environments. The expectations placed on designers reflect that reality.
But the core of UX hasn’t disappeared.
- Empathy still matters.
- Research still matters.
- Clarity of interaction still matters.
- Systems thinking still matters.
Understanding code doesn’t replace those foundations. In the right context, it strengthens them. It allows designers to anticipate constraints earlier, collaborate more effectively, and design solutions that survive contact with production.
The modern UX professional isn’t defined by whether they write code daily.
They’re defined by whether they understand how their decisions behave in the real world: inside real systems, under real constraints, with real users.
For me, bridging design and implementation was never a defensive move or a response to market pressure. It’s how I’ve approached product work for over 13 years.
- Thinking in components.
- Designing for scalability.
- Aligning user value with technical feasibility.
- Reducing friction between idea and execution.
The conversation around “designers who code” will likely continue. And that’s healthy. It forces us to define what we value in our craft.
But perhaps the better question isn’t whether UX designers should code.
It’s this:
“In today’s product landscape, how close should design be to production?”
I’d love to hear your perspective, especially from designers and hiring managers navigating this shift.



