David Luhr is a designer, developer, and independent consultant with a passion for accessibility and creating a responsible web. Learn more about his work.
A 10x engineer isn't what you think If 10x engineers exist, they don't work 10x faster or create 10x the output. Speed and output without quality are waste. A 10x engineer creates 10x the value with the same resources. They question requirements, cut scope and hone in on what's essential, continuously improve the process, and iterate on their work. The essential 10% Lean manufacturing shows that…
10 things I've learned from 10 years of studying lean manufacturing Lateral thinking has proven to be one of the most effective habits I've developed in my career. Over the last 10 years, learning about lean manufacturing has benefited my work in software more than any other topic. 10 years ago, I stumbled across the topic of lean manufacturing. I had recently shifted my career into web design and…
A deep dive on the UX of number inputs One of my favorite things about design engineering is how deep the UX considerations can be. I love thinking through and improving every little detail of even an isolated element. A surprisingly deep topic is the UX of a number input. You could simply use a default <input type="number"> and be done, but there are many surrounding usability and accessibility…
Tradeoffs with quality, scope, and deadlines Every project involves tradeoffs with quality, scope, and deadlines. Tradeoffs happen whether you decide or want them to. Strategy is deciding which tradeoffs to make. The default mode for most teams is a lack of strategy with tradeoffs happening to them. So, we have these 3 interdependent variables of quality, scope, and deadlines. Teams typically…
Analog productivity Lately I've been shifting my day-to-day productivity process to more physical and analog tools. I still love a digital second brain for personal knowledge management , and it's still the best digital workplace I've experienced. But, GitJournal , the app I used to sync and edit my second brain on my phone, has had some Git diffing issues for a while now. As a result, I haven't…
Is the best digital workplace just a bunch of Markdown files? For over a year, I've been working on a major project with a close collaborator. This project has all the complexities of a full product business, meaning we need to define and prioritize what we work on, document our standards, and capture our day-to-day thinking as we work. There are endless tools that try to create the perfect…
The next step in my career: joining Buffer as Senior Design Engineer Over 5 years ago, I created Build UX to provide free, high-quality educational content on building accessible and polished user experiences. And nearly 4 years ago, I started consulting full-time in the summer of 2020. Over these past few years, I've loved the flexibility, interesting problems, and scaled impact of being fully…
The origins of design engineering My career for the past 10 years has always combined design and development. I've either been responsible for both design and coding in the same role, or acted as the bridging role between designers and engineers. For me, code is the most effective way to realize designs. We've never settled on how to classify this work, as evidenced by all the evolving titles over…
Test-driven development as prompt engineering As AI code generator tools gain adoption, Test-Driven Development (TDD) becomes even more essential and a key differentiator for developers. As Kent Beck said: " 90% of my skills just dropped to $0. The leverage for the remaining 10% went up 1000x ." I don't think we're anywhere close to 90% currently, but it's likely we'll get there. TDD is going to…
Build-free type annotations with JSDoc and TypeScript I've used TypeScript in various client projects, but sometimes got bogged down with migrating to .ts files and the tooling. After Svelte switched to using JSDoc with TypeScript in the spring of last year, it caught my attention and motivated me to try it out in my own projects. My solo projects are entirely in vanilla JS. I like the simplicity,…
Vision Pro, rabbit r1, LAMs, and accessibility Today Apple released a video guided tour of the Vision Pro which gave a larger preview of the spatial user interfaces and how people will interact with them. A little over a week ago, rabbit announced r1 , a "personalized operating system" and companion device that primarily uses voice controls. Both of these devices are interesting from an…
2023 year in review 2023 was a year of challenges, deep learning, experimentation, patience, and self-reliance. Career My work this year had a very different balance compared to previous years. Due to the economy, I invested about 75% of my time on personal projects and 25% on client work. Consulting This year was a rough one for consulting due to the collapse of Silicon Valley Bank in March that…
New article: Test-driven HTML and accessibility I wrote a new article for the 2023 HTMHell Advent Calendar called Test-driven HTML and accessibility . I've been wanting to share my new approach to unit testing JavaScript and I'm really happy with how this article turned out. For most of this year, I've been exploring the full potential of Test-Driven Development (TDD) in my work and found a tool…
Build UX is 5 years old Andy Bell posted that his company is 5 today and that reminded me that Build UX, my YouTube channel and now consulting company, is also 5 years old. I rarely take time to reflect on my past work, so this milestone snuck up on me. How it started 5 years ago, I was mentoring a couple people who wanted to get into frontend development. I strongly believe in applied learning,…
All about accessible headings Watch the companion video to this post on YouTube What is a heading? A heading is text that describes a section of content. In HTML, we have 6 heading elements ( <h1> , <h2> , <h3> , <h4> , <h5> , <h6> ) to create different heading levels. This allows us to create a hierarchical outline to structure our content. Heading, header, title It's important to always refer to…
All the ways to render a WebC component with 11ty Watch the companion video to this post on YouTube One of my favorite features of WebC is the variety of rendering options it provides. This allows full control to use WebC for HTML templating, custom elements, or web components (with or without the shadow DOM). All of these rendering options offer some major benefits: Explicit control over the…
Prompt engineering is shaping Prompt engineering is an emerging practice of creating the most effective prompts to get valuable responses from AI tools like ChatGPT or GitHub Copilot. Most people will ask ChatGPT a simple, single question and may be underwhelmed by the quality of the response. But, people are finding that there is wide variability in the depth and quality of responses based on the…
My custom second brain setup, part 4: Limitations as strengths Posts in this series: Why go custom? How it works Minimalist productivity Limitations as strengths (this post) The main limitations (and strengths) of my second brain setup come from Markdown and Git: There's no great way to handle images, which can be useful for design inspiration (user interfaces, home interior design, etc.). Luckily…
My custom second brain setup, part 3: Minimalist productivity Posts in this series: Why go custom? How it works Minimalist productivity (this post) Limitations as strengths The real strength of a second brain comes down to a simple folder structure that has done more for my productivity than any app or user interface I've used. The PARA method structures all the information in a second brain in…
My custom second brain setup, part 2: How it works Posts in this series: Why go custom? How it works (this post) Minimalist productivity Limitations as strengths To explain how my custom second brain setup works, I'm going to break down the tools I use for each of the steps in the CODE (Capture, Organize, Distill, Express) workflow. Brace yourself: the core of my setup is so simple and minimal…
My custom second brain setup, part 1: Why go custom? Posts in this series: Why go custom? (this post) How it works Minimalist productivity Limitations as strengths Building a second brain last year had the biggest impact on my productivity, learning, and organization in my entire career. It led to many of the successes I covered in my 2022 year in review and provided incredible value in my work,…
My new course: Accessibility-First Design My new course, Accessibility-First Design , launched recently on LinkedIn Learning! Accessibility doesn't compromise design. Instead, it's at the core of successful content and visual design. This concise course provides tons of tactical skills across content design, visual design, and accessibility testing to make more successful digital products. While…
Betting on WebC WebC is a new tool by Eleventy that is one of the most exciting developments in a long time. WebC as a standalone tool generates markup for custom elements and Web Components, which unlocks server-rendering for Web Components and brings many quality-of-life features while following web standards. As someone who most enjoys working in good old HTML, CSS, and vanilla JS, this is a…
2022 year in review 2022 was the best year of my career so far, and one of the best in my personal life. Career I moved away from full-time employment in the summer of 2020 to be fully independent, and I'm enjoying this phase of my career more than ever. 2022 was a year of focus, and I really overcame lingering burnout that had crept into my life from the previous couple years. Consulting…
Freelancing, consulting, and coaching I recently took on a new client that I've been coaching in design, and it got me thinking about how the terminology of freelancing, consulting, and coaching really does define the engagement and working relationship. Freelance work is often relegated to production with a set scope and deadline. Whether it's true, being a freelancer seems to have the…