This concept is modeled on Malte Ubl's Handbook which is in turn modelled after Urs Hölzle's Personal User Manual, a document written by Urs himself where he explains to others how to best work with & interact with him. Unfortunately the original document is not public.
Values & Principles
- No Ego: Communicate in a kind, direct, and transparent way. Clear and honest communication is the backbone of interactions. Prioritize kindness in our words to one another, even when being direct, and maintain transparency in communications to ensure everyone is on the same page. This approach helps build strong relationships and achieve our goals more effectively. tl;dr: Don't be an asshole.
- Iteration > Done (v0 > v1): Moving from version 0 to version 1 is more important than aiming for perfection right away. Prioritize progress over perfection, understanding that each iteration brings us closer to a better solution. By quickly delivering and refining, we learn, adapt, and ultimately create something more valuable.
- Cut scope – If you don’t cut scope, you don’t ship: The secret lies in cutting the right scope that doesn’t pull the product out of being in Actually Viable territory. Bleeding into the above, companies in my experience tend not to know what is just enough to ship and end up spending 3-4 months building a V1 where they try and build it all. Constantly review the scope of a project and work toward a v0, not a v1.
- Always Consider UX and DX: User Experience (UX) and Developer Experience (DX) are central to everything we build as (web) engineers. Whether it's for end-users or developers, the usability and ease of interaction with our products are paramount. Prioritizing UX and DX ensures our solutions are not only effective but also enjoyable to use. It all starts with the user.
- Optimize for Speed: Speed matters in both performance and execution. We focus on delivering results quickly and efficiently while maintaining quality. By optimizing processes and reducing friction, we can move fast without sacrificing thoughtful execution.
- Delight: Always aim to delight your users. These moments can transform ordinary products into extraordinary ones. Focus on fluidity but do not add motion for the sake of it. Motion should be fast, fluid, natural and serve a purpose. It's easy to start adding animations everywhere. The user then becomes overwhelmed and animations lose their impact. We need to pace them through the experience and add them in places where they enrich the information on the page.
- Trust and Accountability: I start by trusting that everyone knows their role and can perform it to the best of their ability. This trust is crucial, but it comes with high expectations. If that trust is broken, it can be hard to regain. Accountability is key, and I expect consistent effort and excellence from everyone.
- The Last Sieve: I see myself as the “last sieve” in the company—when no one else is handling a task, I step in to ensure it gets done. This approach helps prevent important issues from slipping through the cracks, but it can also be overwhelming and disrupt my flow state. Over time, this can lead to broken trust and can feel like I’m doing others’ jobs for them. While I take this responsibility seriously because I care about the company’s success, it’s crucial to maintain balance and ensure that being the last sieve is not abused or becomes a constant theme. I aim to handle this role thoughtfully, without letting it overshadow the importance of teamwork and mutual responsibility.
- Work-Life Balance: I believe in working in focused bursts and value downtime to recharge. I enjoy winding down by watching football, playing on my PS5 or Series X, going to the gym, and browsing X & TikTok (saving recipes to cook). I’m a strong advocate for holidays and believe the best companies prioritize employee well-being. Constant rushing and overtime indicate a broken system—true productivity comes from a balanced life where personal time is respected.
- Pay for Quality: I believe in paying for quality, whether it’s in software, tools, or premium courses. Investing in high-quality work and resources often pays off quickly, resulting in better performance and fewer issues. While I understand that not everyone can afford premium options, my experience shows that such investments frequently offer substantial returns, enhancing both the product and the overall development process.
- I don’t want to be (thoughtlessly) followed or agreed with. I do want to be heard, and have trouble fully listening until I feel like my perspective has also been actively listened to.
- “The top N developers from a diverse hiring pool are better than the top N developers from a bro pool. It’s Math™️” (read that again 😄).
Approach to Remote Work
- Leverage time zones: Time zones can be a challenge, but they offer a strategic advantage: allowing work to continue while you sleep. To make this effective, ensure that you hand off tasks with comprehensive context so your colleagues can proceed seamlessly for the next 12+ hours without additional input. It’s challenging but achievable, and it makes the most of overlapping work hours across different time zones.
- Ensure No One Is Blocked and Be Mindful of Time Zones: Be considerate of your colleagues' time zones and working hours. Avoid sending requests at odd hours, as it can be disruptive and unfair—your teammates might be asleep or attending to personal responsibilities like taking kids to school. Ensure that your work doesn’t block others by providing all necessary context and information. This respect helps maintain a smooth workflow and supports a collaborative environment.
- Be Mindful and Avoid Spam: Being mindful of your colleagues' schedules goes hand in hand with avoiding spam. Clear and considerate communication is key—overloading someone with messages or repetitive requests can be disruptive. Instead, focus on sending well-thought-out updates and inquiries to respect everyone’s time and ensure effective collaboration.