Latest Posts (20 found)
Unsung Today

Crammed and dangerous

This is what happens when I search through photos on my iPhone: I’ll repeat and emphasize the last frame below, because it’s a resting state that doesn’t offer much rest. I am happy with the train results and I just want to look at them in peace – but now there’s a pop-up in the way. What would you do to get rid of it? = 3x)" srcset="https://unsung.aresluna.org/_media/crammed-and-dangerous/2-framed.1600w.avif" type="image/avif"> Trying to swipe it away doesn’t work: Tapping on the available largest surface – the photos – makes the photo you tap on take over the entire screen, which doesn’t help: Tapping on the input field replaces it with another restless pop-up: Tapping on X clears the search, so that’s not good: Tapping on the other X just leaves the search altogether: Tapping on the keyboard continues typing and adds to “train,” in effect going elsewhere, too: Noticing that one of the entries in the pop-up is “train” and tapping on it works – sort of – but it replaces the input field with a token, and slightly adjusts search results, which are both worrisome in their own way: Okay, there are three answers. None of them feels great. One is to drag the photo chute down and then up: While I sometimes can enjoy the kind of interface action that is effectively “unplug it and plug it back again,” here it doesn’t feel natural, and the space to perform is limited, too. And speaking of limited space… the other solution is to tap on one of the few small areas that are actually truly inactive – the Search header, or the Top Results: Lastly, I believe the most appropriate answer is pressing the blue loupe key (effectively the equivalent of Enter): Why doesn’t this path feel intuitive? Because the results already appear as I type. The rest of the flow itself suggests Enter isn’t necessary – and it’s not as natural for me to think of Enter as solely a “keyboard hider.” Despite both human factors and computers starting as military projects, I don’t love military metaphors – yet, this feels like a good example of a minefield interface. This is because arriving at this kind of a claustrophobic screen feels dangerous; any misstep can derail the whole experience, sending you to another place you have to exit as well. I wish I could tell you what’s my yardstick to separate a regular UI where some tap targets just do expected things, and one where there so many they all become mines. All of these above, in isolation, make sense, but they’re adding to what feels like a pretty unpleasant, anxiety-inducing interface. I think this example highlights the value of intentionally leaving some areas of the interface that feel “safe”… …although you could also say that in this case, that would be treating symptoms. I think the real problem is that in response to my search, the UI did two different things – one was the photos, the other the suggestion pop-up – and overlapped the results of those things. The pop-up feels strangely “ growth hack-y ” to me, as if the UI was optimized for constant forward momentum, nuding me to tap on new searches over and over until the batteries run out. It made me feel there was something wrong with my search for “train,” when it was a perfectly valid, innocuous search. This is a wider pattern I don’t love and/or understand. Here is an example of the same thing used in Notes on a Mac as well – and it’s even worse, because the suggestions are bad, and because the pop-up always covers the most important result: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/crammed-and-dangerous/13.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/crammed-and-dangerous/13.1600w.avif" type="image/avif"> At least here, I am at still equipped with my treasured Esc key, which works reliably in a lot of situations like this – a jetpack to jump over the minefield – but that’s a small consolation prize. (Enter works here too, but see above. Also, the pop-up reappears aggressively even on arrow key presses!) An interface that feels like a minefield isn’t great. An interface where you have to over and over again keep escaping something to return to a resting state isn’t great, either.

0 views

Working with designers

I love working with designers, in part because (unlike managers and product managers) they’re culturally different from engineers. However, having more than one designer on a team is asking for trouble, and I have complicated negative thoughts about design systems. Designers demonstrate their value immediately. While working on some feature, I’ll typically put together some placeholder UI that I’m reasonably happy with. I then show it to a designer, who strokes their chin and says “hmm, I have some ideas here”. They then go away and produce a mockup UI that is not just clearly better, but better in ways I could not have imagined. There aren’t any other roles at a tech company where you can see the value at a glance. Designers are an unusual role in other ways, too. Engineering managers, product managers, and engineers all come from broadly the same stock: technical, detail-oriented planners. We are people of the spreadsheet. In fact, many managers and product managers were once engineers: it’s a natural transition. Not so for designers. I’m sure they exist, but I’ve never met any designers who started out as engineers. Because of this, designers are culturally distant from engineers. In my experience, this is a big positive. I’ve complained before that product managers who were once engineers tend to be worse, not better. Once you start trying to make your own secret technical assessments instead of finding a way to trust your engineering team, you’re doomed: you won’t be able to do it well enough, and the fact that you’re trying will make it impossible to build the trust you need. Designers don’t have this problem at all 1 . So far I have made designers sound like the elves of Middle-earth: mysterious creatures who glide around tech companies dispensing magic. In fact, they are more like the Slavic household spirits, or Domovoy . If you have one Domovoy in a household, it will protect your home against misfortune. If you ever have more than one, they will fight bitterly : “making all sorts of noises, injuring the cattle, turning the master out of his bed, choking people while asleep, etc”. Likewise, a designer can turn your scrappy product into something really beautiful — but you had better have only one designer, otherwise you’re asking for trouble. The worst experience I have ever had working with designers was on a product where we had three of them: initially just one, who then rotated off the project and was replaced by two very senior designers. As far as I could tell, the first design was pretty good. Unfortunately, the new designers didn’t feel the same way. The very first thing they did was completely redesign the product, which meant I had to rewrite most of the frontend styles. Then they began disagreeing with each other. I think we went back on each page of the product three or four times: one designer would tell me to change X, then the other would change it back, and so on. In the meantime, I was desperately trying to get the product to work. I knew what I was supposed to do in theory: get everyone in a room talking to each other and hash out a decision. Maybe this would have worked on a different product where the requirements were more stable, but it didn’t work here. The differences in taste, while imperceptible to me, were just too deep. It seemed like everything Designer A produced was slightly wrong in Designer B’s eyes, and vice versa. In the end we just powered through by implementing 2 each new iteration until about a week before the deadline, at which point I called in two layers of management as air cover 3 to freeze the design in its current state. These were really good designers! They were far, far better than me at design, and were very nice people who I’d happily work with again. I just think it’s inherently bad to work with more than one designer at a time. I’ve had this experience over and over on different teams and companies. I can only guess 4 as to why, but here are two theories: One way companies try to scale design work is to produce a “design system”: a library of frontend components that are all design-compliant, that can in theory be assembled like Legos into a page that looks consistent with the rest of the company. I hate design systems. However, like democracy , they’re better than any other way I’ve seen to enforce a consistent design. The first problem with design systems is one of incentives. The engineering team that owns the design system 5 is incentivized to produce elegant components that will look beautiful all the time. The engineering teams that use the design system are incentivized to produce systems that meet inelegant or ugly customer requirements. So you have this permanent battle where a product team demands something — say, the ability to embed arbitrary images into the dropdown component — and the design team pushes back because they’re worried it will look bad. The dynamic I described above (where designers tend to disagree with each other) makes this much worse. Often an embedded designer on the engineering team will push for some design that is slightly different from the design system, which (a) makes the design system owners very unhappy, and (b) makes the engineers unhappy, because the component must be tortured into a very slightly different appearance. The result of this problem is that engineering teams are perpetually hacking their way around the design system: reimplementing their own versions of components, reaching in with CSS to tweak the styles of existing components (which then get broken in each component update), and so on. This leads into the second problem: compatibility. Design systems are typically written in the latest and greatest frontend framework, but the actual frontend code at a company is always a hodge-podge of various technologies and versions that are too expensive and risky to update. For instance, you often have a design system in React that is being used to plan changes to a frontend in pure HTML and CSS 6 . I have spent years of my life wrestling with this exact problem: either you spend ages trying to reimplement some percentage of the React component, or you try and use the outdated pure-CSS design system (if one exists), or you give up and just embed a React component directly into the HTML. All of these are very unpleasant for different reasons. One common situation is that the version of the design system available to you (i.e. the pure-CSS version, or the React 16 version) looks subtly different from the design system available to your designer , and so when you plug your Legos together you don’t quite get what they were visualizing. This leads to a very tedious conversation where you have to explain that no, it’s not actually trivial to bump the entire app to the latest React version 7 . When you’re actually implementing the app, you have to constantly run a kind of translation in your head: “okay, the designer wants dropdown feature A, but the dropdowns in my version of the design system only offer features B and C, so I guess C is close enough…” I still think design systems are better than the alternatives. When you’re up-to-date and don’t have a designer who wants anything weird, they work great . Ensuring that a thousand engineers across a giant application all produce consistent UI is a very hard problem and I don’t know any other way to solve it. I just wish that the designers I worked with were more considerate of the fact that design systems often make the immediate work of engineering more difficult. The classic three-legged stool of product development is made up of engineering, product management, and design. Design is definitely the shorter leg. Almost every team I’ve worked on has had some kind of embedded product management, but only about half the teams I’ve worked on 8 have had some access to design (and even fewer have had an embedded designer on the team). Why is that? Partly it’s because there are products that don’t require design, or at least not in the visual sense that designers provide. Some of the teams I’ve worked on have owned systems with no real visual component: APIs, billing and reconciliation, markdown or pdf rendering 9 . I have seen companies put designers on these teams anyway, out of some sense that “design thinking” can improve the structure of an API. This is nonsense. Good API design is very important , but it’s a technical job, not an aesthetic one. Designers on these teams typically just sit around or tunnel-vision on some unimportant piece of UI that the team does own (e.g. some internal admin component that no customer will ever see). It’s also because badly designed products still work. I don’t think Netlify Analytics is well-designed: it’s awkward to use and does not show me information it definitely has. But I still pay for it, because I want server-side analytics for my blog. I don’t think many people have complimented the aesthetics of the Microsoft Azure admin portal, but Azure broke $100B of revenue this year. There are very few software products where design is truly business-critical. As an engineer, I selfishly wish I could work with a designer all the time. I want to work on beautiful products, and I can’t make them beautiful myself. This is partly structural. Because they’re not responsible for delivery, they just aren’t under the same pressure as product managers and managers. In fairness, it helped that both designers were technical enough to write their own frontend PRs, though these usually needed some polishing and deploying. This didn’t really work. While there were no major redesigns after that point, we were shipping design changes until the day before launch. Incidentally, if you’re a designer reading this, please email me! I’d love to know if this sounds right to you, and if so whether you have theories as to why. The culture on these teams tends to be a bit unusual as well: you get the subset of frontend engineers who are obsessed with general frontend software design instead of specific products. It’s like a whole group made up of the one guy in your team who is really into Haskell. Or in Angular, or in a different version of React. Sometimes because it’d break all the little hacks to the design system that your designer has strong-armed you into doing in the past. I did some very loose vibe research which estimated that Microsoft/Google/Amazon has 3/10/7 designers per 100 engineers, compared to 7/7/9 product managers. This sounds like it’d have a visual component but it’s not the kind that requires design : sandboxing a pdf or turning markdown into HTML is a technical operation that happens pre-design. The team that owns the page where that pdf or HTML is rendered is the team that makes design decisions about how it should look. Engineering disagreements can pivot on concrete measures of quality like latency, bugs, lines of code, and so on, while designers must rely only on taste Design changes anywhere affect the whole product, because users experience the product as a single design, while many engineering choices are invisible to the user (and so can be safely inconsistent) This is partly structural. Because they’re not responsible for delivery, they just aren’t under the same pressure as product managers and managers. ↩ In fairness, it helped that both designers were technical enough to write their own frontend PRs, though these usually needed some polishing and deploying. ↩ This didn’t really work. While there were no major redesigns after that point, we were shipping design changes until the day before launch. ↩ Incidentally, if you’re a designer reading this, please email me! I’d love to know if this sounds right to you, and if so whether you have theories as to why. ↩ The culture on these teams tends to be a bit unusual as well: you get the subset of frontend engineers who are obsessed with general frontend software design instead of specific products. It’s like a whole group made up of the one guy in your team who is really into Haskell. ↩ Or in Angular, or in a different version of React. ↩ Sometimes because it’d break all the little hacks to the design system that your designer has strong-armed you into doing in the past. ↩ I did some very loose vibe research which estimated that Microsoft/Google/Amazon has 3/10/7 designers per 100 engineers, compared to 7/7/9 product managers. ↩ This sounds like it’d have a visual component but it’s not the kind that requires design : sandboxing a pdf or turning markdown into HTML is a technical operation that happens pre-design. The team that owns the page where that pdf or HTML is rendered is the team that makes design decisions about how it should look. ↩

