My Process & Me

Common sense is not so common

Hi! My name is Josef Richter

I've been designing mobile apps & web for the last 14 years. I do ~80% mobile apps and 20% web sites and apps. I've worked with all kinds of companies ranging from garage startups up to global corporations like T-Mobile and Vodafone.

My core skill is working across functions and across management layers. Advanced design needs to be done in coordination with business needs, development and often other departments. I see product design more as "problem solving", while the wireframing and drawing is just one piece of the process.

My design strength is UX and interaction design. Again, I see "experience" broadly, seeing the product within the context of the whole user journey, the context of other touchpoints or company products, and also with focus on technical details, like speed, loading times, offline behaviour, error recovery, etc. I am a big fan of Apple's Human Interface Guidelines and Google's Material Design Guidelines and big believer in not reinventing the wheel. These guidelines give answers to huge number of app design questions, yet they're surprisingly often not known or ignored.

I do visual UI design too. I like to intertwine UX and UI work as it brings better results. In my experience, UX done in isolation, and then handed over for a separate UI design rarely works great. Visual design often brings ideas and implications that need to be reflected in UX/flow, and vice versa.

I like to work closely with developers. I write code in Swift/SwiftUI, React/React Native, Elixir and plenty of others to clearly understand the technical possibilities, limitations and trade offs, to have a clear communication with developers, and also for my own side projects. Very often I see a sort of rift between designers and developers, and I am always trying to bridge that and build trust between us. It works wonders.

I am a big believer in prototyping, ranging from simple ones in Figma, to complex ones in Framer, or often directly in Swift/SwiftUI, React/React Native, etc. It's great when you can plug into various APIs to develop complex prototypes that can e.g. message each other, perform speech recognition, pull real data, control hardware, etc. This also enables more frequent and more detailed user testing. And it further bridges the gap between design and development.

Here are some more thoughts, so you get a better idea of my way of thinking:

Why projects struggle?

In my experience, most are trying to do too much. I’ve seen this in tiny startups, I’ve seen this in huge corporations. Startups often run out of money without even releasing. Corporations rarely run out of money, but they sometimes burn tons of it on developing something that nobody wants.

Keeping it simple for sure minimizes the risks – simple stuff is easier to complete, easier to maintain, easier to expand, easier to change if it’s all wrong. It’s very easy to make complex things – everybody can do that. It’s very difficult to steer the monster afterwards.

But “simple” itself is not enough. You really gotta know what you’re doing – you really need to think critically and spend time thinking problems through. There’s no way to properly solving a problem without thoroughly understand it. In product design this means thoroughly understanding what are you building, for whom, and why.

Design Thinking

There are numerous approaches and processes that can be very helpful, because they’re battle tested and you don’t need to reinvent the wheel all the time. Famous one is Design Thinking – set of several steps in an iterative process that greatly improve your chances of arriving at good solution. You can look at simple schema of design thinking or you can read a massive body of work on the topic – whichever way you choose, I highly recommend having some sort of backbone process in place and use it at least as a guidance.

But my point is this – if you don’t apply critical thinking at every step of the process, you will fail. Even the greatest process won’t save you from yourself. By critical thinking I mean really understand what you are doing - listen, observe, learn, think carefully, think twice, don’t give in to biases, question everything, question the data you have, question what’s data and what’s assumptions, don’t jump to conclusions, question your own conclusions, play the devil's advocate and try to shred your own conclusions to pieces, take the time to have that internal intellectual discussion and fight with and against yourself. Sleep on it. Rethink the next day, week or month and see if it still holds.

Here are some examples and thoughts on the Design Thinking process:

Understanding & Testing

It’s really easy to screw up in the initial “empathize” phase – understanding the user needs and doing the user research. The human brain is inherently prone to “jumping to conclusions”. It’s designed to jump to conclusions, from the neurological perspective, in fact. And this applies to brains of users you study, as well as to the brains of those conducting the study. Just look at the list of these “cognitive biases” and then have a look at any user research – I guarantee you will see many of them all over the place.

