David Luhr

1.1K posts

David Luhr

David Luhr

@david_luhr

Senior design engineer @buffer working on accessible design and code. Creator of https://t.co/espySIvUPZ

Bend, OR Katılım Mayıs 2017
97 Takip Edilen2.2K Takipçiler
David Luhr
David Luhr@david_luhr·
Stoked how these data visualizations came together last week at @Buffer. Lots of data science, content, design, and design engineering went into these social media engagement insights. Check out the full page: buffer.com/insights/state…
English
0
0
2
187
David Luhr
David Luhr@david_luhr·
Had a breakthrough with getting decent CSS from agents. Let's call it HTML-Driven Development: - Craft unstyled HTML to control the structure, semantics, accessibility, and even class names - Then, ask the agent to style it, using existing styles and variables CSS as reference
English
0
0
1
189
David Luhr
David Luhr@david_luhr·
Much of the value of coding agents comes from interpreting natural language requests and deciding which traditional software tools to use in response. They are increasingly useful as a flexible adapter/coordinating layer for existing, efficient, predictable software.
English
0
0
0
126
David Luhr
David Luhr@david_luhr·
We're automating the wrong things. Sure, it can be helpful to get lots of ideas and discover something surprising. But, there's a risk in starting with high fidelity. It constrains our thinking. It implicitly embeds hundreds of tradeoffs without our involvement.
English
0
0
0
93
David Luhr
David Luhr@david_luhr·
The challenges of design and engineering aren't creating high fidelity designs or writing the code. It's finding the value, making tradeoffs along the way, and knowing what still needs polish.
English
1
0
0
96
David Luhr
David Luhr@david_luhr·
There's a disconnect with generating high fidelity designs with AI. The bottleneck of design and engineering isn't ideas, it's gradually defining the right idea.
English
1
0
0
133
David Luhr
David Luhr@david_luhr·
Today I needed to scale an element I couldn't directly style. `transform: scale(0.5)` doesn't affect layout, which leaves empty space around the element. Then, I learned about `zoom: 0.5`, which does exactly what I needed: scale an element and affect layout.
David Luhr tweet media
English
0
0
1
202
David Luhr
David Luhr@david_luhr·
My team @buffer is hiring a Senior Engineer – Growth Marketing. We'll work closely together on projects like referral programs, internationalization, and tracking/experimentation systems. - Fully remote - 4-day work week - $156.5K–$202.3K Apply: buffer.com/journey/a6615d…
David Luhr tweet media
English
0
0
5
871
David Luhr
David Luhr@david_luhr·
Dark mode isn't just to look cool. It's an important accessibility feature that makes the experience better for everyone. Light mode causes eye strain and discomfort for me across a day. Dark mode solves this. Stoked dark mode is now available in @buffer!
David Luhr tweet media
English
0
0
2
251
David Luhr
David Luhr@david_luhr·
Eventually, I arrive at the lowest level with ridiculously simple utility functions. I get those low-level tests passing, then climb back up (inside-out). I go up a level, use my new functions, get tests passing, and keep climbing until my top-level functionality is done (4/4)
English
0
0
0
140
David Luhr
David Luhr@david_luhr·
Instead, I start with top-level functionality and write tests for what the final expected output/behavior is (outside-in). These tests will fail. To get these tests to pass, I descend down, writing failing tests for simpler and simpler pieces of functionality. (3/4)
English
1
0
0
140
David Luhr
David Luhr@david_luhr·
With testing code, there are competing approaches of outside-in vs. inside-out. Instead, I work outside-in *then* inside-out: (1/4)
English
1
0
1
172
David Luhr
David Luhr@david_luhr·
You're too busy to fix your problems because you're too busy to fix your problems. The reason why you can't slow down to make improvements is because you never slow down to make improvements.
English
0
0
1
321
David Luhr
David Luhr@david_luhr·
@rjs This sets teams apart in general: the restraint to not jump to solutions and instead deeply understand the problem. Sometimes, after talking it through, there's no problem at all.
English
0
0
2
149
Ryan Singer
Ryan Singer@rjs·
The #1 thing that distinguishes an interaction with a very senior-level person (designer, developer) is the ability to have a conversation about the problems. Not just what to do, but what needs to be solved.
English
2
5
51
4.9K
David Luhr
David Luhr@david_luhr·
Playing around with animation and content ideas for an upcoming Buffer feature. If people have animation enabled (accessibility-first design), comments spawn in random positions. Might include a button to clear the comments and a scroll-driven animation that ties into the page.
English
0
0
0
170
David Luhr
David Luhr@david_luhr·
Staycations are underrated. I took this past week off and spent my time wherever my interests took me. Without any worry of productivity, I still: - Practiced piano - Read - Organized my digital life - Rearranged garage workshop for upcoming projects - Worked on creative videos
English
0
0
3
344
David Luhr
David Luhr@david_luhr·
If 10x engineers exist, they pair on their work. Engineers who pair grow rapidly from cross-mentorship, keep each other unblocked, create focus and motivation, and offer continuous code review. This is more efficient, higher quality, and yes, faster than working solo.
English
0
0
0
322
David Luhr
David Luhr@david_luhr·
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.
English
1
0
0
207