0 views

I Deleted My Digital Garden. Well, Almost.

So, I deleted my digital garden. Or zettelkasten, or second brain, or collection of notes, whatever you want to call it. I deleted it. After my latest post about simplifying my life , I started thinking about how I got here again. Maintaining something I no longer really need but was worried about letting go of. Because what if I do need it? As I wrote a few years ago in The Rise of Digital Gardeners , I’ve been doing this ever since I was a kid. Back then, it was physical folders. Then Word documents and PDFs, on my hard drive, then external hard drives. Then the cloud came along, and eventually Evernote happened. My collection grew, moved from one place to another, and then grew some more. I also wrote about Notion and Obsidian and how I eventually settled on Bear . Bear is still my number one tool, and I’ve mostly resisted trying everything else for over two years. Although, instead of doing things I want to do but find a bit hard - like writing - I’ve occasionally dived into Notion again. I put a stop to that by deleting my old account, which still held my notes. Hard delete. Lose it forever. That’s how I weaned myself off social media too. I’m trying to do more things that actually matter to me , where I produce something, where I’m more creative. And I am a collector. And I don’t want to be. Not anymore, as much as I enjoy it . So I decided that Bear is no longer going to be my collection of just-in-case knowledge, highlights, articles, or any other form of other people’s knowledge. I took my topics tag , which contained about 20 or 30 different tags and around 3,000 notes, and, well, I couldn’t quite bring myself to permanently delete it. So I exported the notes (super easy to do in Bear!), backed them up to Dropbox, and archived them in Bear. My Bear looks like this now. Nice and clean. Unburdened. What I’ve got in Bear now are my current focus areas, my admin and resources and a few topics I’m actually working on: writing (including notes for this blog) project management learning notes for work, and Human Design, which I’m still exploring. I’ve also got a to-do tag and a get inspired tag (within “personal”), with notes and clips of current, immediate interest. In One Year with Bear , I started exploring having a monthly note for things I had planned, which is also where I’ve been writing my weekly notes throughout this year. Completed monthly notes go into Day One for permanent storage. But I didn’t really know what to do with them in Bear. Archive them or delete them completely? Then I realised that I probably don’t need to keep these notes at all. The idea originally came from Forever Notes . But in retrospect, it’s just too much inward focus, too much note focus. I don’t need to remember and store that much. Anymore. I already use Day One for journaling and I journal on paper quite a bit too. But I’ve been keeping monthly and weekly notes all year, so I’m going to complete this year. Whether that continues, I’m not sure. Some form of it will, because I’ve found it useful to have something similar to a paper agenda. If I book a holiday, for example, I can link or import the tickets, hotel booking, take notes, add snippets. Somewhere to write things that don’t easily go in Google Calendar (shared with family members). I’m using Readwise Reader more now for articles and notes that would usually have ended up in Bear. I’ve finally consolidated my newsletter subscriptions and RSS feed into it too, basically everthing I wrote about in this blog post is now in Readwise reader. Now I just highlight things as I read. I don’t revisit or export those highlights anymore. If I ever need them, I can search or “chat” with them anyway. If I’m reading a paper book and there’s something I want to save, I can put those notes into Reader too. I haven’t quite got to that yet, but that’s the idea. I still save book notes and write about notable books in Day One. Eventually, I’ll export them somewhere for backup only. But Day One is where they’ll live, not Bear, at least for now. I wish I were the kind of person who could delete everything, all my backups and everything, and just never look back. And go and do something more creative instead. But I’m not quite there yet.

0 views

2026.45: Falling Leaves (and Stocks)

Welcome back to This Week in Stratechery! As a reminder, each week, every Friday, we’re sending out this overview of content in the Stratechery bundle; highlighted links are free for everyone . Additionally, you have complete control over what we send to you. If you don’t want to receive This Week in Stratechery emails (there is no podcast), please uncheck the box in your delivery settings . On that note, here were a few of our favorites this week. Presented by I spend a lot of time trying to figure out what is happening to businesses on the internet. What I often find I’m missing is a view across the economy itself. With more than 1.7% of global GDP running on Stripe, working with them means I can bring some of what they’re seeing to Stratechery. They are, in a sense, a barometer of the economy. Take the “SaaSpocalypse”. Earlier this year, nearly a trillion dollars in enterprise software value disappeared amid fears of AI eating its lunch. Stock prices only tell us what investors think will happen, and not necessarily what is happening. In this case, Stripe recently built a SaaS Index using payments data from 72,000 non-AI SaaS businesses. Looking at their actual performance, we can see that while SaaS stocks were selling off, revenue growth was actually accelerating. Year-over-year growth is now over 30%, with some of the fastest growth coming from the youngest SaaS companies. I suspect there are a lot more interesting things hiding in Stripe’s data, and I’m excited about having an excuse to go look for them. This week’s Stratechery video is on The End of the Internet . AI on the Ballot. This week’s elections delivered Democrats the largest Congressional majority either party has enjoyed in 36 years, and coupled with a variety of similar results at the state level (particularly in Texas), not to mention plenty of data center opposition among Republicans, the future of the AI buildout is now fraught with more regulatory uncertainty than ever. I wrote about X, 2024 symmetry, and the more political aspects of the election for Sharp Text , while Ben’s Article on Wednesday built on his data center warnings from April and provided 10 takes on the post-midterms landscape for tech companies. — Andrew Sharp A Google State of the Union. Last week Google reported earnings and saw growth in search revenue slow for the first time in five quarters. Given the appearance of mortality in what might be the greatest business in the history of digital commerce, investors were predictably spooked. However, I think the company deserves time to see if AI Mode ends up like Stories and Reels did for Facebook: if anyone can monetize AI with ads, it’s going to be Google. On Sharp Tech , we also got into why Google’s AI bet is about more than AI Mode, and why I find myself impressed by Google’s fortitude, even if the rest of the Internet is a casualty. — Ben Thompson And What About China? Elections have consequences, as they say, so what might a Democratic Congressional majority mean for the next two years of U.S.-China relations? We tried to answer that question on Sharp China this week , including predicting factional foreign policy fights between the left and center-left, highlighting the profound unknowns concerning President Trump’s posture after this week’s defeat, and offering one safe bet in the new environment: life is about to get a lot more complicated for Jensen Huang in Washington. — AS Google Earnings, Facebook Déjà Vu, The Agent Play — Google’s earnings miss looks a lot like Facebook’s, and that’s a credit to Google. The company is being more aggressive than they get credit for. Apple Earnings, Memory Problems, The Hardware Company Regression — Apple’s earnings suggest that the company’s hardware business is doing better than ever, even in the face of memory challenges. Does the software story help or hurt? AI on the Ballot — Data Centers were on the ballot, and they lost in a major way; what does it mean if American opposition to building is permanent? An Interview With Intuit CEO Sasan Goodarzi About Accounting and AI — An interview with Intuit CEO Sasan Goodarzi about the working for one of tech’s oldest software companies, and how Intuit is leaning into the AI paradigm shift. X Marks the Rot — Republicans colonized Twitter and then cannibalized their support with two years of memes, corruption and excess. DoorDash and Google The MacBook Pro (with touch) The Rise of GLM and China’s Zhipu AI Parsing the Fifth Plenum; US-China After the Midterms; New Scrutiny for Nvidia?; Cybersecurity and Espionage The Rapture and the Wild West, Luka Doncic on Praise Probation, AJ Dybantsa Saves the Wizards Subscriber Mail: Apple Past and Present, Omarchy, Instacart, and Baseball America Votes Against Data Centers, Implications for Big Tech and Beyond, Were Google Bears Right All Along?

0 views

The intensional model in disguise

Despite how different they look on the surface, Nix, Bazel and buck2 are remarkably similar under the hood. Don’t believe me? I built a prototype in one store, two frontends to prove it. Turns out though that the similarities are even deeper than I realized. Upon further reflection, I realized that the intensional model is an even more substantial common denominator. What is the intensional model? TIP I’ve written before about Nix’s intensional model , better known as content-addressed (CA) derivations. It has been “experimental” in Nix for years. 🧪 In the intensional model, outputs are addressed by their content , and actions refer to their inputs by content as well. The extensional model instead addresses an output by the recipe and inputs that produced it. Nix also calls this “content-addressed derivations” (CA derivations). Bazel and buck2 don’t name their model, but they use content-addressing as well. Consider this coincidence: Eelco’s PhD thesis was published in 2006, the same year that Google started development on Blaze, the predecessor of Bazel [ cite ]. Let’s take a closer look at the three systems with a simple C example and see how all three implement the intensional model. 🥸 In the traditional extensional model (input-addressed), a change anywhere upstream of a build action invalidates the action’s output. This occurs even if the change is irrelevant to the output, such as a comment change in a source file. In contrast, the intensional model (content-addressed) only invalidates an action’s output if the content of the output itself changes. In our C example, if we were to change the comment in from to , the compiled object file would still be byte-for-byte identical, as the comment does not affect the compiled output. In the ideal world, the linking of would not need to be redone, as its inputs have not changed in content. By default, Nix uses the extensional (input-addressed) model. If we edit the comment and rebuild: Everything rebuilt. 😩 The store path in the extensional model is a hash of the recipe , and the recipe for includes the recipe for . Recursion is fun! Change one byte anywhere upstream and every path downstream changes with it. 🌀 Warning The two binaries are not even byte-identical: the cc-wrapper puts in the , so the binary contains its own store path. The extensional model leaks into the bytes. 🙃 If we enable the build to use content-addressed derivations we observe rebuilt, but did not. 🎉 You can read demystifying Nix’s intensional model for a more detailed explanation of how CA derivations work, but the short version is that Nix rewrites to point at ’s content-addressed output instead of . The resolved is the same one we built before the edit. Since no “input” changed, Nix avoids the rebuild. This is the same behavior as Bazel and buck2, which are intensional by default. If we edit the comment and rebuild with Bazel or buck2, we see that the compile ran, but the link was an action cache hit . Bazel and buck2 do not have an input-addressed mode. They always use the intensional model. An action’s key is a hash of its command line (to force rebuilds) and the content digests of its inputs. A change only travels as far as the bytes actually change. This optimization is called early cutoff , and it is the whole selling point of the intensional model. There is a clear mapping between Nix’s CA derivations and Bazel’s action cache. A resolved derivation is a Bazel/buck2 action. 🤯 You may see the output paths in Bazel and buck2 and think they are extensional (i.e. ), but they are just a convenient place on disk. The real addresses are the digests. can even make this explicit with . Until dynamic derivations stabilize, people will continue to reach for Bazel and buck2 for the granularity on large builds. The intensional model is a big part of why they are so fast, and Nix has the same model. The two implementations are nearly identical in concept. Nix described the intensional model in 2006. Google started building on it the same year. Twenty years later, maybe it’s time they compared notes. 🥸

0 views

Static site generators are weird

I love static sites. Pre-rendered files are usually faster, lower maintenance, easier to secure, and more. Static site generators let you create these sites much more easily, which is fabulous. But I believe most static site generators are weird. SSGs like Jekyll , Gatsby , and Hugo require you to learn their special way of doing things. You have to answer questions like: You have to understand many of these in order to build a production-ready site, and every SSG is a different world. For example, my blog (which you’re reading right now!) has used Jekyll, Gatsby, and Hugo. For each one, I’ve had to learn its templating system, its asset system, its RSS feed system, and much more. Each project is thoughtfully designed, but totally its own thing. That’s not to mention the majority of SSGs, which are custom-made for one website. These projects tend to overflow with personality—rare programming languages, jagged feature sets, and flowery READMEs are on fine display here—and are often prime examples of the atypical. Weirdness at its best. This is not a critique of any particular project or of SSGs in general. I think this a lot of this weirdness is essential complexity , which I think most SSG developers would tell you. But I still think they’re weird! I expect to receive some feedback on this post like, “Static site generator X isn’t weird! Everything it does is normal!” I haven’t had that experience, and I envy you. Static site generators are great. And being weird is good! And I think static site generators are weird. How do you write HTML templates? How do you manage CSS and JavaScript? How do you deal with images and videos? How do you manage routing? How do you generate RSS feeds? How do you do unusual things, like one-off pages or redirects?