Luckily, human brain, unlike that of most other mammals, is also designed to be able to recognize these cognitive biases, realize they are in play and adjust the thinking accordingly. But it’s “resource hungry". So while almost every human is capable of it, it requires continuous effort and discipline to employ it consistently and repeatedly. Some people say “thinking hurts”. It’s of course much more complex than this. In fact so complex, people have been awarded Nobel prizes for studying related topics or had profound impact (Kahneman & Tversky, Thaler, Chomsky,…) and so fascinating, that popular books have been written (Gladwell, Taleb, Kahneman, Schwartz,…)

Not only it’s easy to misinterpret user research, it’s actually easy to even set it up incorrectly - in short, asking the wrong people the wrong questions. Believing that the people you’re asking represent your target group, asking rather than listening and observing. Placing direct questions and accepting answers at face value, rather than investigate deeper. Again, there’s whole body of work on how to conduct meaningful user research, that outputs meaningful data and how to interpret the data. Many successful companies are relentless in this area. Take Spotify, a music streaming service – no rocket science in its nature – obsesses about user research and data analysis and employs around 100 people in just this department…

Very similarly prone to biases and misinterpretations of user research is actually the user testing. That means the stage when you already “have something” and it’s time to test your hypotheses, see if it works, see if people like it. Same forces are trying to sway you, same indirect and thoughtful, investigative approach is required here. Amazon is creepily obsessed with user testing. Tesco is incredibly thorough in “user testing” the shoppers behavior in their brick & mortar stores – most people can’t even fathom how deep it goes.

Above, I’ve put together steps 1, 2 and 5 of the Design Thinking process. Those where you have the closest contact with real user. I believe most product problems stem from misconception. If you have wrong data and you draw wrong conclusions from it, you won’t fix it in other stages. Hopefully you will fix it in next rounds of the process, but it might be too late till you find out, and the elephant in the room is impossible to steer anymore.

Ideating & Prototyping

These are the areas where I personally produce the most tangible outputs, they are usually my core tasks on projects.

In the beginning I wrote “less is more” and “the devil is in the details”. Those are quotes ascribed to Ludwig Mies van der Rohe, one of the most influential architects in history. He, together with others, brought about a completely new era in architecture, and completely different approach, where “form follows function” (Louis Sullivan) and “ornament is a crime” (Adolf Loos). While "less is more" is good guiding principle, it must go hand in hand with “the devil is in the details”. In other words, it means that a design is simple as a result of thoroughly thinking through every single detail, nothing feels random, everything feels considered and intentional.

These principles echoed in all other creative professions during the 20th century, including product design, and later digital product design. One popular manifesto among product designers, expanding on the above thoughts, is Dieter Rams’ 10 principles of good design. Admiring Dieter Rams is a bit of cliché among designers, but reading into his 10 principles and giving them a deeper thought is an important mental exercise that every designer should practice repeatedly.

On a more practical note, I am a big believer in prototyping. There’s been an incredible progress in prototyping tools capabilities in last couple of years and with tools like Framer, Origami, etc. you can build very realistic prototypes, relatively quickly (=cheaply). It's also relatively easy to prototype in Swift/SwitUI, if you have some development background. This obviously helps tremendously in 1. frequent testing the ideas and getting better product to the users 2. avoid dead ends and save very costly mistakes in native app development.


This sounds like a step for developers, and is often detached from the design process. However, close cooperation between designers and developers is absolutely crucial. Designers nowadays learn how important it is to understand how digital products are made, what are the technical possibilities and restrictions and benefit from introducing principles that are commonplace in software development for decades, and only now are finding way into design work. The whole design systems movement is an example of this trend, resulting from growing capabilities of modern digital products and, at the same time, the effort to keep things simple and manageable.

So long story short, forget about lengthy UX analyses unless critical thinking is applied on top of it, and evidence-based decision-making is in place. I've worked with all kinds of companies all around the world and in the last 14 years and this gave me a lot of experience detecting the above misconceptions – I'm here to put all my experience into your product and help you stay on the right track.

Ultimately, the only reliable way to find out whether people really want your product is to have it out in the wild. Done is better than perfect... See if it works, if not, make changes, ship again. Rinse, repeat.

If you like my approach, I'd be glad to help you – email me.

Josef Richter

Product Designer/Manager


Josef Richter 2023