nomadic 😺

Portland, OR
Joined March 2007
robi 😼🧶 retweeted
A few random notes from claude coding quite a bit last few weeks. Coding workflow. Given the latest lift in LLM coding capability, like many others I rapidly went from about 80% manual+autocomplete coding and 20% agents in November to 80% agent coding and 20% edits+touchups in December. i.e. I really am mostly programming in English now, a bit sheepishly telling the LLM what code to write... in words. It hurts the ego a bit but the power to operate over software in large "code actions" is just too net useful, especially once you adapt to it, configure it, learn to use it, and wrap your head around what it can and cannot do. This is easily the biggest change to my basic coding workflow in ~2 decades of programming and it happened over the course of a few weeks. I'd expect something similar to be happening to well into double digit percent of engineers out there, while the awareness of it in the general population feels well into low single digit percent. IDEs/agent swarms/fallability. Both the "no need for IDE anymore" hype and the "agent swarm" hype is imo too much for right now. The models definitely still make mistakes and if you have any code you actually care about I would watch them like a hawk, in a nice large IDE on the side. The mistakes have changed a lot - they are not simple syntax errors anymore, they are subtle conceptual errors that a slightly sloppy, hasty junior dev might do. The most common category is that the models make wrong assumptions on your behalf and just run along with them without checking. They also don't manage their confusion, they don't seek clarifications, they don't surface inconsistencies, they don't present tradeoffs, they don't push back when they should, and they are still a little too sycophantic. Things get better in plan mode, but there is some need for a lightweight inline plan mode. They also really like to overcomplicate code and APIs, they bloat abstractions, they don't clean up dead code after themselves, etc. They will implement an inefficient, bloated, brittle construction over 1000 lines of code and it's up to you to be like "umm couldn't you just do this instead?" and they will be like "of course!" and immediately cut it down to 100 lines. They still sometimes change/remove comments and code they don't like or don't sufficiently understand as side effects, even if it is orthogonal to the task at hand. All of this happens despite a few simple attempts to fix it via instructions in CLAUDE . md. Despite all these issues, it is still a net huge improvement and it's very difficult to imagine going back to manual coding. TLDR everyone has their developing flow, my current is a small few CC sessions on the left in ghostty windows/tabs and an IDE on the right for viewing the code + manual edits. Tenacity. It's so interesting to watch an agent relentlessly work at something. They never get tired, they never get demoralized, they just keep going and trying things where a person would have given up long ago to fight another day. It's a "feel the AGI" moment to watch it struggle with something for a long time just to come out victorious 30 minutes later. You realize that stamina is a core bottleneck to work and that with LLMs in hand it has been dramatically increased. Speedups. It's not clear how to measure the "speedup" of LLM assistance. Certainly I feel net way faster at what I was going to do, but the main effect is that I do a lot more than I was going to do because 1) I can code up all kinds of things that just wouldn't have been worth coding before and 2) I can approach code that I couldn't work on before because of knowledge/skill issue. So certainly it's speedup, but it's possibly a lot more an expansion. Leverage. LLMs are exceptionally good at looping until they meet specific goals and this is where most of the "feel the AGI" magic is to be found. Don't tell it what to do, give it success criteria and watch it go. Get it to write tests first and then pass them. Put it in the loop with a browser MCP. Write the naive algorithm that is very likely correct first, then ask it to optimize it while preserving correctness. Change your approach from imperative to declarative to get the agents looping longer and gain leverage. Fun. I didn't anticipate that with agents programming feels *more* fun because a lot of the fill in the blanks drudgery is removed and what remains is the creative part. I also feel less blocked/stuck (which is not fun) and I experience a lot more courage because there's almost always a way to work hand in hand with it to make some positive progress. I have seen the opposite sentiment from other people too; LLM coding will split up engineers based on those who primarily liked coding and those who primarily liked building. Atrophy. I've already noticed that I am slowly starting to atrophy my ability to write code manually. Generation (writing code) and discrimination (reading code) are different capabilities in the brain. Largely due to all the little mostly syntactic details involved in programming, you can review code just fine even if you struggle to write it. Slopacolypse. I am bracing for 2026 as the year of the slopacolypse across all of github, substack, arxiv, X/instagram, and generally all digital media. We're also going to see a lot more AI hype productivity theater (is that even possible?), on the side of actual, real improvements. Questions. A few of the questions on my mind: - What happens to the "10X engineer" - the ratio of productivity between the mean and the max engineer? It's quite possible that this grows *a lot*. - Armed with LLMs, do generalists increasingly outperform specialists? LLMs are a lot better at fill in the blanks (the micro) than grand strategy (the macro). - What does LLM coding feel like in the future? Is it like playing StarCraft? Playing Factorio? Playing music? - How much of society is bottlenecked by digital knowledge work? TLDR Where does this leave us? LLM agent capabilities (Claude & Codex especially) have crossed some kind of threshold of coherence around December 2025 and caused a phase shift in software engineering and closely related. The intelligence part suddenly feels quite a bit ahead of all the rest of it - integrations (tools, knowledge), the necessity for new organizational workflows, processes, diffusion more generally. 2026 is going to be a high energy year as the industry metabolizes the new capability.
1,630
5,568
1,457
40,709
7,860,413
robi 😼🧶 retweeted
At the height of One Million Checkboxes's popularity I thought I'd been hacked. A few hours later I was tearing up, extraordinarily proud of some brilliant teens. A thread about my favorite story from running OMCB....
I made a website. it's called "one million checkboxes dot com". it has one million checkboxes on it. checking a box checks it for everyone. that's it. have fun!
318
11,996
1,334
115,552
14,491,505
Finally.
Science students have managed to get DOOM running on human E. coli gut bacteria: rockpapershotgun.com/you-can…
102
3,471
52
35,153
1,456,658
robi 😼🧶 retweeted
As a senior executive, you care a lot about your teams moving fast. So when a team misses its committed launch date, you show great displeasure. You demand more accountability. You make an example out of this team. Other teams see this. They are not stupid. So they learn. And from now on, every single team hits their committed launch dates. You are very happy. I can see it. But my friend, I am so sorry to tell you: You are no longer moving as fast as you were before. Plus, what you ship will no longer be as high quality as before. And over time you start to see this too. You are not stupid. Even though everyone is hitting their launch dates, something has changed. Things seem to be moving slower than before. And you have no idea why. So you call meetings. You set up check-ins. You set up processes. But despite all your efforts, nothing changes. That gnawing feeling that you are no longer moving fast persists. That embarrassment of seeing your teams ship a shoddy experience is all too common now. And you have no idea why. The answer is right there. You are no longer moving fast because of YOUR communication. Instead of creating a culture where teams have intrinsic motivation to move fast — because they are energetic and they care — you started punishing the odd case where a team misses its aggressive target date. And so, by doing that you sent a message to everyone: Don't be very ambitious, because the reward for ambition is punishment. I know that isn't the message you wanted to send. But by doing what you did, it is the only message you will send. 100 times out of 100. What could you have done instead? When that team missed its launch date, you could have sent a positive message instead of punishing the team's leaders. You could have used this opportunity to build & maintain a culture of aggression and ambition. You could have said: "I understand why you missed the launch date. I'd rather that you stay aggressive and sometimes miss the date than being conservative and always hitting the date. I don't want you to stop being aggressive by default. And we want more teams to be like you." At this point, you are either seeing the value of this approach or you are trying to find reasons to reject it. And your reasons are quite flimsy, such as: "But what about launches that have an external commitment?" You are smart. You can figure that one out. But okay, let me spell it out for you: 1. Most launch dates should not be committed externally. So don't commit dates for most launches. 2. A few launches need external commitments (to customers, or regulators, or partners...) 3. For the launches in # 2, sure, commit a conservative launch date that you are almost certain to hit. 4. But even for those, ask the team to devise an aggressive internal target date. It's okay if they slip this date. But it's important to have that aggressive internal target. Why? Because remember Parkinson's Law: Work expands to fill the time allotted for its completion. Have you ever noticed how teams always struggle to hit their launch date, no matter how conservatively they've set them? Yes, that's because of Parkinson's Law. Look, I know it's easy to have dogma around "always hitting dates". Dates are an easy, but incorrect proxy for your teams' velocity, ambition, and energy. Though if you still want to maintain your fascination with hitting all dates, I am not sure I can (or even want to at this point) convince you otherwise. But then I also guarantee that you will spend your entire career managing teams that move slower than they really can and/or ship lower quality products than they really can, and you will spend your entire career setting up check-ins, processes, spreadsheets, and carrots/sticks trying & failing to solve a problem that you created in the first place. Best of luck to you!
57
313
85
2,043
401,017
robi 😼🧶 retweeted
The untold history of web development: 1990: HTML invented 1994: CSS invented to fix HTML 1995: JS invented to fix HTML/CSS 2006: jQuery invented to fix JS 2010: AngularJS invented to fix jQuery 2013: React invented to fix AngularJS 2014: Vue invented to fix React & Angular 2016: Angular 2 invented to fix AngularJS & React 2019: Svelte 3 invented to fix React, Angular, Vue 2019: React hooks invented to fix React 2020: Vue 3 invented to fix React hooks 2020: Solid invented to fix React, Angular, Svelte, Vue 2020: HTMX 1.0 invented to fix React, Angular, Svelte, Vue, Solid 2021: React suspense invented to fix React, again 2023: Svelte Runes invented to fix Svelte 2024: jQuery still used on 75% of websites
408
2,093
303
12,756
1,524,548
robi 😼🧶 retweeted
I’m reviewing a plain JS code base. It contains over 1,000 uses of optional chaining: “?.” Why? Because they don’t feel they can trust the properties will exist, so they defensively add “?.” everywhere. This is unfortunate. It infers we have no idea whether any property will exist, when in actuality, the app requires most properties to operate, and will fail in unexpected ways if a property is missing. The solution? Standardize responses fetched via HTTP. Here's two approaches if the app requires a property that's missing in an HTTP response: 1. Fix it in the HTTP response handler by adding a logical default. 2. Throw an error in the HTTP response handler so the app fails quickly. Zod is helpful for validating HTTP responses.
60
36
12
711
160,994
robi 😼🧶 retweeted
Nothing like the feeling of seeing a feature you proposed and specced land in the world’s biggest browsers, ready to improve the workflows of the millions of web developers worldwide. I’ll never get used to this. 😍
Relative color syntax is landing in Chrome soon! You can make color adjustments dynamically: - Lighten - Darken - Saturate - Desaturate - Chroma boost - Adjust opacity - Invert - Compliment - Contrast - Build color palettes Learn more from @argyleink developer.chrome.com/blog/cs…
9
10
163
24,605
robi 😼🧶 retweeted
15 years in the startup world. 20 failures. 4 successes. Lesson learned? The biggest mistake - I've done it, my friends have too. → Building software that scales from day one. Truth is, most of your code will be trash. No user will ever touch it. Most products you launch? They'll die and fade into oblivion. A project built to scale takes six months, at least. But a quick one? Just weeks. You might ask: "What if it blows up and my code can't take it?" To that I say this: If your project takes off, you've hit the Product-Market Fit (PMF). Got PMF? You could pause for a year. Return later, and users will still be there. So just relax. Rewrite your project properly when you know it's worth it. In reality though, often no one wants what you've made. If you spent weeks on it - good news! You have time to pivot. Seven more times even, until you find PMF. Spent six months or years before launch? Pivoting then is harder. Your team won't easily let go of their hard work. They'll hold onto the code till the ship sinks deep into the unforgiving ocean. Execution speed is everything!
22
35
7
422
84,550
robi 😼🧶 retweeted
13
36
2
214
12,988
The way that Jensen Huang runs Nvidia is wild: 40 direct reports, no 1:1s - Believes that the flattest org is the most empowering one, and that starts with the top layer - Does not conduct 1:1s - everything happens in a group setting - Does not give career advice - "None of my management team is coming to me for career advice - they already made it, they're doing great" No status reports, instead he "stochastically samples the system" - Doesn't use status updates because he believes they are too refined by the time they get to him. They are not ground truth anymore. - Instead, anyone in the company can email him their "top five things" with whatever is top of mind, and he will read it - Estimates he reads 100 of these everyone morning Everyone has all the context, all the time - No meetings with just VPs or just Directors - anyone can join and contribute - "If you have a strategic direction, why tell just one person?" - "If there is something I don't like, I just say it publicly" - "I do a lot of reasoning out loud" No formal planning cycles - No 5 year plan, no 1 year plan - Always re-evaluating based on changing business and market conditions (helpful when AI is developing at the pace that it is) This org is optimized for (1) attracting amazing people, (2) keeping the team as small as it can be, and (3) allowing information to travel as quickly as possible
475
2,623
527
25,243
7,992,769
I know that there are reasons to use lists and cards, but what if we can explore a catalogue like it's in the open world?
33
16
5
208
71,466
robi 😼🧶 retweeted
benefit of hiring junior engs is they can be molded into what works well for your team benefit of hiring experienced engs is they can run on their own problem with mid-level is they don't have enough experience to be independent but enough to have opinions this is you btw
66
45
23
984
99,953
robi 😼🧶 retweeted
some people who make programming easier (who am I missing?)
178
849
147
4,345
666,517
robi 😼🧶 retweeted
#tinyCSStip How varying the clip-path inset from the right element edge can help with a left to right reveal effect ✨ when this inset is 100%, then all gets cut off ✨ when this inset is 0%, then nothing gets cut off Interactive illustration + 🆒 pure CSS on scroll use case 👇
1
22
86
16,597
robi 😼🧶 retweeted
Just got accused of shoplifting honey lol. They took me back to print out the receipt from the self checkout till Like, I bought Salmon, but it's honey I'll now steal. At least rate me small na What a way to end a very good day... – at London, England
15
4
2
32
12,544
robi 😼🧶 retweeted
did I really need to spend a night making this prototype in SwiftUI? probably not. did I enjoy it? every single second.
should the dark mode on iOS also alter the icons?
77
103
15
1,966
370,320
robi 😼🧶 retweeted
should the dark mode on iOS also alter the icons?
229
181
58
5,608
927,432
robi 😼🧶 retweeted
Experimental #CSS carousel ✅ subgrid ✅ scroll driven animations (SDA) ✅ oklch() ✅ @property ✅ @layer *Lots of code comments* to help break down the effects 🤓 ✅ SDA changes hue/theme ✅ SDA toggles next/prev ✅ SDA syncs dots codepen.io/argyleink/pen/vYQ…
12
124
4
770
84,510
robi 😼🧶 retweeted
A better setTimeout ✅
30
87
4
1,260
162,855
robi 😼🧶 retweeted
A common #usability flaw of radio buttons is that once you’ve clicked on one, you can only select a different one in the group, you cannot clear your selection. A nice emerging convention for this is that clicking on a selected radio button unselects it.
22
28
3
224
37,384