0 views

Premium: Fault Lines

I’ve generally avoided politics here and the few times that I have done so I’ve received a few pissy emails, but Tuesday night was a wonderful, abundant font of hope in what has been an unspeakably grim two years.  We have felt land-locked in a suffocating era defined by an oafish, half-hearted fascism that lashes out in random directions, where the cruelty is the point, creating a sensation that nothing good can ever happen again — something amplified by the fact that cynical malcontents have turned everything into a casino or strip-mining operation. And we’ve watched as the political and social infrastructure has caved to their every demand, the media has enabled them, and the existing systems have empowered them. It’s felt for most of my life that we’d never escape the weight of the eras of Reagan, Clinton and Obama, every time people have been sold further entrenchment in systemic thinking. Nothing will ever be perfect, and I do not think every wish gets fulfilled. Tuesday night proved that things can change, for the better, and that seemingly-impossible movements can be kneecapped and nearly-entirely collapse in the space of months. And yes, the Blue Wave could very much lead to the bubble bursting, per Bloomberg’s aptly-named “ Big Tech Soars on Bet Dems Will Save AI Spenders From Themselves ”: A great deal of the “inevitability” of the AI bubble comes from the assumption that the rich and powerful always get what they want , and that anything they say — even the most deranged and unrealistic things in the world — will simply happen . Things like building 190GW of data centers , or, shit, 7.1GW of data centers just for Sam Altman and OpenAI only make sense when you’re under the assumption that everything in the world is at a fixed point derived from the whims and proclivities of untethered capitalism.  While nothing has truly shifted yet , we are no longer in a political (or social) climate that rewards backing everything that the tech industry does. Texas is now a thoroughly blue state outside of the state senate, where Republicans still hold a thin majority and are already desperately trying to undermine the powers of the lieutenant-governor before Vikki Goodwin takes over in January , which spells ill for the 57.7GW of planned IT capacity in the state, more than half of which is being built by first-time developers per Bloomberg . Thirty-three separate ballot measures to restrict data centers were passed by voters or were leading as of writing this sentence per Stateline , with 21 municipalities in Ohio alone (one of the fastest-growing data center buildout geographies in the world) voting to restrict them. According to Bloomberg , “...[the] gubernatorial races from Georgia to Ohio and Pennsylvania could leave half of proposed AI data center additions across the US vulnerable to stricter local scrutiny and pushback.” Per The Information : It turns out that people hate data centers, are enraged with the tech industry, are tired of Elon Musk, and don’t want to feel like they are under the thumb of billionaires. The AI industry accidentally created the single-easiest bipartisan talking point by force-feeding rural communities giant, expensive monoliths explicitly built to take their jobs, and now face outright opposition in effectively every state other than the Dakotas, with little or no response other than “uhh, having data centers makes America stronger.” The hubris of the AI bubble is the belief that it could continue to grow unfettered without seeking the consent of those who have to live with its consequences. The AI bubble threatens to take the jobs of working people, to degrade their working conditions, to increase the cost of living, and to force them to live next to noisy, fume-polluting monstrosities — and those most responsible for the existence of that bubble believe that those most keenly affected by the consequences of the technology and the infrastructure must either meekly acquiesce to their will, or will ultimately come to accept the better wisdom of Altman, Musk, Amodei, et al.  Those responsible for the profligate splurge in AI-related spending didn’t anticipate that people — voters — would and could say no. And they absolutely fucking did, and in doing so, exposed a vulnerability in the AI bubble that I (and many others) have failed to cover with the due attention it deserved. The AI bubble is only made possible in a climate of unrestrained capitalism. NVIDIA’s growth is entirely dependent on an unimpeded data center buildout, and without it, there’s little reason to keep buying tens of billions of dollars of GPUs every quarter. Without more capacity, Anthropic, OpenAI and other AI labs are unable to sell their stories based on infinite growth.  And once that narrative sets in, everything begins to implode. So, as promised, today’s newsletter is about some of the markets, industries and companies most-exposed to the AI data center capex bubble bursting, the data points to watch closely for signs of collapse, and the things that might cause things to finally fall apart.

0 views
Kev Quirk Yesterday

Fairphone 1: Still going strong after 13 years

by Fairphone The Fairphone team talk through two examples of where the original Fairphone 1 from back in 2013 are "still very much in use" , but I think this post is a little disingenuous. Read post ➡ I saw this post on Mastodon, and clicked on it as the title and intro both read like there's people still using their original Fairphone 1 as a daily driver, after more than a decade. This surprised me as Fairphone clearly states that their phones are supported for 7 years, and according to this site the Fairphone 1 went end of life in July 2017 (that's 4 years of support for those who are counting). Reading the post it's clear that neither example is using their phone as a daily driver. One is sat on shelf, providing spare CPU capacity for scientific research, and the other is being used as a glorified MP3 player. The post irks me a little as it feels disingenuous. A phone having hardware that's able to turn on and function after 13 years is nothing special. I've just pulled a Blackberry Priv and Wileyfox Swift, both from 2015 out of the drawer and both still work after a few years of daily use. So having a decade old phone that's running, but not being used as a daily driver, is really nothing special. For the record, I like what Fairphone are doing - I've seriously considered getting one myself a few times, but this post missed the mark for me. Maybe I'm being unfair here? Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️ You can reply to this post by email , or leave a comment .

0 views
Kev Quirk Yesterday

Knowember 2026

