Profile avatar
davidluhr.bsky.social
Design engineer working on accessible design and code at Buffer. Creator of https://youtube.com/@buildux
64 posts 166 followers 41 following
Regular Contributor
Active Commenter

šŸ”“ We're live! https://www.youtube.com/watch?v=1Y5gAtf0lEg I'm live reading Shape Up and sharing my thoughts and advice on the product development process. Join and ask any questions you have.

We're kicking off an experiment with Shape Up in the Buffer marketing team. I'll be livestreaming this Friday, January 24 at 2 PM PST to read Shape Up live. As I read the book, I'll be sharing my notes, reflections, and experiences.

There's a vast difference between questioning how things are done and being negative. Wondering if there's a better way is one of the most positive activities you can do.

Meetings are a symptom of bad process. They are a form of batch processing, a result of batching work. They are an outlet for a lack of shaping and pairing.

One of the most effective things you can do as an individual and team is reduce work-in-progress. With one-piece flow, working on the same thing together, you will dramatically reduce overhead, increase quality, and increase velocity.

Everything is a process. Every process can be improved. And the best process is no process.

Good enough is risky. Just because something is producing value doesn't mean it's worth doing. What are you missing out on by not questioning if there's a better way?

I've been shifting from digital to analog productivity with the Ugmonk Analog system and some hourglasses for the Pomodoro Technique. This setup has felt more engaging, motivating, and satisfying. I wrote a quick post about my current setup:

I've recently learned and started to use Daily 3S thanks to my coworker @luhr.co It's been a improving for my work life. Let me break it down 🧵 #ProductivityHacks

Ever wondered why `position: sticky;` isn't working? Look for `overflow: hidden;` set on an ancestor element. The fix: use `overflow: clip;` instead, which doesn't create a new block formatting context. The things you learn after an hour of maddening troubleshooting.

The results from Buffer's no meetings experiment: It was an overall success! This will be our new default approach. We generally felt energized, productive, and decisive. We are questioning assumptions more and liked the calm, reflective, transparent communication.

This week at Buffer we're running an experiment: no meetings. Instead of meetings, we're leaning into long-form asynchronous communication, coupled with pairing sessions as needed.

šŸ”“ We're live! https://www.youtube.com/live/UbGMG45v7QE I'm live-building a redesigned page for Buffer's Open Salaries. Join to watch and ask any questions you have about large-scale redesigns, design engineering, and accessibility.

We're redesigning the @buffer.com website in the open. šŸ—“ļø Tomorrow (Wednesday) I'll be livestreaming at 9 AM PST (UTC -8) to show my design engineering process for this large-scale redesign. I'll be redesigning our Open Salaries page and answering your questions. www.youtube.com/@buildux

We just launched Bluesky support with @buffer.com and the landing page was a great demo of how to use various units for overlapping images. Let's start with the hero image. We want it to extend past the bottom of the hero section, without impacting the layout of the next section:

I routinely come back to this video from Dan Mall and Brad Frost on the designer and developer workflow: www.youtube.com/watch?v=tnkr... Almost 6 years later and it's still ahead of most teams. Tools won't solve collaboration pains. Pairing and iterating in the final medium will.

Teams that feel they're too busy to fix their problems are too busy because they don't fix their problems. Learning to stop and fix frees up your future time and resources. If you feel like you can't stop to fix things, that's the best indication that you need to.

James Shore's Testing Without Mocks course is now free for everyone: www.jamesshore.com/v2/courses/t... I took this course as a paid workshop early last year and it unlocked entire areas of testing that were previously a pain for me and my clients. Highly recommend!

Ever export an SVG from Figma and the width/height is 1px larger than expected? Check the frame's X and Y position. If they aren't set to whole pixel values, Figma will increase the SVG's viewbox by a pixel. This has been a mystery to me until now!

šŸŽ‰ I’m thrilled to announce I’m starting a new position as Senior Design Engineer at Buffer: luhr.co/blog/2024/04... I'll be overseeing technical strategy for the Buffer.com marketing site and blog while shipping high quality, accessible work.

This refactoring challenge series by Ray Myers of Craft vs. Cruft demonstrates that even code that wasn't written to be testable can be tested, and adding tests is the only way to dependably understand and improve code. The obfuscated C code videos are my favorite: youtube.com/playlist?lis...

"eight hours of pairing a day, and every line of code tested, and nearly every commit rebased and then pushed straight to main. With about 400 programmers working on what was effectively one codebase." This collection by Nat Bennett is a great read: simplermachines.gumroad.com/l/ngiqff?lay...

My career for the past decade has combined design and engineering, but only recently have I noticed an increased interest in a dedicated role called "Design Engineer". In my latest post, I trace the origins of this role through the people and resources that popularized it: luhr.co/blog/2024/02...

šŸ“ƒ New post: Test-driven development as prompt engineering: luhr.co/blog/2024/02... As AI code generator tools gain adoption, TDD will become a key differentiator.

With AI code generation tools, Test-Driven Development (TDD) becomes even more essential. Writing tests first: - Captures your intent - Is more effective prompting than code comments - Ensures AI generated code actually does what you need Without tests, each line of generated code introduces risk.

šŸ“ƒ New post on how I use JSDoc and TypeScript together for type annotations with no build step: luhr.co/blog/2024/01... This setup provides all the value of types and makes code more resilient without any added overhead.

Today Apple provided a deeper look at Vision Pro. About a week ago, rabbit announced the r1 companion device. I organized my thoughts around the accessibility concerns and opportunities with these new devices and how the handle user interaction: luhr.co/blog/2024/01...

My HTMHell Advent Calendar post is live! Test-Driven HTML and Accessibility: www.htmhell.dev/adventcalend... I cover how to follow a test-driven development (TDD) workflow to ensure proper semantics and accessibility, all while testing the real DOM across all major browsers.

Just realized that Build UX, my YouTube channel and consulting company, is 5 years old. Thought I'd reflect on these past 5 years of creating free educational content on accessible design and development: luhr.co/blog/2023/11... Thanks @bell.bz for reminding me with your post today!