Skip to main content
5 Core principles
>20 Years applying them
1 Set of hands behind it all
Human-Centered Problem Solving

"The man who wants a drill, needs a hole."

Design thinking begins with one foundational question: what is the user actually trying to accomplish? Not what they asked for — but rather what do they need. Theodore Levitt's drill-and-hole formulation captures this perfectly. Features are tools to achieve and end. The outcomes are what people care about.

The Design Thinking framework moves through three iterative phases — Learn, Create, and Make — each containing a pair of human-centered activities that ensure decisions are grounded in reality rather than assumption.

Phase 1 Learn Empathize · Define
Phase 2 Create Ideate · Prototype
Phase 3 Make Test · Build

These phases aren't linear — they're iterative. A test that reveals new user behaviors sends the work back to the empathy phase. The loop of constantly applying discoveries is the cycle that makes the process so powerful. This feeds well into an Agile workflow.

Step 1 Define
Step 2 Create
Step 3 Refine
Step 4 Release
Evidence Over Assumption

"Know your user. Build empathy through research."

The most dangerous sentence in design is "I know our users want…" Pre-conceptions and intuition are starting points — never endpoints. Real research replaces assumption with evidence, and it almost always reveals something that wasn't expected. After many cycles trends and norms do present themselves as parts of the human condition. But without validation, we all know that assumptions have a way of making an ass out somebody.

UX research splits into two streams: automated tools that capture behavior passively at scale, and active research methods that uncover the thinking behind the behavior.

Automated — passive, always-on behavioral data
Google Analytics HotJar FullStory Mixpanel Mouseflow
Active — direct engagement with real users
User interviews Usability testing Card sorting Tree testing Surveys A/B testing
Nielsen Norman Group — UX Research Methods Don Norman, The Design of Everyday Things — foundational reading for human-centered design
Scalable Design Systems — Brad Frost

"Start small — atomic small. Then document all."

Brad Frost's atomic design methodology gives designers and developers a shared language for building interfaces. By decomposing UI into a strict hierarchy of reusable components, it eliminates the problem of designing in isolation and then handing off to a development team that has to reverse-engineer what you built.

The hierarchy runs from the most granular UI element up to the full page. Each level is composed from the level below it — which means decisions made at the atom level propagate consistently throughout the entire system.

Atoms
Molecules
Organisms
Templates
Pages

When atoms are defined correctly — type scales, color tokens, spacing units — every molecule, organism, and page inherits those decisions automatically. Change one atom and the change propagates everywhere. This is what makes design systems maintainable at scale rather than a documentation project that falls out of date the moment it ships.

Brad Frost — Atomic Design atomicdesign.bradfrost.com — The definitive resource on component-based design systems
Iterative Process over Waterfall

"Kill the silos. Design and development belong in the same room."

The waterfall model — where design finishes before development begins, and requirements are locked before anything is built — looks organized on a Gantt chart. In practice, it ensures that by the time a product ships, the assumptions it was built on are months out of date.

Agile replaces the handoff model with a collaboration model. Design and development work in parallel, in short iterative cycles. Feedback from real usage informs the next cycle. The product gets better continuously rather than in a single high-stakes launch.

Waterfall
Linear & sequential
  • Requirements locked upfront
  • Design before development
  • Long cycles, big releases
  • Silos between disciplines
  • Late feedback — high cost to change
Agile
Iterative & collaborative
  • Requirements evolve with learning
  • Design and dev run in parallel
  • Short sprints, continuous delivery
  • Cross-functional collaboration
  • Early feedback — low cost to change

The practical workflow moves through three phases that overlap and inform each other: concept and wireframing, UI design, and development. The phases aren't walls — they're conversations. A developer's question during phase three should be able to loop back and improve phase two.

Phase 1 Concept & Wireframe Architecture · Flow · Prototype
Phase 2 Design UI Visual · Component System · Spec
Phase 3 Develop Build · Test · Ship · Iterate
Shared Mental Models & Universal Patterns

"Before you design the interface, understand the person."

Every person who touches a product arrives with a lifetime of experience that has already shaped how they expect things to work. These mental models — formed by doors, light switches, books, conversations, and every digital interface they've ever used — are not obstacles to design around. They are the foundation to design from. Jakob's Law puts it plainly: users spend most of their time on other products, so they expect yours to work the same way.

Beyond convention, the human condition gives us something deeper: universal patterns in how people perceive, process, and respond to the world. Gestalt principles explain how we group and interpret visual information before we consciously think about it. Cognitive load theory explains why simpler interfaces produce better decisions. Loss aversion explains why a warning feels more urgent than a reward. These aren't design tricks — they're descriptions of how human beings actually work.

Layer 1 Perception Gestalt · Visual hierarchy · Pattern recognition
Layer 2 Cognition Mental models · Cognitive load · Memory
Layer 3 Emotion Trust · Loss aversion · Motivation
Layer 4 Behavior Habit · Convention · Jakob's Law

Acknowledging the human condition is not sentimentality — it's precision. When you understand that people scan before they read, that they anchor on the first number they see, that they trust interfaces that feel familiar, and that they abandon flows the moment confusion sets in, you stop designing for hypothetical users and start designing for actual ones. The best design decisions are the ones grounded in what humans are, not just what they say they want.

Nielsen Norman Group — Mental Models Jakob Nielsen · Don Norman — the foundational voices on designing for how humans actually think and behave