Knowember in the brainchild of Robert Birming . At first I thought it was a bit of a pointless exercise as it only asks fore 3 things from bloggers: I figured any regular readers will know all those things about me, so it's pointless, but then I read the list of people who have already taken part, some I know of already, others I don't, and in all cases I learned something new. So here's my entry to Knowember 2026 (I do think it's a silly name though 🙃). You can see a photo of me on my about page , so I'm not gonna to share a photo of me here. Instead, I'm going to share a photo of the thing(s) that bring me the most joy in my life...my dogs (don't tell my wife and kids). LTR - Sidney, Tia, and Nelly My real, legal name is Kevin Quirk , but I go by Kev everywhere - I much prefer it. I've never really liked the name Kevin, especially since I learned about Kevinism . My middle name is Thomas, and I'd have preferred to have been named that, but it's too late now. I suppose I could tell people to start calling me "Tom" but I think they'd look at me as if I had 2 heads, given I'm a 40 something man who's always gone by "Kev". Everyone calls me Kev, except for my wife and my mum. They both call me Kevin , except when they're being serious, then it's Kev . Which is weird as most people have it the other way round - as the saying goes "I'm only called by my full name when I'm in trouble ". I suppose it's because Kev is what I've always gone by, so my wife and mum use my "common" name when I'm in trouble. 🤷🏻‍♂️ I've never really had a nickname. Some people used to call me "scouse" when I was in the military, which is the name of a person who comes from Liverpool. But I'm not from Liverpool, I'm from a town on the other side of the River Mersey, called The Wirral. But to people not from the area, I do sound "scouse". I always disliked it when people called me that though, and asked them not to. Being the Army, some of my closer friends would use ironically as they knew I didn't like it. Like I said above, I'm from just outside Liverpool, in the UK. But I now live in the North Wales countryside. That's pretty much exclusively where I blog from. As for where I blog from software-wise, that's Pure Blog . Pfft. It's about all kinds of things. Tech, my career, online stuff, my opinions, my home life, and more. In the early days of this blog it was pretty much exclusively tech, but over the years it's grown into a true personal blog where I write about whatever is on my mind. There's a tag cloud on the discover page if you want to see the tags I've used for all my 1,000+ posts. That's it. That's my entry into this little challenge. If you decide to write your own entry, don't forget to let Robert know so he can include you in the list he's keeping. Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️ You can reply to this post by email , or leave a comment . Name or nickname Where in the world you blog from What your blog is mostly about

0 views
Stratechery Yesterday

Sharp Tech on Video: The U.S. Votes on Data Centers, Implications for Big Tech, Google’s Response to AI

Sharp Tech is, for the first time, available on video. You have two ways to consume it: YouTube, and here on Stratechery

0 views
iDiallo Yesterday

Writing English is Solved

Maybe you still struggle to write in Pulaar, or in your rinky-dink language. But here in the AI-connected, English-speaking world, we don't need to write anymore. In fact, I don't remember the last time I wrote English. I have one master agent that I talk to and tell what I need to get done. It breaks down the tasks and serves them to spawned agents that get the work done. I spend $3,000 a month on tokens. I use them mostly for: My great transition this year, as a programmer, was that once I accepted that AI can merge code without needing my review, I could let go. What this meant was that when AI writes English for me, I no longer need to review it before publishing. It can write English, and it writes it well. Okay, let me add this here before I go too far: . I read this blog post yesterday, and I'm always baffled to hear technical people write these words : Writing code is solved. As a software engineer who uses AI, I feel like I must be holding it wrong. I've found a correlation between the number of lines of code written and the number of bugs found. Whether a person or a model generates the code, the longer the PR, the higher the odds of finding an issue. So when someone says coding is solved, I automatically assume they were mediocre at best before using these tools. If we look at it technically, we could say, in the same vein, that writing English is solved. The AI can write correct sentences, write paragraphs, or publish an entire document. If you have doubts about the content, you can have a second AI verify it and fix potential hallucinations. But of course, that's not how it works in the real world. The moment people detect AI-generated text, even if it is after reading the whole text, they reject it. It feels empty, deceitful. What is an anecdote from an LLM to convey, when the experience never actually happened? Yes, code is not to be consumed like English. It is for the machine. But it is subjective in its purpose because we humans have to read it eventually. Writing code is not solved, just as writing English cannot be solved. Writing is subjective and has no solution because it isn't a problem. If anything, AI for writing is a testament to this saying: "Je n'ai fait celle-ci plus longue que parce que je n'ai pas eu le loisir de la faire plus courte." — Blaise Pascal Research and search Summarization and transcription Writing (the big one) Art and music

0 views
Unsung Yesterday

When fonts fall

…is an essay I wrote in 2020 about font fallback and all these mysterious “missing character” characters like �. = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/when-fonts-fall/1.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/when-fonts-fall/1.1600w.avif" type="image/avif"> If you are curious, too, you might find it interesting! It was fun researching this, and I ended up going in unexpected directions, including emoji and “Unicode fonts.” The essay pairs nicely with text.makeup , as that’s the tool that can help you investigate a suspicious string to see what exactly happened. (The writing is on Figma’s blog, but it doesn’t talk about Figma-specific typography – as a matter of fact, it’s deliberately kept universal, with Figma behaviour only mentioned in one sentence.)

0 views
Sean Goedecke Yesterday

A database is a store for global variables

Databases are for storing global variables. We usually call them “rows” or “records” instead, but they’re definitionally global variables: any part of your program can read or write them. Isn’t this kind of weird? It’s common programming advice that global variables are bad, and yet many elegant programs rely on databases. Either the common advice is wrong, or there’s something special about databases that makes them the exception to the rule. What’s so bad about global variables? Here’s the two main 1 reasons, in my view: Both of these apply to databases. Any part of your program that makes a query can send and receive data from any other part of your program. In practice this happens all the time: one function will save some data on a record, and another one will check for it. And if you haven’t seen bugs where some piece of code makes some incorrect expectation about the shape 2 of a database column, you haven’t been working on web systems for long enough. So why aren’t database-backed apps in terrible architectural shape? In the rest of this post I’ll consider some options. First, we could bite the bullet : maybe all database-backed apps really are a mess . This is surprisingly plausible. When I think about the systems I’ve worked on that haven’t involved a database, they’re usually much cleaner and more elegant. If managing state is the hardest thing about designing software — and I think it is — then systems that manage less state are going to be better-designed. However, this doesn’t explain everything. Database-backed apps aren’t that bad, and even in database-backed apps, we try to avoid introducing regular global variables 3 , so in practice we treat global variables as worse. Second, we could say that databases offer ACID guarantees that mitigate the damage of global variables . Unlike regular global variables, databases offer a consistent view of state and the ability to atomically change multiple pieces of state together. I don’t really buy this. The problem with global variables is not just that they can get out of sync, it’s that they exist at all. If you think this is the difference, you are committed to thinking 4 that if you stick a mutex around a global variable then it suddenly becomes acceptable. Third, we could say that databases are more explicit . Mutating or reading a global variable looks like ordinary code, but database queries need some connection object to be passed in and some query function to be invoked. When you’re scanning through code, you can see where the database queries are at a glance 5 . Not so for global variables. This does actually kind of mitigate the implicit-coupling problem. Maybe regular global variables would be better if you had to set and get them with long, involved function calls. Fourth, we could say that databases are less flexible . A global variable could store anything : a function, a class, an image, and so on. A database just stores data . I can buy this explanation for untyped languages. Global Ruby variables that could be reassigned from a string to a hash table are far more terrifying than a “global” database column that could change from one string to another string. But since the advice to avoid global variables applies to typed languages as well, I don’t think this could be the reason why databases are better. Fifth, we could say that we know how to use databases . For instance, whenever I read from a database, I reflexively check the type of the column so that my code doesn’t make assumptions that aren’t guaranteed by the database. There are use-cases that I would never even consider using a database for (e.g. to track a counter in a loop, or to store the name of the file where my config is stored). In other words, we have norms and customs 6 around using databases that minimize a lot of the damage that global variables can cause. There’s nothing inherent about databases that make them better, it’s just how we use them in practice. Overall I think the third and fifth reasons are most convincing: databases are better because they’re more explicit and because we only tend to use them for a limited set of purposes. It’s interesting to note that these reasons are contingent , not inherent. A codebase which had conventions around global variable use 7 could also fulfil these conditions. Would this make global variables fine, or at least no worse than a database? I think so. I don’t recommend you go out and start putting global variables in your programs. It’s more interesting to note the meta-point here: that two pieces of common software engineering dogma — avoid global variables and use a database for state — are partially inconsistent. Most software design knowledge is still just a pile of loose heuristics. I don’t really know how to build software and you don’t either . As I’ve written about before , we should therefore all be very suspicious of engineers who appeal to “best practice” without being able to give concrete reasons, even in cases as obvious as “global variables are bad”. For instance, concerns about readability and tracing follow from the first reason. I don’t really buy reasons like “it’s not thread-safe” or “global variables might shadow local variables”: any architectural problem that can be trivially solved with a mutex or a linter is not a real problem. For instance, that a string supports 4-byte UTF-8, or that a column can/can’t be NULL. You could say we avoid introducing global variables because databases are essential and global variables are not. In theory you could replace any global variable by threading a local variable through, but you do need a database if you’ve got gigabytes of structured data to manage. However, that doesn’t explain why database-backed apps still tend to be better-designed than apps with many global variables. I’m not saying this is necessarily wrong. The argument would go something like “well, if you implement a simple in-memory database for your global variables, that is better!” This is only sort of true. If you’re designing a system, you’d be well-advised to make it as true as you can. While I love Rails, my main beef with ActiveRecord is that it makes queries invisible. To be fair, some of these are guaranteed by the fact that the database exists over the network. Plus types, probably, and concurrency controls if we’re not in a single-threaded language. They allow any part of your program to implicitly send data to any other part instead of passing it around via function signatures They couple different parts of your program: if one part depends on a variable having some value, any other part can break it For instance, concerns about readability and tracing follow from the first reason. I don’t really buy reasons like “it’s not thread-safe” or “global variables might shadow local variables”: any architectural problem that can be trivially solved with a mutex or a linter is not a real problem. ↩ For instance, that a string supports 4-byte UTF-8, or that a column can/can’t be NULL. ↩ You could say we avoid introducing global variables because databases are essential and global variables are not. In theory you could replace any global variable by threading a local variable through, but you do need a database if you’ve got gigabytes of structured data to manage. However, that doesn’t explain why database-backed apps still tend to be better-designed than apps with many global variables. ↩ I’m not saying this is necessarily wrong. The argument would go something like “well, if you implement a simple in-memory database for your global variables, that is better!” ↩ This is only sort of true. If you’re designing a system, you’d be well-advised to make it as true as you can. While I love Rails, my main beef with ActiveRecord is that it makes queries invisible. ↩ To be fair, some of these are guaranteed by the fact that the database exists over the network. ↩ Plus types, probably, and concurrency controls if we’re not in a single-threaded language. ↩

0 views
iDiallo Yesterday

It's unbreakable in theory

I've seen the picture of the iPhone Duo, still in the store, perched on a stand, its screen flickering with broken white lines. Apple has touted testing the screen hinge, opening it mechanically thousands of times. The phone survived every test it was put through. Yet here it is, on the stand, with a broken screen. Wait till the product meets its first customer. I'm sure the tests worked in theory and in the delicate hands of its engineers. But customers' hands are anything but delicate. Remember Elon Musk's wrecking ball? They must have tested the Cybertruck's window beforehand, but it took just one person outside the test group to break the glass with a single throw. I remember when my nephew was barely a year old, not even able to walk. I handed him a wooden spoon in the living room as a distraction while I ran to the kitchen to get some food. As soon as I got there, I heard a snap. I came back to find this little boy holding the spoon, broken in two. It was a hard spoon, and there was no way his one-year-old hands could break it in half, yet there was the proof in front of me. So yes, Apple tested the rigidity of the screen with fancy machines, but the iPhone Duo never stood a chance against the customer's hands. Unless we are holding it wrong?

0 views
Farid Zakaria Yesterday

Rewinding by fast-forwarding

Debuggers are an incredibly powerful and useful tool, but they mostly show you only the present and let you move forward. 1 Inspecting the present can help you understand the past, but is that a limitation we must accept? What if you could travel back in time to see what happened? What if you could see the exact moment a value was written, and who wrote it? What if you could run your debugger backwards ? Rewind is a deterministic virtual machine that records a program’s execution once, and then lets you replay it identically, many times. This lets you run the debugger backwards, and see the history of a value in memory, including who last read and wrote it. Turns out that you can go backwards by fast-forwarding. Going backwards changes how you debug: you can see how a value got there, not just what it is now. In who wrote this byte? found the program that wrote a byte of a file. That was the easy case. Every write to a file goes through the kernel, and Rewind’s kernel logs each one. Writes to memory don’t go through the kernel, so there is no log to read. So instead we go backwards, by running forwards again . This is how can tell us who last read and wrote a value in memory, and it is the same trick that lets gdb run backwards as well. Let’s see how it works. Aside: New to Rewind? Start with a flaky build you only catch once and dafuq is a deterministic VM? Let’s use the example from Nix wrote half of my debugger . Two tellers each deposit 10, twenty times, into one account: In our example, crucially, there is no lock around the read and write of . If the other teller runs in between, one of the deposits is lost. runs the program under different thread schedules until one fails: narrows schedule 1’s failure down to steps 3,245 and 3,246 and records that run, , which is the one we will dig into. We expected 400 and got 310. Nine deposits are gone. 😬 Our program prints the balance at step 3,291. We can run at that step and the variable 2 to see who last wrote it: Rewind goes “backwards” through the run, looking for the last write to that value. We can see that the last write was at step 3,282, by teller 2 (thread 141) on line 41. But wait, 300 + 10 is 310. That write is fine! 🤔 The last write is rarely the bug. The money went missing earlier, when a teller wrote a value it had read much earlier. We need to augment with the reads too, to see that. lists every read and write of the value, back to the start of the process. Here are the rows around where it goes wrong: Reading the chronology, we can see that teller 2 read the balance at step 3,248, and then teller 1 made nine deposits, taking the balance from 110 to 200. Then at step 3,263 teller 2 wrote its stale value of 120, overwriting the balance and losing the nine deposits (90). 💣 In this example, the bug is obvious, but in a real program it can be hard to find. The option shows you the whole history of a value, and you can often see where it went wrong without ever setting a breakpoint. You can even see the bug in the plot of the balance over time: The example is simple and the fix is obvious: a lock around the read and write. In a real program, the bug can be subtle and the fix complex. Seeing the history of a value, and who last wrote it, can be invaluable in tracking down the root cause. The Rewind app gives the same information but in a more interactive way. The source panel underlines every value that can watch: You can click on the value to see who wrote it, and then click Show reads too to see the whole history of that value. Show reads too draws every access, one lane per thread. Teller 2’s lone read sits in the middle of teller 1’s deposits, and that one dot is the bug. 🙌 If you would rather drive, can go backwards too by setting a watchpoint and . Here it is forked at step 3,264, just after teller 2’s stale write: You can navigate the stack, inspect variables, and step backwards with and . How does this all work? How do you run a VM backwards? You don’t. 😅 Rewind replays are completely deterministic: the same run produces the same result every time. Turns out that a simpler way to go backwards is to run forwards again, but stop one instruction sooner than last time. That is all and do. Rewind keeps a checkpoint of the machine at the start of a step. It rewinds to that checkpoint and then runs forward back to the step you want to inspect making note of every read and write along the way. If no reads or writes are found, it rewinds to the previous checkpoint and runs forward again. It keeps doing this until it finds the last read or write before the step you want to inspect. 3 keyframe keyframe step 3291: who wrote balance? 1 restore the latest keyframe before the step 2 replay forward, debug registers watching balance 3 the last trap is the answer: step 3282, teller 2, 300 → 310 teller 1 writes teller 2 writes no trap in the window? do it again from here Deterministic replay is what makes this work, and it keeps the implementation simple: going back is just going forward again from earlier. I’ve been having a lot of fun debugging my own programs this way. It’s a bit like time travel without the paradoxes. You can see the whole history of a value, and who wrote it, without setting a breakpoint and restarting the program. It’s git blame for your program’s memory. 🔍 Tools like rr and Undo record a process and let you run its replay backwards. Rewind records the whole machine, the kernel included, so the same inputs make the same run every time.  ↩ The expression can be a variable, a pointer dereference, or a struct field.  ↩ A step can be millions of instructions, so this can take a little bit.  ↩ keyframe keyframe step 3291: who wrote balance? 1 restore the latest keyframe before the step 2 replay forward, debug registers watching balance 3 the last trap is the answer: step 3282, teller 2, 300 → 310 teller 1 writes teller 2 writes no trap in the window? do it again from here Deterministic replay is what makes this work, and it keeps the implementation simple: going back is just going forward again from earlier. I’ve been having a lot of fun debugging my own programs this way. It’s a bit like time travel without the paradoxes. You can see the whole history of a value, and who wrote it, without setting a breakpoint and restarting the program. It’s git blame for your program’s memory. 🔍 Tools like rr and Undo record a process and let you run its replay backwards. Rewind records the whole machine, the kernel included, so the same inputs make the same run every time.  ↩ The expression can be a variable, a pointer dereference, or a struct field.  ↩ A step can be millions of instructions, so this can take a little bit.  ↩

0 views
Martin Fowler 2 days ago

The Data Product Platform Navigator

Many organizations adopting data mesh and data products face a common challenge. They may be tasked with building a self-service platform for data products and data mesh from scratch, or they may have an existing platform that suffers from low adoption, preventing their data mesh from scaling. This article provides a platform navigator, based on the CNCF's Platform Engineering Maturity Model, to help you reason about your current situation and determine the next steps for your platform.

0 views
James Stanley 2 days ago

Agentic CNC

I reckon LLM agents can control CNC machines, and I reckon this already works today although I don't know if anyone is doing it yet. For annoying reasons I don't currently have any computer that has access to a CNC machine and the internet simultaneously so I can't immediately try this out but it would be good to experiment with. You could have a really simple AGENTS.md describing how to connect to FluidNC or whatever and parameters for the machine it's controlling, and then you could do simple CNC jobs without doing any CAD or CAM. You'd still have to load material yourself and probably set up the work coordinates appropriately using a normal gcode sender, but then you can just ask for what you want: Hi codex, I have a workpiece loaded in the plasma cutter, it is 6mm thick steel, I've setup the coordinate system already, and I want a slot for an M6 bolt to slide between centres at X0Y0 and X20Y0, go For extra style points, have codex connected up to voice control. I am almost 100% confident that codex could correctly write the gcode on the first try and successfully send it to FluidNC and run the job. (For the doubters, here's ChatGPT writing the gcode , note I haven't used a CNC plasma cutter in my life so the cutting parmeters are bogus). You may find it is reluctant to run a real machine without several rounds of confirmation, I don't know, but in any event this could probably be fixed in AGENTS.md by explaining to it that you really do want it to run your machine. For the plasma cutter example I think you'd just want AGENTS.md to tell it things like: whether to talk to FluidNC over serial or TCP or something else some examples of good values for pierce time, feed rate, and kerf width for different metals and thicknesses I think if you had an example for 4mm steel and one for 6mm steel it would probably do a perfectly adequate job of interpolating parameters to handle 5mm steel for example. You can imagine if the machine table had a referenced XY zero position like a scanner bed does then you could always load material referenced to the same point and you wouldn't have to do any coordinate setup. Especially on a plasma cutter or laser cutter where you don't have clamps in the way that need to be avoided during travel moves. For a milling machine you'd also want to either give it an automated tool changer, and information about which tool is in which slot, etc., which is not at all unusual for machines that have such capability; or else for a basic 3 axis machine you'd have to just tell it what tool you've loaded and set the Z height yourself. whether to talk to FluidNC over serial or TCP or something else some examples of good values for pierce time, feed rate, and kerf width for different metals and thicknesses

0 views
Manuel Moreale 2 days ago

More thinking on webmentions

Since I wrote about it , I kept thinking about the topic of webmentions, quoting, embedding, screenshotting, and the overall idea of connecting content on the web. The more I think about it, the more I’m convinced this is two issues wrapped into one, and I suspect there’s no way to perfectly resolve the tension that exists at the core. The first issue is a technological one or how do we make sure content that is related can get connected in a way that’s convenient and can scale across million of websites? The way I see it, that’s the issue webmentions attempted to solve, by building a system that allows websites to automatically send and receive links and make sure the web is maintained. The second issue is more ideological and related to who has the right to do what in the context of other people’s content. Some people believe that since content is publicly posted, then it’s fair to be copied and distributed. Others don’t agree with that position. The line then becomes even blurrier when you start questioning what the difference is between including my post as a comment and quoting it in its entirety. The first issue is one that can probably be solved. I’m confident we can figure out a way to automatically build links and connections on the web. Doesn’t seems like an unsolvable problem to me. The second issue, however, I think that’s just unsolvable. Because that's related to the way people see the web. I think the point of personal sites is to be a node in a network. You don’t want the journey to end there. You want to help people move and go to different places, which is why I think linking is important. It’s also why I think embedding entire posts as comments is the wrong way to go. Because in doing so we’re not helping people discover new places. In his post Greg wrote: I’ve built a new blog, you’re reading it, that pulls in replies to all of my posts either micropub viewable elsewhere or simply cross-posted to other networks. I don’t really see any issue displaying them on my blog as they are public replies to my posts. To come back to the original issue with webmentions, if I had them implemented here, Greg would receive a mention. And with an automated system, my post could then appear as a reply to his post. Is this post a comment to his blog post? It obviously isn’t. I am in part replying to a point he made, but I’m also talking about other things. I think it’s reasonable for me to be able to decide if something I wrote is a reply to his post or not. What I’m trying to say here is that things are messy. Different people living in different societal contexts have different ideas for what’s considered right. And I don’t think we’ll resolve this issue anytime soon. I think treating entire posts other people write as comments is wrong. It’s their content, it’s their words, and the right thing to do is to link to their sites. But I can only speak for myself, and other people will have different ideas. Thank you for keeping RSS alive. You're awesome. Connect via email :: Sign my guestbook :: Support for 1$/month

0 views
Stratechery 2 days ago

An Interview With Intuit CEO Sasan Goodarzi About Accounting and AI

Listen to this post: Good morning, This week’s Stratechery Interview is with Intuit CEO Sasan Goodarzi . Goodarzi took a very non-traditional path to Silicon Valley, joining Intuit in 2004 after working at Siemens and Honeywell. After managing business units across the company he became CEO in 2019, and is taking on the challenge of figuring out how one of tech’s oldest software companies manages the AI paradigm shift. In this interview we discuss Goodarzi’s background and the what it takes to be an effective generalist, and get his take on how Intuit has thrived for 44 years. We discuss the shift from Quicken to Quickbooks, the TurboTax business, and how Goodarzi thinks about the consumer space today. Then we talk about accountants, Intuit’s most important customer acquisition channel, and how the company wants to change the profession from partners to customers via AI. I present the case to Goodarzi that Intuit seems like its being disrupted, and he makes the case why they are well positioned to actual grow their market. We also touch on acquisitions like Credit Karma and Mailchimp, and how Intuit has managed business model changes in the past, and what needs to change in the future. As a reminder, all Stratechery content, including interviews, is available as a podcast; click the link at the top of this email to add Stratechery to your podcast player. On to the Interview: This interview is lightly edited for clarity. Sasan Goodarzi, welcome to Stratechery. Sasan Goodarzi: Thank you for having me, I’m a big fan of all the work that you do. It’s great to be a part of it. Well, we’ll get to my relationship with Intuit, which I’ve had for many years. Big fan? I’m going to have to think about that one. We are here to talk about Intuit, a company that you have been at, with a brief break, for over 20 years. Before we get to that, however, tell me about your background, which is a very interesting one. Let’s start with where you were born. SG: Yes, I was born in Tehran, in Iran, and I am the youngest of three — 13 years younger than the other two brothers. I was told I was special, I think I was an accident, so there you go. And back then, you’d ship your kids to the U.S. because everybody wanted to come to the U.S. to study and so my brothers were in the U.S. already studying, and my parents decided to do an experiment with me and shipped me to the U.S. at the age of nine and I was very fortunate, because the revolution actually happened. Got it. So you had already left before then, I wasn’t quite sure on that timing. SG: Yeah, yeah. I was very fortunate, I left before the revolution, about eight to nine months before the revolution, and have been in the U.S. ever since. Where did you end up in the U.S.? SG: I came to Orlando, Florida of all places, because my brothers were going to the University of Central Florida. And, by the way, back then we used to say, “U Can’t Finish”, that’s what we called it, but it’s a great university. But anyways, for that reason, I was in Orlando until my early 20s, until I started being moved by Honeywell. Every couple of years, I was going to a different state, which was a lot of fun, and eventually ended up in California. You studied electrical engineering, right? And then you were at Honeywell and Invensys. What were you doing there? I mean, it doesn’t seem quite the obvious path to being CEO of Intuit, to say the least. SG: Not at all. In fact, it’s advice I give, career advice I give to folks. I actually started at Siemens, I was a technical marketing person, which really — I don’t know why they called it marketing, it was all a technical role that supported our field sales folks. I was in the power generation business unit at Siemens so I used to go pitch why our power generation was better than anybody else’s. I don’t think they need much marketing these days in the Siemens Power Generation Unit. SG: (laughing) Yeah that’s right, they don’t. I did that for four years and frankly, I didn’t know what I wanted to do with my life, because in the meantime, I was doing startups on the side. In fact, before I even started at Siemens, I did a startup called Lazer Cables — with, at that time, a very good friend that was actually the genius behind the idea of fiber optics for the music industry, so I was dabbling in a lot of different stuff. When I was at Siemens, I love the company, but I was wondering, “Is the corporate world cut out for me?”, and I got recruited to Honeywell. And at Honeywell, they put me — it was like business development. In essence, they put me in charge of something they were experimenting with, which was just down my alley, because it was, in essence, a startup as part of Honeywell and I fell in love with the company because of that. I was there, I think like eight years. So is this — was this going to different states? Was that because Honeywell, being a defense contractor, they just have to source from everywhere? Is that the connection? SG: Yeah, but I was in the industrial home automation division. So if you look at my background, I’ve been in power generation, I’ve been in home and buildings automation, I’ve been in industrial, which means I was selling software and hardware at the time to oil companies that need to manage all of their oil and gas in the fields. I’ve been in all of those different industries and then, to your point, I got a call from Honeywell, so my whole background is enterprise and oil and gas and all those different industries. So my forte was getting into something and diagnosing quickly what was going on and what should we do about it, my expertise wasn’t in any one industry. And then, when at the time Intuit called me, I didn’t even know what the company was. Right. It’s a very non-obvious connection, so what did they see? How did they find you? SG: I think the reason they found me is, at the time, the CEO had come from GE Capital, Steve Bennett . And I think at the time, they were looking for folks that knew how to run businesses, not — these are their words, not mine — not a typical Silicon Valley grown-up leader, and that’s what attracted them to me. And I was trying to figure out what Intuit was, because, one, I had never served consumers, businesses — it was always enterprise. But I really fell in love with, at that time, the culture of the company and the leaders of the company. And when I joined, I’ve been here sort of ever since — 20-some-odd years. Well, you did leave briefly to be CEO of energy company Nexant. What advantages do you think you gained from not having at all a traditional Silicon Valley CEO background? And also, on the flip side, what challenges has that presented? SG: The biggest learning I had, which had to come innate because I was in a new job almost every three years, is curiosity — is going in and really diagnosing, really trying to get to the root cause of if something is going well, “Why?”, if it’s not going well, “Why?”. How do you assess the industry, the talent, the priorities? And so I became, only because I had to, a master of how to be curious and diagnose. Does this require a very systemic sort of thinking about the problem? What makes a good generalist? Because you, I mean, clearly you’re a generalist. So what makes that effective? SG: It is, in fact, what you just said. One, you have to be a systems thinker. You have to ask a lot of questions end-to-end, because, one, it’s not from one particular craft, and you don’t know the industry that well and so you have to ask a lot of questions. You have to understand what the customer problems are. Structurally, are you advantaged or disadvantaged? What kind of talent do you have? It requires a systems thinker. But I think the second is you learn how to hire great, great people. Why? Because you don’t know anything about the industry. Once you know what you got to go do, you need great people that know how to go do it, I think those are the advantages. The disadvantages can be that you don’t innately — like when I went from power generation business unit to serving oil and gas, they don’t have too many things in common, and so the disadvantage is intuitively, right off the bat, you wouldn’t know what to do. I think that’s the disadvantage. I would tell you, from what I have learned, I would take those disadvantages any day over a leader that’s curious, that can diagnose really, really well. Because it naturally — one of the things I love about Amazon is the Day 1 mentality. Every day is Day 1, and Day 1 truly is when you’re curious, and you’re trying to understand what’s going on, and what kind of impact can you have. Well, when you don’t know an industry, it is truly Day 1. If you know an industry very, very well, you actually have to work hard to ensure that you’re diagnosing versus, “I have the answers to everything”. I think people would generally think oil and gas, energy, tech, totally different. Is there, though, a commonality in terms of where the investment takes place and the marginal cost of serving customers over time? Is that similar, or are there still really important differences there? SG: There are a lot of similarities I have learned over time in terms of just how do you run a business. So it’s just general management is the commonality? SG: And, by the way, I actually think it applies in this environment more than ever, frankly, because structural advantages — are there any in this environment? What is your structural advantage? Making sure that you’re curious about how you really reinvent experiences because of what’s possible with AI. I think there’s a lot of commonalities, inclusive of — this is probably the biggest thing I would say when I came, and I have a lot of respect, by the way, for all the companies and all the leaders in the Valley because, frankly, we are the ecosystem that drives global innovation, period, end of story. With that said, I think one of the things I’ve learned over my career is we can end up being sloppy in the Valley in terms of how we think about expenses, how we think about cost, how we think about allocation of capital. Those are things you just — when you come from oil, gas, power generation, where margins are thin, room for error is zero because, trust me, you do one thing wrong in oil and gas, you can blow up oil tanks. And so those things carry forward in terms of how do you build quality software, where do you put your money. But then there are things that don’t carry over, which is oil and gas has nothing to do with how consumers consume stuff. Right. Can generalists — could it be a sort of weakness of generalists — you said sloppy. And I think about the generalist angle and systems thinking and it’s easy to skim over the details, “Not that important”. Is that a challenge that you sometimes think about? SG: First of all, I think every leader, no matter what industry, has to have helicopter skills. I think you have to — one, I don’t think you can set clear vision of where you need to go and then move fast to get there if you’re not grounded in details. What does that mean? I mean, for me, details are, are you meeting with customers? Are you in your KPIs? Are you using products? Are you looking around corners in terms of what has to happen in your experiences? I think you have to be detail-oriented, and not just in this environment, I think every senior leader at every level has to have detailed orientation. Systems thinking doesn’t mean you lack detail orientation, it just means that you’re thinking about a problem end-to-end and because one of the biggest things I learned at Honeywell is — think about building a plane, just as an illustrative example, end-to-end, from the moment you say, “Build the plane”, to the moment that plane is on a runway — and thinking about it wing-to-wing. So you can end up building the engine much, much faster, but if you don’t actually think about wing-to-wing — what it takes to build the plane and how to reduce the cycle time of building the plane — then you don’t ship better and faster planes in a shorter period of time. So this notion of wing-to-wing is similar to end-to-end systems thinking. You have to really figure out how to draw the box because when you redraw the box, you redraw your TAM, you redraw what’s possible and that doesn’t mean lacking detail, it just means both become very important. If AI is very good at details, is AI the biggest gift to generalists ever ? SG: I think — by the way, I was on the record, you can go back and look, eight years ago, we went in on data and AI. And the stuff that exists today, of course, did not exist eight years ago and I was on the record saying — and many laughed at me — on the record saying that, next to electricity and the Internet, it would spark the largest global innovation that we could have ever imagined. I think it’s, for many, while it has a lot of risks, it’s going to level the playing field in terms of what’s possible, what you can do, what I can do, what many can do. It’s commoditizing a lot of stuff — and not just information, but insights and helping you make decisions, what it can potentially do to healthcare, what it can do to robotics, what it can do to space. I just think it’s freaking fascinating what’s possible. Is AI a systems thinker or is it a details thinker? SG: Oh, I think, in my view, it’s all about how you design it, that’s the biggest thing we’ve learned in all the agentic work that we’re doing — is it’s only as good as the context you give it, it’s only as good as the data that you give it. The biggest mistake in learning we had in the last couple of years is we, to answer your question, we launched a bunch of AI agents , a payments AI agent, a payroll AI agent, an accounting AI agent, and while they did everything in slices very well, they didn’t actually deliver a great experience end-to-end for customers. That’s because of what the capabilities were about a year ago, but also just how we had designed it, we didn’t design it as a systems thinker. I think it can be both and of course the capabilities are just growing day by day. But it comes down to the context and how you design it, in my view. I did want to do a little bit of a historical tour. It’s interesting to talk to you about Intuit. You’ve been there for 20 years and yet only been there for half of Intuit’s history, this is one of the granddaddies of Silicon Valley. So your first product — Intuit’s, not yours personally, but Intuit’s first product — was Quicken , founded way back in 1983. The company started QuickBooks in 1992, which underpins your largest business today, of which I am a longtime customer. Was Intuit one of the first examples of productivity software companies realizing there’s a lot more money selling to businesses than selling to consumers? SG: First of all, none of us would be here but for Scott Cook , our founder, that was watching his wife, Signe, try to balance the checkbook. I’m old enough, I remember I was taught how to balance the checkbook, I remember doing it way back in the day. SG: We still have that table here, right outside of this building that I’m in, that signifies why Intuit was born. But to answer your question, it was first really the company was invented based on, there’s a better way just to manage your budget, your checkbook, and your financials, which gave birth to Quicken. But really the biggest next “aha” was that businesses were trying to use Quicken to actually manage their business and that’s really the “aha” that Scott Cook and the team had at the time, which is, “Wait a minute, rather than making Quicken better, there is this thing that we can actually invent that helps businesses, manage and be organized and manage their books”. That’s what gave birth to QuickBooks and the QuickBooks franchise, which over time became something incredibly special. Right. Your customers were misusing the product and sort of pulled the new one out of you. SG: That’s right. And Quicken, by the way, ended up only being like a $100 million business, but the brand was so much bigger than $100 million, but it really gave birth to QuickBooks. And then over time — this is a company, by the way, it’s made up of acquisitions. Many don’t know the TurboTax of today was an acquisition of Chipsoft . I have a question about that. On this point to the QuickBooks transition — well, I mean, QuickBooks Online launched in 2000. Again, very, very early to serve something online. The actual transition of your business to the cloud took a lot longer. I’m just curious — you joined, in retrospect, it was the beginning of that transition, but still four or five years after it was online. What do you remember about that transition? What was the challenge there? Was it technological? Was it consumer education? Was it internal, your business model — going from package software to a SaaS model? What was hard about that? SG: I love your question, because it actually starts with where you started, which is, this is a 40-year-old-plus company, and there aren’t too many that have survived. Because remember, we were a company that was born in the era of desktop, right? Yep, package software. SG: We were shipping CDs. No, because we use the word “package software” today, but no one realized — no, it actually used to be packaged. It was a box you went to the store to buy, with — not a CD — with discs inside of it. SG: Thank you! Yes. By the way, that’s actually why I use the words “we used to ship stuff”, we used to ship disks and CDs because many in today’s environment, when you say that, they’re not sure what you mean by “packaged.” I joined right at the beginning of that. And the challenge — I tell you, I give the company and all the leadership prior to me a lot of credit, because there aren’t too many companies that were born in the era of DOS and had to go to the cloud, to mobile, and then the transition to AI. And the hardest part is both cultural — you’ve got a bunch of talent that is building what ends up on a disk, and then you ship the disk. It’s cultural, it’s technology, all of your code is siloed, all of your code is in a bunch of different cans called disks, none of them talk to each other. Yep, and it has to be finished. There’s no updates. SG: And there’s no updates! That’s right. And so it’s cultural, it’s technological, it’s talent, and then there is the dilemma of, “Wait a minute, so you want me to, in TurboTax, build a cloud version, but we’re going to get disrupted, we’re going to disrupt our own desktop business that’s a great business and it’s highly profitable?, so then there is the Innovator’s Dilemma . SG: If you make this shift, how do you make it? So cultural, technological, talent, and then there’s the disruption of your revenue stream. Those are all massive challenges — which, by the way, that’s why we were late to the cloud, because we still have, I think, I’m going to go off of memory, several billion dollars of business that’s desktop. Now, we’re not shipping CDs and disks anymore, it’s sort of still in the cloud. But there are a lot of customers that love the desktop versions, and that’s the biggest challenge, the last one is the customer doesn’t want to change. Yep. Yeah. You mentioned TurboTax earlier, an acquisition, you’ve done a lot of acquisitions over time. I can’t remember — did you acquire TurboTax? I guess it was before you eventually sold Quicken. SG: That’s right, long before I joined. Right, eventually Quicken you sold off ages ago , TurboTax is your consumer play. To my question before — about generally it’s easier to sell productivity software to businesses than to consumers — should there be an asterisk that the way to sell to consumers is if you have the monopoly of violence on your side? Pay your taxes or else! SG: Compliance businesses are great, and that’s really what TurboTax is. That’s the ultimate compliance business. SG: It’s the ultimate compliance business, because it’s all based on the system of taxes in the U.S. and Canada, and you have to do your taxes or you pay a penalty. Now you have to keep inventing, and there’s a lot of competitors in this space, but there’s nothing like compliance businesses, they’re great businesses. Why shouldn’t the government just do the taxes for you? Especially for W-2 workers that are very basic. SG: You have to change the whole system. The government has tried. Right. Intuit has been consistently opposed to it, I think, for understandable reasons. SG: Well, we have been, because, by the way, it’s not free. When the government creates software, you’re paying for it as a taxpayer. Plus, a lot of these W-2 workers, they already have free available to them, whether it’s through us or H&R Block or many other tax prep companies. Unless we change the entire tax system, at the end of the day, free is already available to almost all Americans. By the way, including yourself — if you really want to go do your taxes for free, you could, it’s available to you today. Here’s the question about that — who is the constituency for not changing? Because you guys get cast as the bad guys, “The reason why this isn’t easy is because Intuit lobbies, blah, blah, blah”, which either one, you have the most effective lobbying operation in the history, I mean, you do lobby, I’m not going to deny that’s a fact — but at the end of the day, a lot of people complain about taxes every year and yet it’s still this way. So what are the constituencies that are standing shoulder-to-shoulder with you, as it were, in the system being as it is? SG: There’s two things we’re huge proponents of and, by the way, have been — in my 20 years in the company — when I joined, and wasn’t even running the tax business, these two things were true, and they’re still true today. One, we’re always advocating for simplifying the tax system, because the tax system is way too complicated and the more you simplify, the better it is for the consumer and the business. The other thing that we’ve advocated for is the government shouldn’t invest to build software for taxes, because it already exists and for the majority of Americans, if not all, free already exists. The government spending taxpayers’ money to create software that already exists doesn’t make any sense so those are the two big things that we have advocated for. And the reality is, every year, in some way, shape, or form, with additives of legislation, we unintentionally make the tax system a little bit more complicated. Right. That’s the constituent answer, isn’t it? Everyone is a constituency for their pet part of the tax code, and so it just never changes. SG: That’s right, that’s exactly right. From the consumer perspective, where does Credit Karma fit in this? Which, also by the way, has its own tax product. Is this just a realization, “TurboTax is a very high-margin business”, but at the end of the day, what’s the link? Are you cannibalizing yourself? To what end? SG: Let me maybe just step back and give you the strategic context very, very briefly. So I’ve run all parts of the company before I stepped into this role almost eight years ago in January. And when we declared our strategy, which was, in essence, an AI-driven expert platform with three big bets — which I can briefly get into in a moment — there was a couple of big from-tos. One, I wanted to shift the company from just being a tax and accounting platform to a company that was a platform company that helped businesses from lead to cash and helped consumers from credit building to wealth building, because I felt that, over time, one, just being tax and accounting was too small of an addressable market. And two, every business that I ran — both tax and our business group — the biggest thing I would hear from customers, our TurboTax customers would be, “Why can’t you help me grow my refund?”, “Why can’t you help me, with all the data that you have, connect me to financial products that are right for me?”, “How come you can’t give me immediate access to my refund?”, I would hear a lot of that, and nothing about, “Make your tax product better”. And when I went to the business group, all I would hear is, “I don’t really care about books and accounting, I have to do it”, and my accountant tells me, “I have to do it”, but, what about getting customers? What about managing my cash? What about helping me with whether or not I should buy inventory? So that’s the learning that I had that informed, we got to shift from just tax and accounting to an end-to-end platform company. We invested a lot in building out the platform, but I felt like there were a couple of acquisitions we needed to make and so now, to answer your question around Credit Karma — Credit Karma has like 45 million monthly active users that engage more than five times a month — taxes, once a year. So what I wanted to do is buy the platform and then integrate them to have one consumer platform where you can manage your money, do your taxes, and get access to financial products that are personalized based on your data that are right for you. That was the reason behind Credit Karma, to really create a consumer platform because the hope was, and we’re executing against that, that the more I can engage you throughout the year, the more you’re also compelled, based on everything that I know about you, to get you the biggest refund and for you to do your taxes with us and that was the reason behind the Credit Karma acquisition. Credit Karma’s ace in the hole is, it’s credit, right? People want to know what their credit score is, monitor their credit. Has that always been its biggest benefit, is customer acquisition ? SG: Yeah, that’s the biggest job that it solved, is, “What’s your credit score?”, but then really, when I bought Credit Karma, it was a data and AI platform. We have over 60,000 data points per consumer and based on all the data points, I can connect you — when you need a credit card, to a credit card that’s specifically right for you, versus just sell you a credit card. I’m agnostic, same thing with personal loans, insurance. So now it’s much more than credit score, it’s actually how we connect you to financial products that are right for you, that are personalized, how we help you with getting early access to your refund. It’s credit cards, personal loans, insurance, etc, so it’s now truly — we pretty much do everything for you, except we don’t help you trade stocks. What happens when people just start asking AI for this? Is there an aspect where you finally got to the right consumer business model — it needs to be free, you can get all these affiliate fees by connecting those different services — and then as soon as you finally get that cracked, people are like, “I’ll just ask ChatGPT”. SG: That’s right, this is where we started the conversation — where curiosity and always diagnosing matters so much, so we don’t fall in love with what we’re doing today. Let me answer your question with a perspective and a point of view about the very near future that, listen, may or may not change, but I think it’s important to start there before I answer your question. I believe that we will live in a world where, in some way, shape, or form, agents are doing a lot of the work with you and for you, with your approval and it will make life a lot easier for you. And so whether it’s booking your travel, whether it’s what is the right credit card for you, where you should do your taxes — I believe in a world where agents will do a lot of that work for you and that’s really why we have set out to build a platform where we want to be the financial intelligence layer for consumers, businesses, and accountants. What that means is I want to automate as much of the work for you, and give you intelligence, and carry out the action for you. Because if you think about what we do, we move people’s money, we help them with payroll, we help them with books, we help them with taxes and in the case of our consumer platform, it’s money, taxes, and financial products. That’s why we’ve integrated into a bunch of them — Muse , ChatGPT , Anthropic — because you can ask about, “What credit cards are right for me?”, but ultimately, when you go act on which one is the best one for me, that’s where AI agents, as we do our job right, will call on Credit Karma, will call on TurboTax, to not just give you information. But that’s a tougher spot to be, right? As opposed to most people starting with Credit Karma — where you’re actually the front door, you’re owning the customer relationship — now you’re downstream, you’ve been disintermediated. By the way, I think you’ve had executives say that channel maybe hasn’t been performing as well as you would like, is this a more aspirational goal than a reality? SG: It’s the reality we’re executing. First of all, out of the couple of acquisitions that I’ve done, Credit Karma has really worked out well. Right. I have questions about another one that is also close to me. But we can continue. SG: I am vocal about what works and what doesn’t work, so we can talk about it. But I start there because the whole essence of Credit Karma is really — we’ve executed on the platform strategy, which is create one consumer platform and really own the customer relationship and engagement. That’s the question — you build up this whole platform, and then the whole key component, the acquisition part, what happened? SG: But if you think about the brand that we have, and if you think about the capabilities that we have, we actually have better-intent customers that engage with us now through the LLMs than we did before. Right. So you get fewer customers maybe, but better customers. SG: Better quality and, by the way, not only do they still come to Credit Karma — because Credit Karma is not search-driven, it’s authenticated, it’s an app where we engage the customer. We help you with, “Hey, here’s what’s changing your credit score, here’s a card that’s right for you based on your situation”, so we’re proactively engaging the customer. And if a new customer also wants to ask, “Hey, what’s the best credit card for me”, and this is some of my information, one of the things that we’re getting LLMs to do, first and foremost, is, hey, connect to Credit Karma. Is this the new SEO? Like you need to be the service that the LLM recommends? SG: Yeah, and I think it will be even better. The reality is people now do search in LLMs versus just in Google, but I think one of the things that we’re doing is we’ve built out our experiences and continue to build out our experiences. And this is why, by the way, the OpenAI’s and the Anthropic’s come to us and we have a deep partnership — because we’re executing financial decisions, it’s not just information, it’s people’s money, it’s people’s taxes, and getting it right matters. And so for us, using the word “headless” — being within these LLMs where we get called on as the financial intelligence platform to do the work — is ultimately the way we’re building out our experiences and we think over time, it actually builds out the top of our funnel it actually expands the TAM that we have. Now, that’s yet to be proven over time, but that’s the way we built out our experiences. Presented by I spend a lot of time trying to figure out what is happening to businesses on the internet. What I often find I’m missing is a view across the economy itself. With more than 1.7% of global GDP running on Stripe, working with them means I can bring some of what they’re seeing to Stratechery. They are, in a sense, a barometer of the economy. Take the “SaaSpocalypse”. Earlier this year, nearly a trillion dollars in enterprise software value disappeared amid fears of AI eating its lunch. Stock prices only tell us what investors think will happen, and not necessarily what is happening. In this case, Stripe recently built a SaaS Index using payments data from 72,000 non-AI SaaS businesses. Looking at their actual performance, we can see that while SaaS stocks were selling off, revenue growth was actually accelerating. Year-over-year growth is now over 30%, with some of the fastest growth coming from the youngest SaaS companies. I suspect there are a lot more interesting things hiding in Stripe’s data, and I’m excited about having an excuse to go look for them. We’re going to circle back to a few of those points, but I want to get on the accountant angle. As I mentioned, I’m a longtime QuickBooks customer, the most obvious reason is that is what my accountant wanted me to use. You have a referral program, or you have had one, for accountants. How many of your customers are basically locked in via this channel? I’ve just never really considered anything else, because at the end of the day, I don’t really want to deal with it, and that’s what my accountant wants, is that just the reality for a lot of businesses? SG: By the way, I love where you started the question, because if I could — one minute on what we just rolled out at our Intuit Connect , which is a massive conference for just accountants. And then I’ll answer your question, if I may. Yep, I think it’s very interesting, I was leading to it, so please give me the pitch that you gave just a couple days ago. SG: For sure and we just rolled this out at Intuit Connect with our top accountants there. So, in essence, what we’ve been investing in is a unified financial intelligence platform that serves both sides of the network. One side of the network is accountants, the other side of the network is businesses, and the key is that it’s one unified platform. What does that mean? In shorthand, all the data, all the data models, data ingestion models, all the AI models are all one platform. But the way it shows up for an accountant suite is that the accountant suite helps the accountant manage their firm, manage their work, manage their clients, all in one place and it’s agnostic. If you have QuickBooks customers, other general ledger customers, you can plug it into Intuit Accountant Suite . That’s one side of the network. That’s a pretty significant change, isn’t it, that you’re going to support other ledgers? SG: Significant change, now we’re treating the accountant as a customer, not just as a partner, as a channel. Because in the era of AI, we — and I — had to change our approach to how we innovate for accountants. The other is the business, where not only do we serve the startups and the mid-sized businesses, which is with QuickBooks, but we now have Intuit Enterprise Suite , which is a mid-market suite that helps businesses of several hundred million in size. It’s an AI-native ERP solution that helps a mid-market construction company, wealth management company, architect company, whatever it may be, manage their business. And what we just rolled out at Intuit Connect — I’ll call out three big things. One is Intuit Intelligence , which is, in essence, think Claude or ChatGPT. You can just engage with a chat box if you wish, and you can ask it, if you’re an accountant, you can ask it, “Show me all of my customers and how they compare across profitability and margins for all of my construction businesses, and tell me which ones have their cost out of whack, and how does it compare to their peers”. That’s an example, an illustrative example of our engine doing all the work, but we’re automating the work so we can give you intelligence, which saves accountants. Right now, it’s shifting 30% of their work to advisory versus manual work, because we’re automating a lot of the work. That same capability is available to businesses, where they can just, rather than doing the work across the workflows, automate creating invoices, automate invoice reminders to get paid so a lot of our work around Intuit Intelligence has been around automation and for providing intelligence and insights. The second is we rolled out an enterprise-ready, industry-specific ERP for construction, manufacturing, not-for-profit, which is very disruptive for businesses that outgrow QuickBooks — but now they don’t have to outgrow us, because they’re on Enterprise Suite. Where did they use to go when they outgrew QuickBooks? SG: Typically, they would be either our highest-paying customers and the most pissed off, because they’d outgrow QuickBooks, but they didn’t want to go to the next solution. Right. What would they go to? Like Oracle, or what sort of level? SG: They would go to a NetSuite , as one illustrative example. And for most of these businesses NetSuite is just overkill. And that’s where Intuit Enterprise Suite now really serves an incredibly important sweet spot. And then the last thing we talked about is what I led with, which is Intuit Accountant Suite — now a platform where you can manage your firm, your work, your clients, all in one place and back to your original question of, “I’m using QuickBooks because of my accountant”, well, 65% plus of our customers are “attached” to an accountant, and based on what we’re rolling out, we want that to be 100%, because we see in our numbers the retention of a customer is much higher when they’re using an accountant, because accountants drive success and power their prosperity. Do accountants need you, or do you need accountants? And has that changed? SG: Both, both. I spend 40% of my time with firms — small, medium to large-size firms. And it’s a two-way relationship. And by firms, you mean accounting firms or business firms? SG: Accounting firms. They need us, they need someone — I don’t want to be overconfident — they need someone to help them reinvent themselves in the era of AI. That’s us, that’s what we just rolled out at Intuit Connect, because all of them, if they’re PE-backed, they’re getting a lot of pressure, if they’re not PE-backed, they’re having to compete with firms that are PE-backed. So automation, intelligence, advisory services matters. That’s what we just rolled out. And I need them because it creates a network effect and that really, in the era of AI, is a great place to be when you have a network effect. That’s an actual moat. So is it fair to say your pitch to accountants is basically, “Look, we’re all under the gun here — we’re better off banding together and figuring this out”? SG: Well, if you were to listen to my 25-minute keynote , where I revealed a lot of this product innovation, and you synthesized it and put it in Claude, it would probably tell you exactly what you just said — which is, “You need me, I need you, here’s what the innovation is we’ve done for you and here’s why it’s important”. But does that lead to innovation that actually — is just the reality someone like me is trapped, I’m going to go on with whatever happens and they’re going to figure it out? Or what is the actual threat here, that people just start using AI, the AI companies offer their own services? What are you banding together against? SG: It’s a great question. First of all, if you start with the jobs to be done, and jobs to be solved by businesses — they’re trying to get customers, they’re trying to grow with their customers, they’re trying to understand where their profitability is, they’re trying to get paid, they’re trying to manage their employees. And they’ve got to make sure their accounting and taxes are done right, because clean books. Right. Monopoly on violence — always good to have in your business model. SG: Yes, that’s exactly right. If you start with the jobs to be done, and what’s the role of an accountant? Oh good, that’s one of my questions — what is an accountant’s job? SG: The accountant’s job is to ensure that, one, advisory services — how should you grow your construction company? How should you grow your nonprofit? — making sure their books are clean. Wait, would you have ever said that was an accountant’s job five years ago? SG: No, it’s more important today. And why wouldn’t I have said that? Let’s talk about that. Because I used to run the accounting business at Intuit years ago, this is our pro-tax business, the reality is everything was manual, and all of the time, accountants were spending manually entering data to make sure your books are done right. Now, one of the things we rolled out at Intuit Connect is our agentic books close, where you can upload now your standard operating procedures and processes by firm, because every firm does books differently, and we automate a lot of that. That allows them to spend time on real value-added, “Hey, Sasan, here’s how you should think about growing your business”, “Here’s how many employees you should think about hiring”, “Here’s what inventory you can buy”. Is that a little bit like the mafia helping you? “We’re going to help you close your books”, your books are going to get closed, whether you want them to or not. SG: The reality is, businesses, we see this in our data, and remember, we have 100 million customers, 10 million of them are businesses. Businesses that are connected to accountants, our retention rates and profitability are generally higher. And so this is like real value that accountants provide, and back to your question of what’s different, I think what we’re now doing is making sure that they can run their firm far more effectively by automating and delivering intelligence, so they don’t have to do manual work, so that they can actually do a better job serving the business. And on the other side, we have a platform that the business uses to grow and run their business and it just creates this network effect in ways that I think is beyond, “I need to do manual work and I need to work in the workflow”, to an era of intelligence and insights and how can we grow faster with expected outcomes, where efficiency and profitability must improve because of what’s possible with AI. Are there more or fewer accountants in five years? SG: Fewer, many fewer. And are those accountants actually different people than the accountants today? SG: Well, I think by design, two things in life are true. You die, and you have to do taxes. Right. Is an accountant actually just selling a signature? Is that what they’re actually providing in the future? SG: No, they do a lot more than that, there’s only so much technology can do. Even tomorrow and the day after, as AI advances— SG: First of all, judgment. Closing books — that is really hard. Yeah. By the way, to my listeners, I love accounting. So you’re speaking to the choir here, but you still have to convince me. SG: I didn’t know that, but it’s good that at least this lands with someone that knows accounting. Categorization of all the financial data, making sure that you reconcile everything from a balance sheet to a GL [general ledger], making sure that all the revenues are recognized correctly and in the right categories. There’s a lot we’re doing to automate, but at the end, the judgment of, “Are the books right?”, “Are they clean?”, and then what choices and decisions can you make — that judgment and that intelligence will always, always be important. But I think if you think about a continuum where before it was 90% manual work and 10% judgment and intelligence to eventually, I don’t know when, a year from now, two years from now, it’ll be 90% intelligence and judgment and 10% manual work. I think about it just on a personal level. I had a longtime accountant, who unfortunately retired a couple years ago, and she loved me, she dealt with much larger companies and things. But at the time I was living abroad, I had this very high-cash-flow business. She’s like, “This is so interesting, you present so many weird edge cases and challenges that I’m not used to”, and I almost feel bad for her, because in a world of AI, she would crush it, because she’s exactly the accountant you’re talking about. The question I have, though, is this goes back to you being a generalist. I see someone like you — AI is incredible. I’d be curious to know what, if any, personal AI projects you might be working on because if you’re anything like me, it’s like, this is just so fun — you can do basically anything. That’s not your typical accountant, an accountant is like, there’s the beauty in the numbers, everything has to balance, credits versus debits, and also just a lot of drudgery, actually filling in the forms and making the files correctly, very conscientious, very careful, very high values — all of which seem pretty threatened. That’s why I’m wondering, not just how many accountants will there be, but what does an accountant look like? SG: First of all, there’ll be a lot fewer accountants because of what’s happening structurally, which is PE firms are gobbling them up . Was that happening before AI, or is that a post-AI phenomenon? SG: It was happening beforehand, because there’s just a lot of inefficiency, and PE firms look at that and say, “There’s a lot we can do”, and it’s just accelerating now with what’s possible with AI. I think that’s one reason. I think the other is I believe there will be accountants that are all-in on AI and accountants that are not and those that are not all-in on AI are the ones that are going to be disrupted and won’t be around two to three years from now. So that’s why, in general, I feel like there’s going to be fewer and fewer accountants. But here’s what I would tell you — and listen, you’re an accountant, I spend 40% of my time with them. I’m not an accountant, I just appreciate it. SG: The biggest thing I hear from them is they don’t really like doing debits and credits, they don’t like doing the manual work, and it’s the biggest cultural change they are focused on driving. And a big part of that, that we’re helping them with, is either training their folks, and/or for them to upgrade. I do think there’s going to be a massive change and upgrade of talent, either those that love the manual work are going to realize, “I have to love automation”, not doing manual work, or they’re just going to go get somebody else that will love that work — particularly these folks that are coming right out of college and want to be accountants and want to be CPAs, they’re much more tech-savvy, and they will want to drive automation. I think that’s the change you’re going to ultimately see, and we’re seeing it right now, because the top partners are driving it. If you look at your recent financial results, you’ve been growing revenue amongst your core customers, but barely growing total customers. Now you’re talking about going up-market, like into the accounting workstream, for example. You mentioned with businesses, your recent focus on ERP services. Again, going up-market, between that gap between NetSuite and yourself. All that makes sense. At the same time, you’ve brought up disruption, jobs to be done, you’re a student of this theory. A company going up-market, increasing average revenue per user, even as there’s a technological shift at the bottom that is gobbling up the business there — that sounds like a company that’s being disrupted ? SG: I love your question, I’m glad you’re asking it now versus four years ago. So we declared, in essence, these three bets that I’m talking about eight years ago. And what are those bets? If I were to simplify them, one is to disrupt assisted tax — out of the total tax TAM of $40 billion, $35 billion is assisted taxes — when you go have somebody else do your taxes for you, a human doing it. And it’s the signature that matters. Is the goal there that customers no longer need to hire accountants? SG: I’ll come back to that. So that’s one space. The second big space was shift from tax and accounting only to money, our money benefits and money portfolio being the core of our platform. What does that mean? It means bill pay, it means payments, it means instant deposit. And then the third is go to mid-market. When I declared this nearly seven-and-a-half, eight years ago, investors were very skeptical of me, because what they said was, “These are markets you don’t play in, you could screw up your margins, I’m very skeptical”. If you now fast-forward to where we are — to answer your question — it’s now 30% of the company, so it’s like $7 billion-plus, growing at 30%, we’ve already proven these. So is the answer to the old business is, we’re just going to outrun it with the new business? SG: That’s right. So AI is a huge tailwind for us, because we’ve been investing in it in these areas. The core business is — if you go back to Investor Day and what I just shared, I said, hey, we’re growing 30% of the company, my core business has slowed. I need to increase my market share, so I’m changing my lineup. Right, because isn’t the problem that your core business — maybe it’s not very sexy — but that’s the foundation of your new businesses? SG: That’s exactly right. And so that’s why we, in essence, what we’re doing is reinventing our product, but also being disruptive on price to take market share, while at the same time scaling my big bets because I want to make sure five years from now, we’re a healthy and growing company. Because here’s what I believe will happen with AI in our industry and in the spaces that I play in, AI is a tailwind for me with these big bets — disrupting mid-market, disrupting assisted [tax] — Just because you can develop software more quickly, or what? SG: My biggest differentiation in assisted tax is I have scaled the one thing that matters most, which is the human signature, virtually, at scale and I have a disruptive price. So I can do anybody’s taxes for them at a disruptive price with an amazing virtual experience, where you never have to leave your place of work or home and it’s an amazing experience. The differentiation is I have scaled the human signature because of AI. So that’s an example of — and my competitors are a lot of mom-and-pop shops and so scaling that for the next 10 years. You were saying “the signature”, are you talking about actual accountant signatures, or are you talking about, like, the TurboTax product where you’re actually— SG: We have about 18,000 experts that are CPAs, accountants, on our platform and those are the ones that are virtually doing people’s taxes for them. Got it, got it. So that’s a separate pool than your accountant business, I was conflating them in my head. SG: That’s right. I mean, the accountants that we’ve been talking about for the last 45 minutes are accountants that, they don’t even want to mess with somebody’s tax return unless it’s greater than $6,000, we don’t compete with them, we’re helping them grow their business. These are much more the normal Americans and the taxes that they pay. The reason I think we got on this topic is, for me, that’s a huge tailwind, AI is a tailwind to disrupt those industries. But I think for the lower end of the market, AI can help you reinvent experiences but if you’re not priced right, you’re going to get disrupted and that’s really what I’ve done. In the low end of the market, I’m reinventing experiences, but I’m adjusting my price-to-value ratio, so I can win these customers when they first come into the market, and then I can grow with them over time. I do have to ask you, because I hinted at it before — you acquired Mailchimp for $12 billion in 2021, a company that I originally worked with and left in part because I feel they send email people don’t want, and I send email people do want. The idea was extending QuickBooks from accounting into customer acquisition, that platform stopped growing, you’re segmenting it off , is that an acquisition that didn’t work out? SG: First of all, legendary brand, legendary product, legendary employees — full stop. I’ll come back to that in a moment. What we want to do hasn’t changed, the customer problem of helping customers grow has not changed, and so now we’ve built that AI natively within QuickBooks. Right, but you said before you’re building a money platform. Is the issue that Mailchimp doesn’t have anything to do with money, at least directly? It’s a secondary input. SG: Growing customers has everything to do with money, because eventually, they have to pay. So when I say “money”, it is, in fact, owning the right to the workflows that lead to money — which is why solving the problem of getting customers, which is what Mailchimp does, is something we’ve built out AI-natively within QuickBooks. But to your point, we have carved out — I don’t think we’ve executed well on Mailchimp, so we’ve carved it out separately to really focus on getting the business right and making sure it’s transparent how we’re performing externally and as I’ve said to investors and our employees, all options are on the table to make sure that it has the right future. All right, I want to get back to the more interesting question, because we’re almost at time here. To go back, to put this together historically — you went through one big business model change, from package software to subscriptions. What does the business model look like in 10 years? People talk about usage-based, outcome-based pricing — you’re not necessarily seat-based , so that’s a big advantage for you, you also have the affiliate marketing angle on your consumer side. What’s the core way that Intuit makes money in the long run, and is that going to be fundamentally different? SG: Three things I will say. One, first of all, you’re absolutely right — we’re not seat-based, so let’s get that foundation confirmed by me, that we’re not seat-based. I’ll say three things. The way we’re set up today is, we’re beyond user-paid, so the entire Credit Karma platform — everything for the user is free, but we get paid based on all of our partners on our platform, so that’s one business model. The other business model is subscription-based, which is our business platform is subscription-based — about 80%, 90% of it. The third is we’re transaction-based. Right. You file your taxes, you pay a certain amount of money. SG: That’s right. Or you invoice, and we get paid, a customer gets paid, that’s transactional. So those are the three models in which we operate today. If I were to answer your question five years from now, three years from now, not just 10 years from now, I think what will get added to that is consumption-based. SG: For instance, a lot of what we just rolled out at Intuit Connect is, if an accountant uses certain agentic capabilities, like creating specific tailored experiences for a construction company, and that construction company pays the accountant more for those services, which they will — we have the opportunity to monetize that consumption. Is that monetization — is that usage-based, or do you envision outcome-based pricing ? I mean, you are dealing with money. SG: No, no, it’ll be usage-based. Is there room for an outcome-based pricing model in any of this? SG: You know, there could be — I don’t want to fixate on “yes or no”, we test a lot of this with customers. What I would tell you — customers today, doesn’t mean tomorrow won’t change — generally, customers aren’t that interested in outcome-based pricing. They’re generally not interested in token-based pricing, because then they can’t control what they’re going to end up paying, so they still want an element of fixation of what I’m going to pay. Predictability, yeah. SG: That’s right. I think three years from now, the value of what they’re willing to pay for in certain markets will go up. In certain markets, it could go down. But I believe in three years, we’ll still have beyond user-paid, we’ll still have transactional, we’ll still have subscription, and I think there’s going to be a smaller element — and growing — that will be consumption-based. Do you feel like you’re on offense or defense? SG: Every day, we’re focused on playing offense and every day, I open my email to see what was launched yesterday, to figure out where we need to play defense. Very good. Sasan Goodarzi, thanks for coming on to Stratechery. SG: All right. Thank you for having me. This Daily Update Interview is also available as a podcast. To receive it in your podcast player, visit Stratechery . The Daily Update is intended for a single recipient, but occasional forwarding is totally fine! If you would like to order multiple subscriptions for your team with a group discount (minimum 5), please contact me directly. Thanks for being a supporter, and have a great day!

0 views
Kev Quirk 2 days ago

BAITED

Author: RR Haywood Genre: Thriller Released: 07 September 2026 Rating: ★★★★☆ Find Ollie Perkins. There’s just one problem. Mike isn’t allowed to ask anyone about him. He can’t say his name. He doesn’t know what he looks like. So Mike takes a job as a security guard at a highly secure data facility on the edge of town and waits. Then things start happening. Lies get told. A body turns up. Foreign agents begin circling. Mike realises he's being watched and that he's not the only one looking for Ollie Perkins. The pressure soon mounts. Mike needs to find the target before more people die. BAITED is the third Mike Humber novel. A very different kind of British crime twist-loaded, contemporary, darkly funny, unpredictable and built around an ex-detective who survives largely through instinct, guile and an increasingly questionable relationship with authority. Learn more on Goodreads ➡ I'm growing to really enjoy the Mike Humber series. As Haywood develops the books, and Mike's character, we get more of an insight into the inner workings of his frankly, completely fucked mind. I've read a number of Haywood's books at this point and he's quickly becoming one of my favourite authors. His British whit and the way he writes is a breath of fresh air - it's nice to read someone who gets British sarcasm, but also dark humour. All the Mike Humber books end in a crescendo where seemingly unrelated threads come together in a really satisfying way. I'm yet to predict any of the endings too, which is makes the stories all the more enjoyable. Cracking read. Thanks for reading this post via RSS. RSS is ace, and so are you. ❤️ You can reply to this post by email , or leave a comment .

0 views