My design philosophy

Deeply intertwined at the heart of my design philosophy are both Design Thinking and Minimalism, setting the foundation for an approach that champions user needs and simplicity above all else.

By sharply focusing on core essentials and vigorously eradicating unnecessary distractions, I'm dedicated to constructing designs that emanate clarity and facilitate easy interaction. Often this hyper focus is most beneficial in times when speed is prized, resources are short, and new un-tested technologies are being explored.

My adherence to Design Thinking guarantees that user needs guide my designs, whereas my minimalist inclinations work to keep the experience straightforward and uncluttered. I see constraints not as barriers, but as springboards for creative solutions, and I thrive with short feedback loops and tight deadlines.

See also How To Run A Project and Embracing Joy-Driven Development: A New Philosophy for Better Work

Simplicity & Minimalism

At the core of my design philosophy lies simplicity and minimalism. By focusing on essential elements and stripping away everything else, I strive to create designs that are clean, intuitive, and easy to navigate. This approach ensures that users can quickly grasp the purpose of a design and interact with it seamlessly, and increases the speed of development.

Universal Application Across Diverse Mediums

The principles of simplicity, minimalism, and functionality are universal and can be applied across various mediums—from print to digital design. By adhering to these core tenets, I can create cohesive designs that are visually appealing, user-friendly, and effective in conveying their intended message.

Phases of the Design Process

My design process typically unfolds in several phases:

  1. Research & Discovery: Understanding the project requirements, target audience, and prior work.
  2. Ideation & Sketching: Brainstorming ideas and sketching out concepts on paper.
  3. Digital Mockups: Translating sketches into digital mockups using Figma, Illustrator, After Effects, or by writing code.
  4. Refinement & Iteration: Refining designs based on feedback and testing.
  5. Finalization & Handoff: Preparing final assets for development and writing tickets with engineers during implementation.

Paper & Sketching

Before diving into digital tools, I often begin my design process with paper and sketching. This tactile approach allows me to explore ideas more freely, experiment with different layouts, and quickly iterate on concepts without being constrained by technology.

Using Grids

Grids are an essential tool. They provide structure and consistency across different elements within a design while ensuring proper alignment and spacing. They also allow you to move quickly with confidence. By adhering to a grid system, I can create visually balanced compositions that are both aesthetically pleasing and functional.

"Designer Hat" Vs "Engineer Hat"

As a designer, it's important to be able to switch between the "designer hat" and the "engineer hat." This means being able to think both creatively and analytically, considering not only the visual aspects of a design but also its functionality and feasibility from an engineering perspective.

The Power of Constraints

A central tenet in my design philosophy is the Power of Constraints. When we face limitations in our design process, instead of viewing them as stifling roadblocks, I consider them a unique source of inspiration. Constraints challenge us to work within our means and bring out the best from what we have at hand.

Save Colors for Information

Colors can be powerful tools for conveying information in a design. However, using too many colors can lead to visual clutter and confusion. I believe in using colors sparingly and purposefully—reserving them for key elements or to highlight important information.

Red, White, and Black

Red, white, and black are classic colors that form the foundation of my design palette. These timeless hues work harmoniously together while providing ample contrast for readability. By starting with this versatile trio, I can build upon it with additional colors when necessary.

Iterative process

The iterative process is essential for a few reasons:

  1. User-Centric Design: It enables a design to be refined continuously based on actual user feedback, keeping the design centered around the user's needs.
  2. Risk Reduction: Regular testing can catch and fix problems early, thus minimizing the risk of costlier changes later in development.
  3. Continual Improvement: The cycle allows for continuous refinement, meaning the design can evolve and adapt as more is learned about users and their needs.

Alternatives to iterative design could include the Waterfall Model or Big Design Up Front (BDUF).

The Waterfall Model is a linear approach where one phase must be completed before moving on to the next. It can be appropriate when requirements are well-understood in advance, changes are unlikely, and the project is relatively simple.

Big Design Up Front involves spending considerable time on designing the entire system in detail before implementation begins. It's appropriate when there is a clear and unchanging understanding of requirements, though this is rare in practice.

However, both alternatives have their limitations. They often fail to account for changing user needs or unexpected issues arising during development. Hence, they may not yield designs as user-friendly or effective as an iterative approach would.

Pros/Cons Of Designing in Code

Designing in code offers several advantages, such as rapid prototyping and easy collaboration with developers. However, it can also be limiting in terms of creative freedom and may require more time to make adjustments compared to using design software. I believe in striking a balance between designing in code and utilizing design tools, depending on the specific needs of a project.