Latest Posts (20 found)

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

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

Want to Rent an Internet Address at the White House?

Several staffers at the White House are using computers or mobile devices equipped with residential proxy services that render their internet address available for others to rent, security experts warned today. One of the proxy services is a Russian company whose founder’s web hosting business was ground zero for cyberattacks against election systems in Arizona and Illinois in 2016. The security firm Layer3 Intel said it detected multiple residential proxy nodes beaconing out from the internet address network reserved for the Executive Office of the President ( AS2650 ). Layer3 said the proxy activity was relatively persistent between October 5 to November 3, and that a review of the proxies available from AS2650 showed they exited from the White House network 236 times during that period. The proxy tracking company Synthient said on Twitter/X that the activity it saw coming from AS2650 was related to multiple Windows 11 installations of a service called Infatica , a proxy program that is often integrated into “free” mobile and desktop applications . Infatica’s founder Vladimir Fomenko is a Russian man whose hosting firm King Servers was home to six of the eight internet addresses used by Russia’s state security services to compromise databases for election systems in Arizona and Illinois in 2016. Synthient’s depiction of the frequency of outgoing proxy traffic from the dedicated White House network (AS2650). Click to enlarge. There are dozens of residential proxy providers with varying degrees of legitimacy, many of them based in China or Russia. But at a minimum, they all make it simple for customers to rent someone else’s internet address as a way to anonymize their web traffic or spoof their true location. From a website’s perspective, the traffic from a proxy network user appears to originate from the rented IP address, not from the proxy service customer. Layer3 Intel said the proxy exit nodes at the White House came from six internet addresses, on 26 of the 30 days, and that most of the activity happens in the evening, between 5 p.m. and midnight. Incredibly, Infatica was not the only proxy service that reportedly has been reselling access to White House internet addresses: Layer3 Intel said it found 28 separate residential proxy services were able to exit through this network . “This is public access,” the Layer3 Intel team wrote . “Anybody can obtain it by signing up to a public residential proxy service, paying a few dollars and sending requests through it. We did not selectively target this network or try to make our probes exit from it. We caught this by chance, simply by requesting global rotating access through these services.” The White House did not immediately respond to a request for comment. As detailed in several stories here over the past year, residential proxy services are a major source of unwanted and often malicious traffic, including account takeover and other cybercrime activity, advertising fraud, and mass content scraping for AI projects. They can also introduce serious security risks. In late 2025, it was discovered that cybercriminals were mass exploiting a widespread vulnerability in these services that allowed them to probe each proxy endpoint’s local network for vulnerable systems to infect with malware. In January 2026, dozens of proxy services were forced to patch their networks after Synthient Founder Ben Brundage showed how cybercriminals were abusing a vulnerability in these residential proxy services to seize control over devices inside the local networks of unsuspecting users. “Some of these resellers sell bandwidth for as low as 60 cents a Gigabyte, that means for less than a dollar you can gain access into some of the most confidential and trusted networks,” Brundage told KrebsOnSecurity. “The reseller ecosystem further enables this with any criminal able to buy access while skipping KYC [Know Your Customer] processes.” All too often, these proxy services are beaconing out from employee devices brought into the workplace. App developers can embed software development kits (SDKs) provided by the residential proxy networks to monetize their software, allowing them to receive a small amount of money on each installation. As risky as residential proxies can be for unsuspecting end users, they are all too commonly found on government and corporate networks. In a webinar in January 2026, the proxy tracking service Spur found residential proxies in nearly 300 government owned and operated networks, 318 utility companies, 166 healthcare companies or hospitals, and 141 companies in banking and finance. In a blog post earlier this year, the security firm Infoblox said it discovered that fully 65% of its customer base was querying one or more residential proxy related domains.

0 views

Go ahead, change that number in the URL of that service that you use

Last month, I learned that it’s apparently not common behavior in computer users to start fiddling with the URL of a link that they receive, just to see what happens. “It wouldn’t even come to my mind to do that!” was one reaction. And that’s how I ended up discovering a vulnerability on a service that I personally used. Unlike most security vulnerabilities that get reported nowadays, it didn’t take me a fleet of token-thirsty LLM-based agents to get the job done. I just noticed that the e-mail with my order had a number in it, it served as a share code, and then I began iterating it a few times to see what happens. Plain old human curiosity. Then a few numbers later I stumbled upon someone else’s account. I let the company know about the issue politely and with detail and potential mitigations, and after a week of back-and-forth, they actually implemented the fixes that ensure that both old orders and any future ones are now appropriately handled, minimizing the risk of a data leak and potential malicious actions on behalf of other customers. Before you take the title of this post literally, there are a few basics to follow to get it right: Depending on your jurisdiction, there may also be other things to pay attention to. This is not legal advice. You don’t need to hack the world, but if you notice an obvious issue in passing, then it’s worth putting in that little bit of effort to make the security world a better place, especially if it’s a service that you use, since your personal data is also stored on there. This type of vulnerability is unfortunately super common and almost every software system that I’ve helped build and maintain has exhibited this in one way or another. I suspect with the onslaught of low-quality LLM-written code, it may be even more common because LLM-s can very easily introduce these issues unless you take steps to weed this behavior out or introduce explicit rules that try to mitigate common vulnerabilities in new code. Happy responsible hacking! be curious but not actively malicious once you have validated a hunch, STOP and report the issue, you don’t need to pull the whole customer database to prove a point try to prove the vulnerability with two test accounts that you control to avoid exposing someone else’s actual private information, intentionally or accidentally if you can’t find any contact details or get ignored, loop in your local regulator who deals with cybersecurity matters, such as CERT-EE in Estonia they do good work and alerted me of a now-shutdown public Kiwix instance that had a security flaw back in 2023!

0 views
Unsung Today

“Everybody loves a good underdog story.”

A fun video from Vidya James about a specific moment in The Legend of Zelda: Majora’s Mask on Nintendo 64 that starts with a bug (similar to this thing we talked about once ), and ends with a fun effort to find the perfect conditions to put that bug to some good use: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/everybody-loves-a-good-underdog-story/yt1-play.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/everybody-loves-a-good-underdog-story/yt1-play.1600w.avif" type="image/avif"> This is in some way adjacent to the Mega Man glitch story , and also the Quake speedrun story , but there’s a few different angles here: statistics, brute forcing, and code analysis. But I also feel like this in a strange way talks not just about perseverance, but also the value of… prototyping, maybe? Some people can see in their mind’s eye a faraway goal and aim for it. For others, seeing a smaller step succeed opens up their horizons: “If this worked… what if we aimed for something even further next?” This video has a few of these moments, but I don’t want to spoil it.

0 views

“It Gives Great Demo”

There’s that famous video of Steve Jobs explaining why they don’t didn’t make touchscreen MacBooks: We thought about [a touch screen MacBook] years ago. We’ve done tons of user testing on this and it turns out it doesn’t work! Touch surfaces don’t want to be vertical. It gives great demo. But after a short period of time, you start to fatigue. And after an extended period of time, your arm wants to fall off. It doesn’t work. It’s ergonomically terrible. Touch surfaces want to be horizontal […] that’s why we’ve perfected our multitouch trackpads over the years. I’m not going to weigh in on the new MacBooks. But what I find specifically intriguing in this video — and broadly relevant — is that phrase: “It gives great demo.” Damn, that is a great line for so much of technology. “It gives great demo.” Something that looks amazing when it’s presented to you, but in practical day-to-day use you discover, “Actually this is kinda terrible.” Demo is everything nowadays. Whatever can garner attention. Who cares if it works in practice, does it give great demo? Because demo time is sale time. The purpose of a demo is to get your attention. To make you think about the product and that it exists. But a great product often makes you forget it exists at all. It seems like a paradox: we’re attracted to what stands out, but we become enamored with what disappears. Of course, this doesn’t just apply to products. People can give great demo, too. You can make a whole career out of just giving great demo. Reply via: Email · Mastodon · Bluesky

0 views

Building Barista—Part 1

☕ Welcome to The Coder Cafe! A few weeks ago, I built Barista : describe what you like to read in your own words, and every day it emails you a few posts worth your time, picked from hundreds of engineering blogs, Hacker News, Lobsters, and arXiv. This is the first part of a series on how it works: not a tutorial, but the decisions behind a real system I built and run in production. This week, we explore its architecture. You’ll see how embeddings turn meaning into geometry, how a decision model judges what’s actually worth your time, and how a single Postgres can be a queue, a scheduler, and a vector database, with no message broker in sight. Get cozy, grab a coffee, and let’s begin! Problem When I started as a software engineer (10+ years ago), my daily routine was to go through Twitter and read every single post from the people I followed since the day before. I could also consistently read every post in my small RSS feed. I was happy with my tech watch, and I was consistent. Fast forward to today: there’s been an absolute explosion of information . Twitter now defaults to “For you”, so my feed is infinite. Meanwhile, my RSS reader currently shows 1,457 unread posts. There’s just too much, all the time. I created The Coder Cafe to solve this exact problem. My initial idea was to write one post a day, so that readers could learn one thing every day. The original newsletter’s description said it all: Feeling overwhelmed by the endless stream of tech content? At The Coder Cafe, we serve timeless concepts with your coffee, every day. Then things changed (👶), and I couldn’t keep up with one post a day anymore, so I switched to a more sustainable pace. In doing so, I lost the initial premise: helping people read less while still reading quality content. I’d given up on that idea until… recently. A few weeks ago, I started looking for ways to improve my tech watch (yet again). One of the tools I found was devdigest.io . However, its sign-up page looked like this, asking me which topic I wanted to subscribe to: I don’t know about you, but for me it doesn’t work. What if, instead of “Software engineering”, I want to be more specific and say I love this or that language? Or that I love posts about testing? There was no way to do that. I kept looking, but never found what I wanted. So I started building it . I originally built Barista for myself. The initial idea was simple: let it fetch lots of content from the web. Then I would just give it a prompt describing my interests, in my own words. For example: I’m a senior SRE and Go engineer. Show me deep, technical content on: Programming: programming concepts, unit tests, etc. Go: performance, profiling, latency, runtime internals Systems fundamentals: Linux internals (processes, memory, I/O), databases, Postgres, etc. Kubernetes internals: controllers/operators, reconciliation, kube-apiserver, edge and fleet-scale rollouts Reliability & SRE: safe rollouts, disruption management, resiliency, incident analysis, etc. Prefer: first-principles explanations, architecture write-ups, benchmarks with data, lessons from production. Skip: beginner tutorials, listicles, framework hype, marketing posts, generic AI news. From there, the system filters out everything outside my interests, plus spam, low-quality content, etc. Then, it sends me one email a day with a few posts. After using it for a while, I thought: if I enjoy it this much, why not turn it into a product and see if others like it too? Want to see what it picks for you? Write your own brief , and your first email lands in seconds, no account needed. In this first part, let’s look at how it works under the hood and at the main decisions I made along the way. At a high level, Barista is built as a pipeline: It has two halves, and they work very differently. The left half is about posts . Ingest, fetch, classify, and embed run all day long, and each post goes through them exactly once, no matter who ends up reading it. A post is downloaded once, classified once, and embedded once, whether it ends up in zero inboxes or a hundred. Each stage hands posts to the next through a queue. The right half is about users . Match, rank, and send run once a day per user, and there’s no queue here: what drives them is the clock. Each user picks a send hour, and the system works back from it. Match runs two hours before, rank one hour before, and send right on time. The stages are the following: Ingest: Polls the sources and records each new post’s URL. A URL it has already seen is skipped, so each post enters Barista only once. Fetch: Downloads each post’s page and extracts its title, author, date, and text. A post is dropped if the page can’t be read, isn’t in English, or is too short, for example. It also respects and never hits the same site more than once every couple of seconds. Classify: Asks an LLM what the post is: its topic, how deep and how good it is, and whether it’s spam or a paywall teaser. Anything off-topic, spammy, or low quality is dropped here. Embed: Turns the post into a vector, a list of numbers capturing what it’s about (more on that below). From here, the post becomes a candidate for every user. Match: Two hours before a user’s send time, it takes the user’s interests (embedded into the same space when they saved them) and finds the recent posts whose vectors are closest. The closest ones become that user’s backlog. Rank: An hour before send time, an LLM grades how well each new post in the backlog fits the user’s interests, taking their recent votes into account. The best-graded posts are picked for the day. Send: At the user’s chosen hour, sends the email with the day’s picks, each with “More like this” and “Less like this” buttons. That feedback flows back into future rank runs. So how do these stages talk to each other? Through Postgres. When we hear “a pipeline of stages”, the reflex might be to reach for a message broker: Kafka, RabbitMQ, maybe Redis streams. That was my reflex too. Yet going against my instincts, Barista doesn’t have one: every arrow in the diagram is Postgres. Queues are tables. In the per-post half, each stage drains a table filled by the previous one. Ingest writes new URLs into , fetch drains it and writes into , and so on down the line. Several workers process a stage in parallel, and each claims its next row like this: locks the row so no other worker can take it. means the other workers don’t wait on it; they move on to the next free row. That’s a work queue in one SQL clause. Retries and dead letters are just data too. A row that fails gets a timestamp and is retried later, with a backoff that starts at 5 minutes and doubles up to 6 hours. After 10 failures, about a day in, it’s moved into a table with the reason, so one broken page never blocks the posts behind it. Schedules are columns. The per-user half keeps its schedule on the user row, in three timestamps: , and . Each stage picks up the users whose timestamp is due, does its work, and moves its timestamp to the next day. Each stage also waits for the previous one: rank only handles a user once match has moved that user’s into the future, meaning “match is done for today”. So there’s no scheduler service or workflow engine to run. Each stage just queries for the users who are due. Each stage is a short-lived job. A stage is a small program started on a cron. It wakes up, processes whatever is due, and exits. Nothing runs, and nothing costs anything, between runs. So why not Kafka? In the end, running a personal project is also about being pragmatic, and three reasons won me over. First, scale. Barista processes a few hundred posts a day, not millions of events per second. Kafka shines at throughput I simply don’t have, and it would be one more system to run, monitor, and pay for, next to a database I need anyway. Second, and that’s the reason I care about most: the queue and the data live in the same transaction. When fetch processes a post, claiming the row, saving the extracted text, and queuing the post for the next stage all happen in one transaction. Either everything commits, or nothing does. If the job crashes halfway, the transaction rolls back, the row is unlocked, and the next run picks it up as if nothing happened. With a broker, that’s much harder. We write to the database, and we acknowledge a message (or publish one), two systems that can’t commit together. Crash between the two, and we either lose work or do it twice. Solving that properly is a whole topic on its own (the transactional outbox pattern exists precisely for this). With everything in Postgres, the problem just doesn’t exist (or barely). Third, everything is queryable. A post’s whole journey, from the URL ingest found to the email it ended up in, is a set of rows. For example, “Why didn’t this post reach anyone?” becomes an SQL query. All of this runs on a single Cloud SQL , Google’s smallest tier: a shared CPU and 614 MB of memory, for about $8 a month. Will it be enough forever? Probably not. But when it isn’t anymore, I’ll have a good problem, and I’ll know exactly which part to move out first. Choosing Postgres is not entirely free, though. In some stages, that transaction stays open during the network call (downloading a page, asking the LLM), which holds a lock and a database connection the whole time. It’s a tradeoff I’ll come back to in a future post, because it bit me once. Postgres has one more role I haven’t mentioned yet: it’s also my vector database. Postgres has one more job, and it’s the one that makes Barista work: finding the posts that fit what a user wrote in plain English. Here’s the problem. On one side, thousands of posts. On the other, a user who wrote a paragraph about what they like. How do we match the two? The naive answer is keyword search: look for posts containing “Go”, “Kubernetes”, “Postgres”. It breaks quickly. A great post about MVCC might never write “Postgres” in its title. A post that mentions “Go” five times might be about the board game. Keywords capture words, not meaning. That’s what embeddings solve. An embedding is a list of numbers representing a piece of text. In Barista, each post becomes a list of 1,024 numbers, computed by an embedding model from the post’s title and text. On their own, those numbers mean nothing to a human. There’s no “number 42 means Postgres”. What matters is where the list sits compared to the others. Think of each list as the coordinates of a point, not on a 2D map but in a space with 1,024 dimensions. The model was trained on huge amounts of text with one goal: texts that mean similar things should end up close to each other in that space, and unrelated texts far apart. So a post on how Postgres implements MVCC and a post on transaction isolation levels land near each other, even if they barely share a word. And the post about Go the board game lands far from the one about goroutines, even though both say “Go” all the time. “Close” is measured with cosine distance. Roughly, it’s the angle between two vectors: a small angle means similar meaning, a large one means unrelated. Now here’s the trick: your interests are embedded too, into the same space. When you write “I love posts about Go performance, profiling and runtime internals”, that sentence becomes a point, just like the posts. Finding posts for you becomes a geometry problem: which posts are the closest points to your interests? Two details make it work well in practice: Posts and interests aren’t embedded the same way. A post is embedded as a document ; the interests as a query . A two-line description of what you want doesn’t look like the long article that answers it, and embedding models handle this asymmetric case explicitly. A prompt with several interests is split. My own prompt covers Go, Linux internals, Kubernetes, and reliability. As a single vector, it would land somewhere in the middle of all of them, close to none. So Barista has an LLM split the prompt into separate interests, embeds each one, and looks for posts close to any of them. This is where pgvector comes in. It’s a Postgres extension that adds a column type and distance operators. Embeddings are stored in a plain table, next to everything else, and finding the closest posts is a SQL query. Simplified: is pgvector’s cosine distance operator. And that query is why I didn’t reach for a dedicated vector database. The search also has to filter. I want the closest vectors among posts from the last 30 days, never offered to this user before, not from a site they blocked, and preferably one per site. Every one of those filters is regular data that already lives in Postgres. With a separate vector store, I would have to copy that data there and keep it in sync, or search broadly and filter afterwards. With pgvector, it’s one clause. Embeddings tell Barista what a post is roughly about. They can’t tell whether it’s any good, whether it’s spam, or whether it’s actually what you want to read today. For that, Barista uses a decision model: Jev by TypeSafe . It reads natural language, but it doesn’t write any. It only answers questions. So instead of a prompt and some free-form text back, we send it two things: A state: The data to judge, as JSON Questions: Each with a type that defines the shape of the answer There are three question types: Choice: Pick one option from a list we provide Score: Pick a level on a scale we describe (2 to 10 ordered levels) Noul: A yes/no question, answered as a probability And the answers come back typed too. So I can skip the “ please answer in valid JSON ”, the regex on the output, and the retry when the model decides to add a friendly sentence first. Another detail I love: a score answer is probability-weighted, so instead of 2, we get something like 2.37. That’s a lot more useful when we need to compare and threshold things. Barista asks Jev questions in two places. Every post that gets through fetch is sent to Jev once, with multiple questions: Domain ( choice ): What is the primary domain of this post? Depth ( score ): How technically deep is this post? Quality ( score ): How well-written and substantive is this post? Paywall teaser ( noul ): Is this a paywall teaser? Spam ( noul ): Is this spam? The rules are implemented in plain Go. For example, spam probability above 0.7? Dropped. The point is to filter as early as possible. A post dropped here costs a fraction of a cent once, and then never costs anything again: no embedding, no grading, for any user. And the answers are stored, so the topic, depth and quality feed the later stages. This is where Jev does the real work. Match gave each user a short list of candidates, found cheaply with embeddings. Now Jev grades each one with a single question, “How well does this post fit the user’s interests?”, on four levels: Poor fit: largely unrelated to the user’s stated interest Weak fit: tangentially related but not a strong match Good fit: clearly matches the user’s stated interest Excellent fit: a standout match, exactly what the user is looking for The state holds the user’s prompt, the candidate (title, description, the opening of its text, plus classify’s topic, depth, and quality), and the user’s last five days of 👍/👎 votes, with comments if they left any. So “fewer AI posts, please” really does change what gets picked. A design decision I didn’t expect to make: I grade each candidate in its own request. My first version sent the whole backlog in one request and asked Jev to grade everything at once. It was cheaper in calls, but the grades were unstable. Jev judges each question against the whole state, so the other candidates in the request acted as distractors and shifted each other’s grades. The same post could be “Good” on Monday and “Weak” on Tuesday, just because of its neighbors. Graded alone, a post’s grade only depends on the post and on you. That makes it stable, and since it’s stable, it’s worth keeping. Each grade is stored and reused for as long as the post stays in your backlog. A post is only graded again if you leave new feedback, since your votes might change the verdict. Then picking is simple: the best-graded posts win. For a small email, a post needs at least “Good” to be picked. The one exception is the day’s best candidate, so you always get at least one post. Barista would rather send you two great posts than pad the email with a third mediocre one. If we step back, the split looks like this: Match (embeddings): from thousands of posts to a short list. Cheap, fast, approximate Rank (Jev): from that short list to the few posts in your email. Slower, costs money per call, precise To summarize: Embeddings answer “what is this roughly about?” Jev answers “is this actually good for you ?” So far, this sounds like a reasonable little system. Here’s what I left out. Barista also has: About 23,000 lines of Go, and 31,000 more lines of tests (yes, more test code than code). 22 alerts and nearly 50 custom metrics. An AI on-caller to triage alerts. A TLA+ spec, model-checked, to make sure nobody gets two emails a day. A randomized simulation that replays days of pipeline life on a fake clock. A chaos test that throws 1,000 simultaneous users at a database the size of a Raspberry Pi. All of that for… currently 5 users . Over-engineered? Probably 😁. But it makes for good material for a series. Each item on that list comes with a story, and some of them surprised me. Starting next week with the first one: how I tried to prove that nobody gets two emails a day, and my test failed on its very first run. In the meantime, if you want to see what this pipeline picks for you, give Barista a try. Describe what you like to read, and your first email lands in your inbox in seconds. It’s free (one post a day), and every new account gets 7 days of the paid plan to try more. Problem When I started as a software engineer (10+ years ago), my daily routine was to go through Twitter and read every single post from the people I followed since the day before. I could also consistently read every post in my small RSS feed. I was happy with my tech watch, and I was consistent. Fast forward to today: there’s been an absolute explosion of information . Twitter now defaults to “For you”, so my feed is infinite. Meanwhile, my RSS reader currently shows 1,457 unread posts. There’s just too much, all the time. I created The Coder Cafe to solve this exact problem. My initial idea was to write one post a day, so that readers could learn one thing every day. The original newsletter’s description said it all: Feeling overwhelmed by the endless stream of tech content? At The Coder Cafe, we serve timeless concepts with your coffee, every day. Then things changed (👶), and I couldn’t keep up with one post a day anymore, so I switched to a more sustainable pace. In doing so, I lost the initial premise: helping people read less while still reading quality content. I’d given up on that idea until… recently. A few weeks ago, I started looking for ways to improve my tech watch (yet again). One of the tools I found was devdigest.io . However, its sign-up page looked like this, asking me which topic I wanted to subscribe to: I don’t know about you, but for me it doesn’t work. What if, instead of “Software engineering”, I want to be more specific and say I love this or that language? Or that I love posts about testing? There was no way to do that. I kept looking, but never found what I wanted. So I started building it . Introducing Barista I originally built Barista for myself. The initial idea was simple: let it fetch lots of content from the web. Then I would just give it a prompt describing my interests, in my own words. For example: I’m a senior SRE and Go engineer. Show me deep, technical content on: Programming: programming concepts, unit tests, etc. Go: performance, profiling, latency, runtime internals Systems fundamentals: Linux internals (processes, memory, I/O), databases, Postgres, etc. Kubernetes internals: controllers/operators, reconciliation, kube-apiserver, edge and fleet-scale rollouts Reliability & SRE: safe rollouts, disruption management, resiliency, incident analysis, etc. After using it for a while, I thought: if I enjoy it this much, why not turn it into a product and see if others like it too? Want to see what it picks for you? Write your own brief , and your first email lands in seconds, no account needed. In this first part, let’s look at how it works under the hood and at the main decisions I made along the way. Pipeline-Based Architecture At a high level, Barista is built as a pipeline: It has two halves, and they work very differently. The left half is about posts . Ingest, fetch, classify, and embed run all day long, and each post goes through them exactly once, no matter who ends up reading it. A post is downloaded once, classified once, and embedded once, whether it ends up in zero inboxes or a hundred. Each stage hands posts to the next through a queue. The right half is about users . Match, rank, and send run once a day per user, and there’s no queue here: what drives them is the clock. Each user picks a send hour, and the system works back from it. Match runs two hours before, rank one hour before, and send right on time. Ingest: Polls the sources and records each new post’s URL. A URL it has already seen is skipped, so each post enters Barista only once. Fetch: Downloads each post’s page and extracts its title, author, date, and text. A post is dropped if the page can’t be read, isn’t in English, or is too short, for example. It also respects and never hits the same site more than once every couple of seconds. Classify: Asks an LLM what the post is: its topic, how deep and how good it is, and whether it’s spam or a paywall teaser. Anything off-topic, spammy, or low quality is dropped here. Embed: Turns the post into a vector, a list of numbers capturing what it’s about (more on that below). From here, the post becomes a candidate for every user. Match: Two hours before a user’s send time, it takes the user’s interests (embedded into the same space when they saved them) and finds the recent posts whose vectors are closest. The closest ones become that user’s backlog. Rank: An hour before send time, an LLM grades how well each new post in the backlog fits the user’s interests, taking their recent votes into account. The best-graded posts are picked for the day. Send: At the user’s chosen hour, sends the email with the day’s picks, each with “More like this” and “Less like this” buttons. That feedback flows back into future rank runs. First, scale. Barista processes a few hundred posts a day, not millions of events per second. Kafka shines at throughput I simply don’t have, and it would be one more system to run, monitor, and pay for, next to a database I need anyway. Second, and that’s the reason I care about most: the queue and the data live in the same transaction. When fetch processes a post, claiming the row, saving the extracted text, and queuing the post for the next stage all happen in one transaction. Either everything commits, or nothing does. If the job crashes halfway, the transaction rolls back, the row is unlocked, and the next run picks it up as if nothing happened. With a broker, that’s much harder. We write to the database, and we acknowledge a message (or publish one), two systems that can’t commit together. Crash between the two, and we either lose work or do it twice. Solving that properly is a whole topic on its own (the transactional outbox pattern exists precisely for this). With everything in Postgres, the problem just doesn’t exist (or barely). Third, everything is queryable. A post’s whole journey, from the URL ingest found to the email it ended up in, is a set of rows. For example, “Why didn’t this post reach anyone?” becomes an SQL query. Posts and interests aren’t embedded the same way. A post is embedded as a document ; the interests as a query . A two-line description of what you want doesn’t look like the long article that answers it, and embedding models handle this asymmetric case explicitly. A prompt with several interests is split. My own prompt covers Go, Linux internals, Kubernetes, and reliability. As a single vector, it would land somewhere in the middle of all of them, close to none. So Barista has an LLM split the prompt into separate interests, embeds each one, and looks for posts close to any of them. A state: The data to judge, as JSON Questions: Each with a type that defines the shape of the answer Choice: Pick one option from a list we provide Score: Pick a level on a scale we describe (2 to 10 ordered levels) Noul: A yes/no question, answered as a probability Domain ( choice ): What is the primary domain of this post? Depth ( score ): How technically deep is this post? Quality ( score ): How well-written and substantive is this post? Paywall teaser ( noul ): Is this a paywall teaser? Spam ( noul ): Is this spam? Poor fit: largely unrelated to the user’s stated interest Weak fit: tangentially related but not a strong match Good fit: clearly matches the user’s stated interest Excellent fit: a standout match, exactly what the user is looking for Match (embeddings): from thousands of posts to a short list. Cheap, fast, approximate Rank (Jev): from that short list to the few posts in your email. Slower, costs money per call, precise Embeddings answer “what is this roughly about?” Jev answers “is this actually good for you ?” About 23,000 lines of Go, and 31,000 more lines of tests (yes, more test code than code). 22 alerts and nearly 50 custom metrics. An AI on-caller to triage alerts. A TLA+ spec, model-checked, to make sure nobody gets two emails a day. A randomized simulation that replays days of pipeline life on a fake clock. A chaos test that throws 1,000 simultaneous users at a database the size of a Raspberry Pi.

0 views

Musical Signal Functions

We’ve been chatting for a few days about my vision for a constructive model of music. So far it’s been rather loosey-goosey; lots of vibes, some semantics, but nothing in the way of implementation. Today let’s get our boots muddy and do enough implementation that we have something concrete to talk about. In particular, in Musical Signals we discussed a type that is a continuous function of time, equipped with a set of interesting times that we actually care about. In addition, we proposed an type that we will use in conjunction with s to signify sparse, discrete functions over time. Let’s begin with . It’s just a little newtype wrapper around : As discussed in the footnote on that page, perhaps we want to not export the pattern, the constructor, or the / instances. That seems likely like the way to go, but I haven’t yet put much thought into whether it solves all the problems. So let’s export them for now (because they are genuinely useful!) and circle back at some point in the future. My idea for implementing is to keep around a bunch of continuous segments of function, each of which might have a time-of-interest at the exact instant that the segment starts. A is defined thusly: The obvious instance has the wrong semantics here, so we don’t provide it. The problem being that corresponds to a value of the function at a time of interest. Which is to say, that if is ever , it must remain as we our way through it! But isn’t powerful enough to do that, because filling in the missing data would require us to know what we should be sampling the function at. We address the problem with a new function: The here attempts to fill in the interesting value by combining the s. If that fails, it then tries to fill it in by fmapping over either individual interesting value. Collecting our s into a requires a few helper functions: takes two sorted lists of pairs, and computes a sorted list of . The idea being that if both lists have a key at the same index, we keep both of them around. If only one has a value, we tag it with which list it came from: We use to define , which does a of two sorted lists of s. The idea here is that the two lists are effectively interval trees, and the intervals are not guaranteed to line up. So we use a hold onto the old value of each until it gets replaced with a new value. With all that ceremony out of the way, we’re ready to define s, which contain an original function with no interesting timepoints, and then a sorted list of new s. Of course, this is not the only possible implementation of , nor am I claiming it’s the best one. It’s just one that I came up with that satisfied all the laws and wasn’t slower than molasses. I’ve also got a relatively-fresh new baby, so a lot of this got written on very little sleep. Anyway… Despite not admitting an instance, does, because it keeps track of where each begins. We can show that preserves the semantics we gave by giving projections out of it into the semantic domain: This function is the continuous- given by our semantics. The discrete- is called : which returns a sorted list of interesting times (and their associated values.) In the case, we have a more useful function, which gets only those values which actually contain a discrete value : s are nice representations of interesting-things-over-time. But the mental model of abstract modular synthesizers is not about interesting-things-over-time. It’s about ways of transforming and combining interesting-things-over-time. Haskell has some deep-cut notation for this, namely the extension and its related notation. Long-time readers of the blog will know that we’re no strangers to arrows here! But as a very quick recap, given instances of and : we gain access to notation, which is very convenient for composing arrow values: This notation is syntactic sugar for the egregious: which I think we can all agree is slightly less readable than the notation. The rough vibes here is that abstracts the notion of what a function is. Rather than using Haskell arrows, we can instead use -arrows. The methods and do exactly what you’d expect — composition and identity of -arrows. The class extends this with some way of turning arbitrary Haskell arrows into -arrows, as well as a way to run two different -arrows on the and of a (Haskell) product type. The exact semantics of what that looks like depends on your -arrow type (much like the exact semantics of notation depend on your choice of a monad!) Anyway, to pull back to musical transformations. If we were to find some sort of music-aware instance, -notation is exactly what we’d want in order to “run patches” in our abstract modular synthesizer. That is to say, it provides the plumbing for moving music in and out of transformations. As a teaser for what’s to come, here’s a little example from my sandbox: which describes this this nice little dyad expansion: If we replace the last line with: we get this: and of course we can also clamp the upper voice: and we get this: Now I’ll be the first to admit that this is a completely unusable DSL. But it does actually work! And if you squint, you can sort of see the modular synthesizer idea at play. Inside the proc notation, we are sampling all of our s simultaneously, but routing the output of (eg) the voice leading into the input of , which is what builds out the rhythmic pattern. Then we take the output of that, separate it into s of its constituent voices, and feed those into , which moves a ’s notes into the given range of scale degrees. Something cool but not pictured here, takes a second argument (the ) which tells it to look into the future and not perform any displacement if it would need to move again within that 0.5 of a measure. This is some sort of “retro-hysteresis” where signals can depend on their future values! Which sounds crazy when you’re thinking about wiring up synthesizers, but much less crazy when you’re sitting down writing out a score. Of course the notes in your score can depend on notes that happen later on in the song! One of the many benefits of explicitly modeling time in s. Hopefully you’re excited to see how we go about doing any of this acausal wizardry stuff. But it all starts from getting notation working. Which, recall, means we need a type to give an instance to. Behold, the signal function ( ): which you will note is literally a function between s. Its instance comes immediately from Haskell functions’ instance: The instance is similarly straightforward — separate out the product, run the functions on each half, then use the applicative instance to combine them back into a single : That’s really all there is to it! We can give some means of introducing s: as well as a few primitives whose definition we don’t have time to get into: (for completeness’ sake, there ought to be time-reverse versions of and too!) This seems like a good place to leave it for now. In the next post we’ll discuss how to turn all of this abstract machinery into something that actually resembles music.

0 views
Brain Baking Yesterday

Favourites of October 2026

Boo! Happy Halloween. See you next year for another scare. In the meantime, live slogs, and sometimes rushes, on. We’ve had the pleasure to experience the grand opening of the flu season resulting in more sleep deprivation whilst trying to take care of the sick kids. As you can imagine, dodging sickness itself became an impossible task. It looks like every month comes with something to complain about. Did you know that nonstick pans only last two to five years, according to the shop assistant that talked me into buying two new ones? The Teflon layer got nicked (and consumed??) so this time I went with a hardened ceramic layer. After taking care of the bill, I said “see you in ten years then”, to which he replied “no”. I guess I’ll be extra careful this time. Previous month: September 2026 . This month mostly represented clearing out the Castlevania -related backlog: Most of the gaming evenings were spent chasing after Diablo and murdering his Prime Evil brethren in Diablo II: Resurrected . I played the Switch port and wouldn’t recommend it unless you don’t own decent hardware like I do. After a few cow runs, I got tired of it—yet again, the grind fatigue hits me. The only unique item I saw drop was a flail my warlock couldn’t even use. Sunk Centre: a lighthouse that floats with a 12 m focal height part of the UK. If you love these kinds of games, remember that tomorrow is Underkeep’s release date. Here’s the release trailer to get you started: Related topics: / metapost / By Wouter Groeneveld on 4 November 2026.  Reply via email . I replayed Order of Ecclesia 18 years after playing it for the first time. It still rocks, but I’ve grown less patient when it comes to grinding for better glyphs. The PSP remake of Rondo of Blood , Dracula X Chronicles , is mostly a good excuse to play the original, if you manage to unlock it. Jaap-Henk Hoepman’s stance on genAI mirrors mine. Academia is fucked as well, it seems. The Naibu Studio Garden website is beautiful. The blueberry tracking your mouse is a nice touch. In case you’re in dire need of a world map of lighthouses , Aaron J. Becker has got you covered. I discovered there are a couple of floating lighthouses between Belgium and the UK with sweeping beams: posted news about yet another FPGA-based Game Boy clone called the FPGB Mini . I’ll stick with my Analogue Pocket for now. Another cool map: pinballmap.com that lists venues housing pinball machines. Thanks for mentioning it, Michael . Victoria Lacroix hates crafting in video games . I think it’s fine as long as indeed it doesn’t become a huge brainless timesink, and more importantly, if its heavy subsystems stay mostly optional. According to Hamuko, spending $70 on a video game is OK . They defend the statement with some quick financial maths. Remember when N64 games cost $65? Add inflation and you’re well above $70. I’m fine either way: most indie games I think are severely underpriced . Robert Yang wrote an interesting design review of Against The Storm , reminding me that I should pick it up again. There’s someone who spent years creating a texture-correct Ultima Underworld patch , fixing the weird affine texture-maps you also see in early 3D PS1 games. Jamie Zawinski explains AI to us like we’re 80 . You’ll need to understand it, because… The cat is out of the bag: Linus Torvalds committed Claude-assisted code into the Linux Kernel . I’ve seen people creating new forks of BSD-based OSes as a result. It’s getting very bad. Very bad indeed: the Steam Next Fest submissions are drowning in AI slop . Or how about a certain Proton CEO making bold claims regarding the use of genAI: my way or the highway. The latter, please. Emacs turned 50! Stefan Monnier and Michael Sperber wrote a long paper on the history of the editor (from 2020). Steve Losh’s educational posts on Emacs continue to amaze me. Here’s an overview of what symbolic computation is to help you grasp the concept of a REPL and how Emacs/ELisp handles it. Natalie Weizenbaum, the granddaughter of the famous MIT professor, read her granddad’s work Computer Power and Human Reason , which in this genAI age is especially relevant. Cameron Swingle is goofing around as usual with their What Game I Think Each Villain From Scooby Doo And The Cyber Chase Would Play On Their PSP article. I’m a bit late to the party but in case you also missed it, here’s Digital Foundry’s Diablo II: Resurrected tech analysis (on YouTube). Creopard.de is a fascinating new website full of old stuff such as their love for collecting Big Box PC Games . This lovely Myst Journey walkthrough website might come in handy next year when we play the game as part of the DOS Game Club. Speaking of old PC gaming stuff: 3Dfx Interactive is thirty years old now. A ResetERA thread pointed it out . I might expand this into a blog post of its own someday soon. Speaking of ResetERA forum posts, here’s a cool overview of “blobber” RPG games or classic first-person dungeon crawlers. The public-apis GitHub repository lists a huge number of APIs you can play around with, such as the Disney API I used as a baseline for a project assignment in my Java classes.

0 views
Stratechery Yesterday

AI on the Ballot

Listen to this post : From Bloomberg this morning at 2 a.m. Central: Democrats won control of both chambers of the US Congress in a midterm election landslide that amounted to a rejection of President Donald Trump following widespread voter discontent with the economy and the war in Iran. Across the country, Democrats scored victories in GOP strongholds, flipping at least seven Senate seats and winning House races in districts Republicans easily carried in 2024. Several news organizations projected that Democrats would win the House, while Decision Desk HQ projected they took the Senate. I have no doubt that Iran and the economy played significant roles in this election; what stood out to me, however, was very much Stratechery fodder. Specifically, I watch a lot of sports, and particularly this fall, watched a lot of baseball. My Milwaukee Brewers — excuse me, my World Champion Milwaukee Brewers — demanded my full attention, which also meant I saw a lot of campaign ads, and by far the most common topic, at least here in Wisconsin, was data centers. Moreover, it was never entirely clear which way it cut politically: both parties were anti-data center, accusing their opponent of being the opposite. Meanwhile in Texas, from Yahoo Finance : A strong showing by Democrats in Texas swept Gina Hinojosa into office as the state’s first Democratic governor since 1990 in a contest closely watched by Big Tech companies. The state is considered a bellwether for government restrictions on AI data centers…Hinojosa, Texas’ first Latina governor, has pledged to impose a moratorium on data center construction in Texas, which accounts for more than 25% of planned US capacity by 2030. Republican incumbent Greg Abbott, I would note, already declared a moratorium on new data-center permits in September; that’s how much of a hot-button issue this is, including in the state that is the biggest opportunity and beneficiary of the data center buildout. So yeah, this is a Stratechery topic of concern. Earlier this year, while writing about data center opposition , I said: There really wasn’t widespread opposition to data centers when they were being built for the Internet generally; indeed, local governments would compete for them, eager for the economic benefits that came during their construction and the long-term tax benefits once they were operational. In other words, it seems pretty clear that the current wave of opposition can’t be divorced from AI — you know, the technology that in the best case scenario is going to take everyone’s jobs, and in the worst case scenario end the human race. I do not, I don’t think, need to explain to you why this is not a very compelling message, and, in the very long run, I do think that humans will have economic value . At the same time, it’s hard to explain the huge amount of investment that is going into AI, not just at the model level but also in terms of data centers, without admitting that a big part of the thesis is that AI can not just increase the top line for companies, but also increase the bottom line — i.e. replace the jobs of some number of humans. Again, I’m generally an optimist here, but this already happened with the first wave of IT . That leads to an interesting contrast to globalization: when companies were closing down American factories and laying off workers and moving operations to China, none of the affected towns or workers had a say. They just suddenly no longer had a job, and a huge number of cities across the Rust Belt no longer had a reason to exist. People simply had to move, or worse, retreat to things like alcohol or drugs. AI, however, is the opposite: building data centers requires permission, which is to say that people actually have a say. Again, I am not at all saying that these people are well informed about data centers, or about the economic impact on their communities, much less the economic impact of AI generally; what I am noting is that people who didn’t have a say in globalization are suddenly finding they do have a say about AI, and it’s not a surprise they are expressing their disapproval by blocking data centers. That message was loud and clear last spring; now it is deafening, and it’s tempting to say that tech, particularly the frontier labs, have no one to blame but themselves. In fact, however, some of the biggest culprits may, in the long run, be some of the biggest beneficiaries of the anti-data center wave. My thesis — driven not just by national results and the Texas governorship, but also the fact that, as this thread documents , nearly every relevant local ballot measure opposing data centers won or is winning ( the only exception so far was in North Dakota ) — is that the constraint on AI dispersion has shifted once again. First we were short on compute, but that ramped; now we are short on memory, but that will ramp; we were coming close to being short on power, but that will be rectified. The final constraint is political, and that may be the most imposing constraint of all. Not only is it harder to solve, but it actually interferes with solving the other constraints. Many of the theories about AI assume that it becomes a commodity; I think it’s just as likely we are looking at scarcity for much longer than we expected, which will have ripple effects on everything. To that end, here — with the caveat that nothing leads to hot takes you regret like an election — are ten perspectives on what a permanently impaired ability to build might mean. To be clear, I’m not declaring permanency — look at how our elections swing back and forth — but it’s worth considering what the implications might be if Americans don’t change their minds about data centers. The most obvious reason why the stock market has been rocky over the last few weeks is the tightening of credit markets, which I wrote about this summer . We are, needless to say, full on into the equity funding era (and while I’m here, I haven’t written about Anthropic’s updated S-1 , but it strongly affirms my initial analysis ). At the same time, it seems clear that this outcome is very bad for the AI trade in the short term, but much of the pain may have already been endured. The Neoclouds have been at the forefront of credit concerns, and from a certain perspective, being unable to build data centers has a silver lining in that they couldn’t get the money to pay for them anyways. Moreover, Neoclouds with facilities that are already permitted now have an asset that is going to be scarcer than expected. At the same time, it’s Neoclouds that need new sites and new permits, even as they are likely to have much less political sway than the hyperscalers — who already have more sites they can repurpose or rebuild. It was already getting harder to get capital, relative to the hyperscalers; now you have to layer on that it’s going to be harder to get permission, too. The downside for the neoclouds is upside for the hyperscalers, who are more likely to grow their share of AI compute than they were before. Moreover, investors may be pleased if the hyperscalers’ ambitions are somewhat curtailed; political opposition is an excuse to moderate spending, knowing that everyone else is in the same boat. Nvidia will almost certainly be a short-term loser. Fewer data centers mean fewer Nvidia chips generally, and a weakened Neocloud set is particularly harmful not only because Neoclouds almost exclusively use Nvidia full-rack systems, but also because Nvidia is back-stopping a huge number of them. It’s the hyperscalers, meanwhile, who are Nvidia’s biggest long-term threat, given their scale and ability to invest in their own chips. At the same time, a constrained world makes Nvidia’s offerings more compelling. CEO Jensen Huang actually spent an entire keynote making this point back in 2025; I wrote in an Update : When Huang says “iso power” he means that power is the constraint; the question is how many tokens can you generate given a fixed power envelope, and Blackwell can generate a lot more. These were the numbers Huang gave for a 100 MW data center: What this means is that the first order of business for an ASIC maker is to match that level of efficiency. That, though, means keeping up with Nvidia’s product development cadence; The Information has a post about Amazon offering instances using its latest Trainium ASIC at a significant discount to the H100. Huang, though, spent this keynote insulting the H100! You can almost hear him speaking to Amazon directly: you spent all this money, and are offering these huge discounts, just to entice developers to lock themselves into an inferior chip, even as reasoning models are going to swamp your available power generation… Huang is issuing a challenge to every cloud provider tempted to make an ASIC: do you really think that you can keep up with this, and risk running out of power capacity because your chips aren’t efficient enough? Don’t even try. A world without power or data center constraints is one where it is, in the very long run, very difficult to maintain Nvidia’s margins; once those constraints start to bite, however, an advantage in tokens/megawatt is worth a lot of money. Go back to my point about the hyperscalers: one way to generate more tokens is to build a new data center; another way is to rebuild a data center with new Nvidia chips. China is the inverse of the scenario that Huang laid out: the country has plenty of power and the ability to build a lot more, but they don’t have leading-edge chips. Some of the advantages of leading-edge chips, however, can be overcome by simply throwing tons of electricity at the problem. From a 2025 Update about the Huawei CloudMatrix 384 supercomputer: The CloudMatrix 384, which is a supercomputer consisting of 384 chips, takes up dramatically more space, uses dramatically more power, is almost certainly dramatically more expensive to make, and is dramatically more brittle than Nvidia’s NVL72; there is no one in the world who would choose the CloudMatrix 384 over the NVL72 if they had the choice. That’s the thing, though: China doesn’t have the choice, because of U.S. export controls. The country’s saving grace is that they are operating on different constraints than the U.S.…China — which actually builds power generation — is not iso power; they are iso compute: Huawei’s goal with the CloudMatrix 384 is to get as much compute as possible, power efficiency be damned. In the fullness of time — i.e. as China figures out leading-edge chips — this may be an insurmountable advantage. When SpaceX released their S-1, I explicitly pointed to political opposition to data centers as one of the company’s most significant upside scenarios: The third question about data centers in space is if there is a stick. Specifically, while I think that racks-in-space are both a lot more viable than people think, and a lot more relevant to agentic inference than current modes of compute, it is at the end of the day cheaper and easier to build on earth, all things being equal. All things are not equal, however: right now we are at the very beginning of the AI buildout and already one of the biggest constraints is not just power (expected), but zoning (unexpected). I wrote in an Update last week: I already posted the relevant excerpt above. Continuing: In that Update I made the case that data center builders — and by extension the companies that use them — should straight up pay people for permission to build data centers in their communities. At a minimum, however, that increases the costs of terrestrial data centers. What seems very plausible in the long run is that the demand for compute ends up being so large that there eventually is nowhere left to build, making the vast expanses of space not just an alternative but in fact the only choice. This is where I come back to my experience watching these campaign ads: this isn’t a partisan issue, where the pendulum will swing back in two years. Both parties see opposition to data centers as a winning cause, and not just nationally: that thread has multiple examples of local officials straight up recalled for approving data centers in their localities. Space will be incredibly difficult, but difficulty is all relative! Moreover, to the extent opposition is permanent, the more this actually reduces the risk of data centers in space, because investors will have more confidence in there being enduring demand. If the hyperscalers had a red queen problem , the frontier labs have it even worse: the biggest revelation from Anthropic’s S-1 was that their inference margins were very high (good!), which meant that their massive compute costs were actually in R&D; this is bad because that R&D spend is governed by competition with the other frontier labs, and absent constraints, that spend looked set to surpass revenue sooner rather than later. Now, however, it is the public that is effectively demanding that the frontier be paced, which is great for the frontier labs’ financial outlook. The upside goes further than that: the point about efficiency being more important in a world of constraints doesn’t just matter for chips, but also for models. Devoting limited compute to inefficient and costlier-to-serve Chinese models is a poor trade if there isn’t enough compute. Moreover, open models may be at greater regulatory risk, as Democrats seem much more likely to pass laws that ultimately favor the frontier labs. There are some counter-arguments. First, if compute is constrained, and thus more expensive, then that will increase the drive to right-size models for jobs, which is a big argument in favor of open models; the fact that compute won’t be a commodity means that the frontier labs’ lower cost to serve will never come to bear on the low end of the market. And, it’s worth noting, it will be harder for the frontier labs to build their own compute, leaving them dependent on the hyperscalers; big tech wins again. The most obvious advantage for Apple is that in a world of constrained compute, inference on the edge will be that much more important. Another advantage is that any slowdown in the dispersion of AI is good for a company that dominated the previous paradigm . The biggest advantage of all, however, is that any slowdown in the AI buildout offers hope that the memory crunch will ease. This will take a while, to be sure, but no company would be a bigger beneficiary of the world running out of places to put AI chips than Apple. AI has drawn a great many battle lines, not just in terms of data centers, but also within AI, and between AI and the rest of tech. Specifically, anything that strengthens the frontier labs is likely bad for the rest of the startup ecosystem. In a world with fewer data centers, startups will have less access to cheap compute, even as a slowdown in capabilities both means it takes longer to build compelling products and also gives the frontier labs time to actually build products that secure their ownership of the end user. One major fear that investors have had about the data center buildout is that there would be too much capacity, causing prices to plummet and investors and creditors to lose their shirts; that scenario, however, would be great for users, who would suddenly have access to incredibly cheap compute. Of course most users aren’t going to use AI directly; what they will miss out on is the equivalent of the Web 2.0 wave of free Internet services that were predicated on compute being free. Now there’s a good chance that AI is going to have meaningful marginal costs for a long time to come. At the same time, while I have been an optimist about humans in an AI future , there is no question that we were and are facing a wrenching change as intelligence becomes a commodity. It follows, however, that if it doesn’t become a commodity — or if that change takes longer than expected — that humanity will have more time to adapt. Maybe this is a break we needed; what is increasingly clear is it’s the break Americans wanted. That noted, there is a long history of citizens demanding the ends and opposing the means, and it’s the demand that wins in the end. The big difference today is that, unlike the first few waves of tech, the industry is going to need to do some convincing, and break the habit of assuming everything it does will get the benefit of the doubt. AI wasn’t technically on the ballot, but it was implicitly, and will be forevermore. 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.

0 views
iDiallo Yesterday

Goodhart's Law, but We Already Spent All Our Money

Here is how to make any sports fan angry. Basketball is just a bunch of grown men bouncing a ball and throwing it into a basket. Football is a bunch of grown men running on grass trying to kick a ball into a net, yes that football. And baseball... Oh boy, baseball. I've used these lines many times to piss people off and to justify my complete lack of athletic feats. But the counter-argument I always get is that football is a multi-billion-dollar industry, or that a specific player makes more money than I will ever see in a lifetime. If I counter that video games are just for kids, because of course I'd say that, I get a similar response: Video games make more money than all of these sports combined. It's all true. But nobody is telling me why basketball is important. Nobody tells me how good the game is, how people bond over it, how it brings a community together, or that it is simply healthy to stay active. Whether it's basketball, football, video games, or (God forgive me) baseball, it all boils down to the exact same measuring stick: how much money the activity generates. If the importance of a thing is only measured by how much money it makes, then we will aim to make more money despite the thing itself. — An AI Somewhere. Goodhart's Law states that when a measure becomes a target, it ceases to be a good measure. Enter Artificial Intelligence. This wave of generative AI has supposedly generated billions of dollars since ChatGPT first launched. But in the process, vastly more money was spent to make it possible. Money was spent to make AI look good. AI is deemed "good" because it is expected to make lots of money. Because AI isn't actually making that money back yet, it relies on inflated valuations to define its worth in monetary terms. It's like running a pizzeria where the goal is to make a million pizzas, but you don't actually have the ingredients to bake them. Instead of buying flour and tomatoes, you use AI to generate high-resolution photos of delicious pizzas and print them on empty boxes where the future pizza will be. You sell the hype of the box, promising that the actual pizza will arrive once the funding hits. There is this simple argument, almost naive I would say: If AI is going to take all our jobs, who is going to pay for it? If workers are displaced, they have no income. If they have no income, they have no purchasing power. Who is this mythical customer who doesn't work, receives no paycheck, yet seamlessly pays a monthly subscription for enterprise AI tools? Currently, the primary consumer of AI isn't the public buying a finished product. Instead, it's corporations selling AI back and forth to each other in an enterprise circular economy, funded by venture capital that expects infinite returns on a product nobody has fully figured out how to monetize at scale. This may be an anecdote where , but in that short timespan, we were visited by the Four Horsemen of Corporate AI. The First Horseman told us never to touch AI, warning of IP theft and security leaks. The Second Horseman told us to use it cautiously "where needed." The Third Horseman turned AI into a game, tracking metrics to see who could use it the most, (the winner got a free iphone). The Fourth Horseman arrived recently, asking us to stop using Fable, and get written managerial approval to exceed a reduced token budget. Each horseman was a paid consultant hired to provide training. In just a few years, corporate sentiment swung from paranoia to forced obsession, and finally to budget panic. Employees went from being pushed to "Tokenmaxx" everything to being scolded that tokens cost real money. AI is important because we spend so much money on it. When an industry measures success by the dollar amount poured into it rather than the actual utility derived from it, we start living in a fantasy. We spent astronomical sums of money to build AI because we believed it was valuable. Now, we must prove it is valuable simply because we spent all that money. If we keep measuring the value of technology solely by market capitalizations and speculative hype rather than usefulness, we shouldn't be surprised when people stop buying empty pizza boxes. Beautifully printed empty pizza boxes I should say. Right now, we are running out of money to buy the ingredients to actually make the pizza.

0 views
Evan Schwartz Yesterday

Scour - October Update

Hi friends, In October, Scour scoured 1.5 million articles from 34,703 feeds . 164 new users signed up since the last product update email, so welcome to you all! Here's what's changed in the product: I rebuilt the way Scour determines which content is relevant from the ground up so you'll see more relevant posts and fewer off-topic ones in your feed. During the rebuild, I also replaced the embedding model Scour uses, meaning I am no longer using the sponsored model from MixedBread. Thank you so much to MixedBread for sponsoring 2 years of Scour's embeddings 🙏. I'll continue to be a big fan of their work and eager reader of their blog, which you can subscribe to via Scour here . Going forward, Scour will be using the Voyage 4 family of models , which I'm pleased to say I actually heard about initially on Scour. For people who use screen readers to navigate Scour, the website experience should be quite a bit better now. Headings are easier to navigate and keyboard shortcuts are easier to find and can be turned off so they don't interfere with screen readers. Thanks to Elliott P for letting me know that certain parts of Scour were hard to find and use! For those of you who subscribe to specific feeds, Scour previously had the options to see content either from "All sources" or "Feeds you follow". Now, you can also see only content from "Beyond your feeds" if you want to use Scour to discover exclusively new content you're not seeing through your feed subscriptions. Here are some of my favorite articles I found on Scour in October: Happy Scouring! I really appreciated this provocative take from Sean Goedecke that Software Engineers don't get to be Luddites about AI . As he wrote, "Software engineering has always automated industries". Alex Kesling wrote about how engineers are moving up The Stack of Caring , "the layer cake of abstraction and technology between a person and some thing they want to do in the world". Zvi Mowshowitz wrote a good (and long) summary of many of the hacks and vulnerability disclosures that led to October being referred to as Black October, The Hackening . One former OpenAI employee quoted in the article said "Feels like March 1, 2020 for Cyber". Ben Congdon wrote about Agentic Monitoring , which has been on my mind since I recently moved away from Fly.io's built-in Grafana and an open source product analytics stack to a home-rolled system that does both observability and analytics. Similar to Ben, I found this line from an Anthropic post quite interesting: "We call these Claude 'superfans.'...They...act like an experienced engineer who has nothing better to do than to refresh charts and look for anything strange."

0 views
Unsung Yesterday

Internet Archive’s alphabet

I love the Internet Archive, but I don’t love its interface. It’s just… not great all around, homely and confusing. It has some endearing qualities, harking back to the web of the 1990s without endless commerce and incessant growth hacking – Wikipedia feels the same – but it’s unpleasant in many ways, and won’t inspire you the way good interfaces will. (Even the thing I once praised it for falls apart in details.) So this below, once more, is going to be caveated. I have been uploading things to Internet Archive for almost a decade now, and my collection of various font and typewriter and interface documents just reached a round 1,000 items, which made me proud and happy. While browsing it myself yesterday, I noticed a new-to-me alphabet bar that pops up when you sort by title: I am guessing it’s inspired by tabs in library catalogs? = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/internet-archives-alphabet/2.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/internet-archives-alphabet/2.1600w.avif" type="image/avif"> The interface is ugly. There are big non-clickable gaps between letters. The tooltips were a mistake. But outside of that, I found it fun and delightful to explore a collection this way, and I’m not sure I have ever seen this kind of an “old-fashioned” approach before.

0 views

Running Dry

If you haven’t subscribed to Where’s Your Ed At, now’s the best time. I’ve extended the sale — 10% off of the $70-a-year subscription for life ( click here! ) — for new subscribers for another week. It’s a great way to support my work, and you get an absolute ton of value at a lower price than basically every competing newsletter.  Over the past few months, I’ve published a two part guide to the world of AI debt, an analysis of the (dubious) impact of generative AI on the global economy , deep analyses of the biggest players in the AI infrastructure space like NVIDIA (part one and two ) and Oracle (part one and two ), how OpenAI will eventually kill Oracle , and how venture capital is killing itself .  Friday's piece is about fault lines - the areas most-exposed to the collapse of the AI bubble, the datapoints to watch to see the industry's deterioration, and what might cause things to fall apart. If you want to get in touch — and especially if you have any juicy information about Anthropic, OpenAI, Blackstone or any other companies in the AI bubble — hit me up on Signal at ezitron.76. I’m also on IB on your Bloomberg Terminal. As I’ve said for a while, all of this ends when the money runs out — when seemingly-unlimited data center debt becomes distressingly hard to raise, and when AI startups can’t rely on the perpetual availability of venture capital to keep them alive. And it appears the well is running dry, just as it dawns on everyone that the underlying economics of AI, for labs and data center operators alike, don’t really make sense. On September 16, 2026, the New York Times would report that OpenAI was “considering” a new funding round valuing it at $1.5 trillion, a little under three months after it delayed its IPO to 2027 . Ten days later on September 29, Bloomberg would report that it was aiming to raise $30 billion at a $1.4 trillion valuation, and on October 5 revealed that it was in talks with BlackRock, a syndicate, and funds from the UAE which had “discussed putting in as much as $10 billion altogether.” Last week — less than a month later — OpenAI raised $11 billion at a $1.25 trillion valuation “after receiving tepid interest from some large investments,” per the Wall Street Journal, who added that OpenAI had “...told shareholders it expects to try to raise more money…[and hoped] to raise up to $20 billion,” targeting “family offices and high net-worth individuals,” which means that sovereign wealth funds, venture capitalists, and private credit firms have given all they’re willing to. Per The Information , OpenAI spent a total of $12.1 billion across its cost of revenue and research and development segments in Q1 2026, and per Microsoft’s own earnings, OpenAI’s compute spend and revenue share payments contributed $10 billion in revenue to its latest fiscal quarter .  In other words, that $11 billion round won’t even cover a quarter of OpenAI’s compute costs, and it’s fair to ask both why this round had to close right now and what exactly the company does going forward. Per the same Information story, OpenAI ended Q1 2026 (so March 31, 2026) with “more than” $73 billion in cash and marketable securities. Revenue grew tepidly from $5.7 billion in Q1 to $6.7 billion in Q2 2026 ( per the WSJ ), and since then, Amazon has sent OpenAI $35 billion (around July 31, 2026) and SoftBank $30 billion ( wired in April, July and October ).  If OpenAI needed a paltry $11 billion , it’s likely that it raised it either out of some degree of desperation and/or an attempt to catch up with an Anthropic IPO that investors are now expecting to, per Bloomberg , price at $1.4 trillion to $1.5 trillion, down from less than a month ago when it was expected to price at $2 trillion or more . Anthropic is now, per the WSJ , being “urged by institutional investors to target a lower valuation of $1.5 trillion to $1.6 trillion.” It is extremely bad that OpenAI raised at a lower valuation than planned, and even worse that it couldn’t raise as much as it wanted (needed?) at said valuation. In the absolute best case scenario, this was an attempt by OpenAI to bump its valuation up from its $852 billion par from March , I imagine to make its investors feel better about Anthropic’s upcoming IPO… potentially? The problem is that at $1.25 trillion, OpenAI would have to eventually go public at a $1.5 trillion or $2 trillion valuation to give its latest investors anything close to a positive return , at a time when Anthropic has already seen its expected market capitalization tank by hundreds of billions of dollars. I think the answer is probably somewhere in the middle — OpenAI needed this money, needed to feel competitive with Anthropic, and realized that it should raise as much money as possible before the capital markets slam shut. The question I ask is simple: what the hell does OpenAI do next? At $1.25 trillion (as mentioned above), OpenAI would need a much better listing price than Anthropic is expected to have, for a company with objectively worse metrics, including slower growth , lower revenue, higher costs, and hundreds of millions of free users that generate, at best, about a billion dollars in “annualized” ad revenue against the billions of dollars it costs to serve their compute. Despite all the buzz around GPT-6 Astra — which was, according to NVIDIA’s Jensen Huang , “AGI” — it’s clear that its effect on revenues was insufficient to excite even the cash-rich and hype-friendly investors in the Gulf. GPT-6 Astra was, I believe, expected to be the lipstick on an unmistakably feculent pig of a company — something that’ll disguise the horrendous fundamentals of OpenAI’s business and energize investors — and, based on its disappointing latest funding round, it failed. And I believe that things will get worse from here.   OpenAI will absolutely, without a doubt, need more money in the next few months, and will need to raise at some sort of valuation , one calculated based on both that $1.25 trillion valuation and the performance of Anthropic’s IPO. Making things a little more challenging is the Financial Times’ report that Blackstone has told some investors that Anthropic “may not receive an investment-grade rating immediately after going public,” otherwise known as a junk rating , a point I made about a month ago based on the fact that it’s a negative-EBITDA company.  While we don’t know what the rating will be — as the big three (Moody’s, S&P and Fitch) are yet to rule — Anthropic’s $35 billion Broadcom-backstopped deal to lease TPUs received a BB+ rating from KBRA a few months ago, which is one rung below investment grade, but I must be clear that $30bn of the deal is backstopped by a company with a high investment-grade credit rating . While inevitable, a below-investment grade rating essentially puts Anthropic’s debt outside the reach of the most prolific bond-buyers, like pension funds and insurers. And again, I couldn’t see this going any other way, but I would argue that this rating represents a psychological cold shower for investors — a reminder that this space is, using the most charitable language at my disposal, inherently speculative and rife with risk. Given that OpenAI’s past and future fundraising is contingent upon an investor class that’s drunk on exuberance and that has lost its senses, cold showers are a very bad thing .  OpenAI is a company with higher expenses, lower revenues, and the stench of an also-ran that got beaten by an aggressive competitor gunning at full speed to beat it to IPO, leaving it with few options outside of increasingly-illogical-yet-existential funding rounds that either scrape the bottom of the VC barrel or force it to take a down round to get cash through the door. Future investors will have to believe, somehow, that OpenAI will both actually go public and one day be worth $2 trillion to $3 trillion , as well as somehow being able to raise hundreds of billions of dollars of debt to keep up with its $750 billion in planned cloud spend through 2030 . And given that junk rating and the grim new data from Anthropic’s newly-amended S1 (called an S1/A), it’s unclear how any of this is actually meant to work. Let’s be clear about something: it only took a week for Anthropic to file an amended S/1 to include its Q3 numbers, which means (in my opinion) it was absolutely ready to go for the initial filing but chose to intentionally leave those numbers out . You’re about to find out why. As I discussed last week , Anthropic’s initial S-1 filing — covering up to Q2 2026 — described a company that effectively no longer exists, with a “profit” driven by discounted SpaceX compute, $2.08 in revenue for every dollar of compute spend, $11.5 billion in revenue, and $430 billion in non-cancellable compute commitments, including a $161.2 billion deal with Broadcom to lease Google’s TPU chips at a remarkable scale.  Though we already knew some of the Q3 numbers thanks to the Financial Times’ reporting around Anthropic’s investor day , boosters and the otherwise cope-poisoned chose to do several consecutive victory laps, claiming that this was proof that A) Anthropic was a “profitable company” and B) that “the economics of generative AI work.” As I said at the time , this quarter was an anomaly caused by organizations allowing their workers to spend as much as they want on tokens, leading to companies like Uber burning their entire annual token budget in the space of a quarter and much hand-wringing around AI’s ROI: In other words, Anthropic deliberately filed less information as a means of misleading the public into believing it was a fast, lean, profitable company with remarkably low compute costs and a large — yet indeterminately-timed — pile of obligations.  Having read the amended filing, I kinda get why it did so. As part of its original filing, Anthropic included this delightful diagram of its “revenue per dollar of compute” — but left out Q3 numbers that we already know it had ( because the Financial Times reported them weeks ago ) for the obvious reason that its economics got worse. While revenue grew about 46.9% ($11.5 billion to a little under $17 billion) quarter-over-quarter, compute costs nearly doubled from $5.6bn to $9.9bn (about 77.4%). This was partially driven by the fact that, per Bloomberg , Anthropic’s compute spend made up 34.5% — around $5.028 billion — of SpaceX’s Q3 revenue, making it Musk’s largest customer.  Anyway, Anthropic also filled in that contractual obligations chart, showing a minimum of $319.9 billion in payments through the end of 2030. Yet before anyone starts suggesting that Anthropic has fewer obligations than we thought, it immediately goes on to add that there are $451.2 billion in leases yet to commence… …and, for whatever reason, leaves out over $100.2 billion in future obligations to hyperscalers and data center lessors, as well as “certain agreements that are short-term in nature” with a minimum spend of $6.6 billion. Anthropic does add that it expects to pay $69.8 billion of its contractual obligations in the 12 months starting October 1, 2026 — meaning Q4 2026 — which makes that “$29.1 billion in payments due by year” number extremely suspicious, to the point that it almost feels like Anthropic intentionally wants readers to get the wrong idea about the company. I mean, I get it! Anthropic wants to sell itself as this fast-growing, lean, “profitable” AI lab that has worked out the messy economics of generative AI, when in fact it’s an overweight hog with nearly a trillion dollars’ worth of commitments, $437.4 billion of which are non-cancellable. Just to review, that’s…  Yet even then, there’s potentially hundreds of billions of dollars more in compute commitments that Anthropic vaguely describes , the first being underneath that chart in a footnote, emphasis mine: No worries dude! Just $150 billion in compute commitments that might happen at some point or another with no explanation as to who the commitments are to, what they’re for, and when they might begin, other than that they might be part of a deal with a hyperscaler! Say, talking about hyperscalers, Anthropic also apparently has another massive commitment to lease TPUs — apparently separate to the Broadcom deal! — that may or may not be worth as much as $125 billion to $150 billion, and deliver sometime in the next two to five years: So, yeah, just another $300 billion or so of commitments on top of the others, disclosed in an opaque — and I’d argue deceptive — way.  But that’s just how Anthropic ( and its former Blackstone private equity CFO ) rolls. Anthropic wants to con as many retail investors — via the media, of course — into believing that this is a company that will only spend $30 billion on compute in 2027, and will somehow grow to meet its ridiculous, ever-expanding costs. Underneath the quarterly trends section of the S/1A, Anthropic added an entire paragraph underneath “quarterly revenue trends” on page 161 ( 158 in the original S-1 ): In other words, for every dollar that Anthropic makes, it’s cutting that by 3.4% or so via discounts, a fact it’s only including as a means of key-jingling for boosters to say “actually revenue would be so much higher, if… ” even though this number doesn’t really tell us very much about Anthropic’s business. Are these discounts for enterprises buying tokens direct? What were the discounts in Q1 and Q2 2026? Don’t worry about it man, these numbers are not here for you to learn more about Anthropic , they’re about making sure you invest in it. Anthropic’s cash position is one of the weirdest things I’ve seen in a company, and I’ll explain why with this quote from economist Paul Kedrosky when he dug into its original filing, where he called it “a bank with a money-losing AI side gig”: In Q3, Anthropic’s cash position is largely left unchanged, with $16.8bn in cash and cash equivalents turning into another $17 billion in short-term investments (US Treasuries and securities), generating $1.248 billion in interest — a savvy move to generate capital for a company destined to burn billions of dollars in increasing intervals. And the problem for anyone trying to digest this S-1/A is that there’s very little guidance as to how that might actually happen.  Let’s go back to the top of page 6: Now, that $69.8 billion could, in theory , include some of SpaceX’s $3.1 billion a month in compute costs — which are, of course, “short-term leases” that can be exited with 90 days of notice — but it’s impossible to tell thanks to this insipid company’s weasel wording. There’s also a compelling argument that it only includes a quarter’s worth, which would add another $27.9 billion on top of the $69.8 billion in the event that Anthropic used it for the entire year. Nevertheless, Anthropic has a remarkable amount of compute commitments, and itself admits that it will have to cough up as much as $447 billion in costs in the next four years, and unlike previous years, it’ll have to pay for it up front in big, ugly chunks. In Anthropic’s own words, it “expects an increasing portion of [its] compute and infrastructure investment to take the form of capital expenditures and other commitments,,” and that said commitments require “significant upfront payments well in advance of the related compute becoming operational.”  While one might be tempted to say that its current liquidity — about $95.5 billion in cash and $36.2 billion in short-term investments — in addition to potentially raising $100 billion at IPO might be enough to get it by for years, even Anthropic suggests that might not be the case:  This suggests that fairly soon Anthropic will have to send a significant amount of cash out the door in the form of pre-payments, on top of the fact that it’ll be spending $9.3 billion a quarter, without fail, on SpaceX’s compute, assuming that that agreement doesn’t expand any further.  This leaves Anthropic in a worrying position where the only guarantees it has are that its costs will expand dramatically, every single year without fail. While revenue growth might continue (though Ramp, which was accurate with its predictions of Anthropic’s Q3 growth, now expects its Q4 numbers to be far more modest, ranging between 15% and 25% ), said growth now has to compete with hard, inflexible costs regardless of any seasonal shifts, price increases (or decreases) or product changes that might hamper growth, and with the sheer scale of these costs, any mismatch between compute spend and revenues will cost the company billions of dollars. And then there’s the problem of that junk rating. While we still don’t know what level of junk rating the agencies might award it, Anthropic is all but certain to have to raise debt in the 8% to 11% range — the kind of interest rate that can veer between harsh and unmanageable when you face rough headwinds, especially when you’re raising debt in the tens of billions. Anthropic’s current obligations are priced for perfection, requiring the company to, by this time next year, be roughly twice its size and continuing at a similar (or better) growth rate, because the sheer scale of its compute commitments demands Anthropic maintains both perpetual growth and improved margins.   It is not enough for this company to be the fastest growing startup of all time — it must also be attractive enough as a potential debtor to appeal to an already-strained junk debt market, which will require it to become a better, stronger company in stark economic terms unrelated to any hype around AI , especially as Wall Street becomes, to quote the WSJ , “choosier about where to place their bets and are demanding tougher terms.”  To be clear, that’s referring to AI data centers that have physical infrastructure and actual assets rather than a negative-EBITDA software company with a very annoying CEO. While Anthropic’s cash pile might make lenders a little bit calmer, we still have very little clarity as to the size and velocity of its prepayments, which makes it difficult to tell how big that cash pile might be in three, six or twelve months.  My question is simple: what happens when Anthropic’s revenue growth stalls as its costs naturally increase as capacity comes online? It’s deeply unattractive to lenders to say “well, we made all these commitments to pay hundreds of billions of dollars and it turns out our revenue growth slowed down, can you lend us money to cover the gap?” While in theory that might work, it’s the kind of thing that makes a lender ask “are you concerned about defaults?” or “what happened to all that cash you had?”  As discussed last week, around 80% of OpenAI and Anthropic’s revenues come from venture backed startups that (as I’ll get to at the end) heavily subsidize their userbases, which means that growth is mostly tied to whether VC can continue funding its customers. And as I discussed a few weeks ago , Anthropic will, outside of the very highest rung of junk, be limited in how much debt it can actually take on, and if it needs (as I estimate) around $50 billion a year, it’s hard to see how it pulls that off.  It’s getting dark outside, whether boosters will admit it or not. While its rush toward IPO was arguably driven by its anomalous second quarter, Anthropic has also realized that the music is stopping, and everybody is beginning to ask worrying questions about the underlying economics that I was asking years ago. Everything started to accelerate last week off the back of Anthropic’s S-1. The day before it was filed, Elon Musk closed a $40 billion debt deal to buy NVIDIA chips with interest rates for some parts of it as high as 8.75% per Semafor . A day later, Musk claimed that the markets had begun to shut out neoclouds entirely, per CNBC : A few days later, the Wall Street Journal would report that the markets have begun rejecting neoclouds: It’s unclear how CoreWeave, which needs over $100 billion in debt through 2030 per Morgan Stanley, actually survives, let alone the gaggle of yet-to-IPO neoclouds like Firmus or Lambda make it through 2027. Their overstuffed backlogs and highfalutin revenue growth promises are no longer impressing anyone. More tellingly, the mood around neoclouds have shifted — demonstrated most vividly by a piece published by the BBC’s North America technology correspondent Lily Jamali over the weekend , which essentially talked about the growing skepticism about the long-term health of neoclouds on Wall Street, and noted that many (in particular, Coreweave) have racked up debts that they really shouldn’t have been able to.  I’ll simply note that I raised the alarm on Coreweave in March of last year (nearly 18 months ago), and many of the points that the article makes are ones that I’ve been raising in this newsletter ever since. In short, fears around neoclouds are now mainstream.  And while hyperscalers might still have been able to raise debt this week, last week’s earnings have thoroughly panicked Wall Street. The same week, Amazon and Google both had double-misses on earnings, with only their cloud businesses — which are inflated by billions of dollars of compute spend from both Anthropic and OpenAI — showing any exciting growth.  Per page F-16 of the amended S-1, 44% of Anthropic’s revenue (around $14.6 billion) for the first three quarters of the year came from Google and Amazon (and Microsoft to a lesser extent) selling its models through Vertex and Bedrock, which means both have seen billions of dollars of extra revenue both from selling Anthropic’s models and providing it with compute to deliver them.  In other words, in 2026, Anthropic got $10 billion in funding from Google, $5 billion in funding from Amazon, then spent billions of dollars on both Google Cloud and AWS to serve compute to sell access to models, which the hyperscalers then booked as revenue, on top of the revenue the hyperscalers booked from selling those models, which ( due to the unique way that Anthropic itemizes its revenues ) Amazon, Google and Anthropic all book as their own revenue. While Amazon could explain away a bad quarter as a function of a flailing economy with spiralling inflation, Google had far grimmer news — that its use of AI overviews had led to “ lower monetization ” of search, meaning that despite spending hundreds of billions of dollars on AI, the only tangible effect appeared to be weakening the core product and creating a dependency on a pair of unsustainable, unprofitable AI labs. As a result, Google had its single-worst day of trading in history . While Microsoft beat expectations, it did so at a gruesome cost — as mentioned earlier, OpenAI’s compute spend and revenue share payments contributed $10 billion in revenue to its latest fiscal quarter , or almost 11% of its quarterly revenues. This is extremely bad in a way that I’m surprised more people aren’t discussing. Per Bloomberg earlier in the year , OpenAI accounted for around 7% of Microsoft’s Fiscal Year 2026 revenues, or around 70% ($24.1 billion) of AI revenues. Within a single quarter, OpenAI has already accounted for nearly half of its last fiscal year contribution to Microsoft, with its concentration of overall revenues growing at an alarming rate at a time when, as discussed, the company is having trouble raising money to pay its bills.  There’s also the messy issue of Microsoft’s new revenue disclosures, announced back in September , that mean that we now know the quarterly revenue of its Azure cloud platform, which was an impressive-seeming $33.2 billion in its latest quarter until you, as nobody appears to have done, compare it to the $29.4 billion it made in Q4 FY2026. That $3.8 billion in revenue growth is most-assuredly from OpenAI’s increased compute spend, especially given the dramatic jump from the end of the last fiscal year. If that’s the case, Microsoft’s “impressive earnings beat” is far more a function of OpenAI’s cash furnace than any success of its AI plays — especially as Microsoft neglected to update us on paid Copilot licenses outside of claiming that “ Copilot daily users grew nearly 50% in the three months to September ,” the kind of thing you tell an audience you are convinced is too stupid to see through your bullshit. And just when we thought we’d escaped the fearmongering of a shitty earnings season, Uncle Elon decided to say the worst thing possible as users complained about their weekly usage of “Grok Bot” suddenly evaporating, per TechCrunch : Musk, who had said three days beforehand that saving money for the distant future was pointless with the advent of “super intelligent abundance,” added that these changes (which have yet to be fully defined) are a result of him “ just being sensible .” This freaked out the entire AI industry, because they realized, as I warned two years ago ( and revisited again in March ), that the vast majority of AI subscriptions are heavily subsidized , letting users burn several dollars’ worth of tokens for every dollar worth of subscription and eating the costs to get them through the door, only to rugpull them the months or years to follow as the company in question tries to pull costs in. This all began in June last year when Anthropic and OpenAI forced AI startups dependent on their models to start paying priority processing fees . A few hours later, Replit CEO Amjad Masad gave a dire warning : that if you’re enjoying a subsidized AI subscription [you should] get ready to get rug pulled. After all, Masad would know — shortly following the June 2025 changes to priority processing, Replit introduced “ Effort-Based Pricing ” that jacked up pricing for users, a problem made worse by the launch of its “Agent 3” product a few months later, per The Register : A short trip to the Replit Subreddit is all it takes to find unhappy customers, but my own thread soliciting experiences about effort-based pricing led to arguably the most damning response that, well, uses exactly the word that Masad chose : Masad claimed in another post that Replit was “ never subsidized ,” something that you’d only say if you had a deep distaste for the truth. Per The Information from August 2025 , emphasis mine: Riddle me this, Batman: what do you call it when a company sells a service at a price that does not cover its costs, absorbing said costs to retain the customer? I’m sure he has some sort of mental gymnastics routine where he considers that spend to be “marketing costs,” but we all know what actually happened. In any case, I 100% believe Masad when he says that rugpulls are coming. A recent update to OpenAI's ChatGPT and Codex usage limits page revealed that starting in December, users’ use of chat and coding functionality will draw from the same rate limits (which had been largely separated to this point) and that said usage will “be measured in tokens,” suggesting that OpenAI’s subsidized subscriptions are coming to an end.  And I imagine this problem will flow throughout the industry as venture capital dries up. I think I get asked five times a week when this all ends, and I truly cannot answer you and, as some of you have noticed, get criticized for having tried to guess in the past. What I can tell you is that the bubble bursts when the money runs out.  The signs are already there — OpenAI struggling to raise, Musk tightening rate limits on Grok Bot, debt markets shutting out neoclouds, Anthropic’s lower valuation and increasing scrutiny — and will only get increasingly-louder and more-deranged as things get desperate.  And now I’m even hearing low rumblings of a compute glut, with AI startups buying compute on the off-chance they might need it, assuming wrongheadedly that if they don’t they can sell it at a premium. You know, kind of like how people said in 2006 that if they’d just refinance their mortgage.  After all, the price of housing never goes down. If you haven’t subscribed to Where’s Your Ed At, now’s the best time. I’ve extended the sale — 10% off of the $70-a-year subscription for life ( click here! ) — for new subscribers for another week. It’s a great way to support my work, and you get an absolute ton of value at a lower price than basically every competing newsletter.  If you want to get in touch — and especially if you have any juicy information about Anthropic, OpenAI, Blackstone or any other companies in the AI bubble — hit me up on Signal at ezitron.76. I’m also on IB on your Bloomberg Terminal. $319.9bn in purchase commitments and commence leases $451.2 billion in signed leases that haven’t commenced. $17.4 billion in short-term commitments. $100.2 billion in commitments signed after September 30. $6.6 billion in additional short-term commitments signed after September 30. $69.8 billion due to be paid within the twelve months starting October 1, 2026 OpenAI and Anthropic need endless venture capital to fund their operations, and when that runs out — unless they can make it to the public markets — they will be crushed under their trillion-plus in commitments. 80% of OpenAI and Anthropic’s revenues come from venture-backed AI startups , which means that the underlying revenue growth of these companies is contingent on venture capital’s continual subsidies which, at some point, will run out. AI data center capex is almost-entirely funded by debt, which means that when that debt runs out, NVIDIA’s growth — and overall data center construction — will slow.  Per Westside , data center construction starts fell by more than half in September 2026 month-over-month ($9.4bn, down from $25.8bn in August), as the median cost of a new build grew by 31% year-over-year. Assuming that Anthropic makes it to the point that it will need debt, any hesitancy around data center debt will make it even harder for it to handle.

0 views
Unsung Yesterday

Gmail’s typable labels

Some time ago, I praised the URL design of Flickr , and the URL design of Unsung tries to follow a lot of the same principles. I’ll write about it some day. But those principles do not just apply to URLs, and I was just reminded of it when using Gmail. Since its beginnings, Gmail has had a concept called labels (reigniting the age-old debate between folder users and label users). True to Google’s origins, it’s also had a prominent and powerful search box. You can navigate to a label by clicking on the left… …but you can also search for it by typing its name: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/gmails-typable-labels/2.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/gmails-typable-labels/2.1600w.avif" type="image/avif"> Clicking on the left actually pre-fills the search, teaching you that next time you can also do this from the keyboard – and also that you can combine it with other things you see or type in that box: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/gmails-typable-labels/3.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/gmails-typable-labels/3.1600w.avif" type="image/avif"> It all feels pretty natural, and I believe this was hard effort by the team, back in the day. I think so because the default/​cheap way to do it would be something like this: = 2x) and (width >= 700px)" srcset="https://unsung.aresluna.org/_media/gmails-typable-labels/4.2096w.avif" type="image/avif"> = 3x) or (width >= 700px)" srcset="https://unsung.aresluna.org/_media/gmails-typable-labels/4.1600w.avif" type="image/avif"> I can see products choosing to do that, and I bet many did. But just like with poorly-designed URLs, this forces the user to jump through all the UI hoops to get somewhere. In Gmail, at some point, instinctively and without thinking, and having never done it before, you might find yourself typing and it will work, and you might not even realize what your fingers just learned.

0 views
Simon Willison 2 days ago

Qwen 3.8 27B on my laptop can interpret model weights, too

Yesterday's hot paper was Sparks of Weight-Space Programming: LLMs can natively read & write neural network weights by Rikiya Takehi, Jayden Teoh, Alex Zhang, and Omar Khattab. The paper (OK, the authors classify is as a "blog post", but it's paper-shaped) found that frontier models, in particular GPT-6 Astra, can both interpret and modify the raw weights of a machine learning model - literally a text description of the model containing a bunch of floating point numbers. I've been playing with one of the examples from the paper and I'm delighted to share that Qwen 3.8 27B running on my laptop can do this as well! Here's the highlight from their abstract, describing impressive capabilities for GPT-6 Astra and coining the term Weight-Space Programming for when LLMs analyze and modify model weights: Just by looking at the raw weights, GPT-6 Astra can tell what a network was trained to do . And without any environment feedback, it has no trouble writing, from scratch, small game-playing networks that outplay networks trained with PPO for 100 million steps. Likewise, asked to make Qwen3.5-0.8B better at math without gradients, Astra identifies an issue in its weights causing reasoning loops that Qwen’s own model card warns about, and fixes this by natively editing 0.016% of the weights . With the same sampling settings, this weight correction raises MATH-500 from 7.9% to 48.1% and generalizes out of the box to instruction following, raising IFEval by 3x. All of this is possible without allowing Astra to write training loops. It uses its reasoning to figure out what each part of a neural network computes, or should compute, and changes the weights accordingly. We call this Weight-Space Programming . The paper combines two topics that I think deserve to be treated separately. The first is what models can do with raw weights without running tools or executing code. The second explores how well models, once armed with code, can run operations to update and improve other models. spaCy author Matthew Honnibal called the paper misleading for conflating the two, and Sean Goedecke deconstructed the Qwen3.5-0.8B update example as taking the same steps that a human ML researcher would use. I'm going to focus on the no-tools question, which I think is the more interesting of the two. The paper presents the first question as Can LLMs understand model behaviors from weights? They trained four neural networks to play simplified 10x10 grid versions of four classic computer games - Breakout, Pong, Pac-Man, and Freeway (I had to look that one up , it's an Atari 2600 game from 1981). Then they fed those weights (as floating point numbers) to an LLM along with the following question: The GitHub repository that accompanies the paper is RikiyaT/lm_understand-logs . The exp1_which_game folder contains the prompts they used, with weights for the four games: I checked and, aside from the weights, each prompt is identical to the others. The prompts on GitHub are self-contained. My LLM tool has a option which can be passed the URL to a text file to use as a prompt, which means I can run any of the above like this: This example requires the llm-openrouter plugin installed, and runs the Breakout prompt against Kimi K3.1 Pro via OpenRouter. Here's what I got back from Kimi K3.1 Pro , which successfully guessed Breakout after 9m 41s and 19,493 reasoning tokens. But how about Qwen 3.8 27B ? That's still my favorite model to run on my own laptop - it's just 17GB (I use this version ) and somehow feels close to the leading proprietary models of 2025. I fired up LM Studio , ensured Qwen 3.8 27B was loaded with a long context window (the default 8192 context failed with errors), installed the llm-lmstudio plugin and ran this command: (I had to bump the timeout up using an environment variable, see this issue .) After 46m 12s and 43,506 reasoning tokens, Qwen on my laptop returned a response that ended like this (here's the reasoning trace ): Game: A simplified Pac-Man-style gridworld: an agent moves through a fixed 8x8 maze with central and corner wall blocks, moving objects/ghosts, and reward targets/pellets. Description: The agent navigates a fixed maze-like 8x8 board, using current agent/moving-object/previous-frame cues to move through corridors, collect reward-target cells, and avoid moving objects or hazards. Confidence: 72% This is impressive. I tried it on two of the other games as well. It identified Pong ( reasoning ) in 1h 4m 54s: Pong — specifically a Pong-like paddle/ball game where the agent controls a vertical paddle on the right side and must move up/down to intercept or return a moving ball/reward object. Description: The agent moves a right-side paddle vertically to hit or catch a moving ball-like reward target moving across the 8×8 field, while a left-side moving object/opponent and wall borders define the play; reward is obtained by successfully intercepting/returning/scoring the ball, and missing or failing to hit it is penalized. Confidence: And Breakout ( reasoning ) in 52m 25s: Game: Breakout, or an Arkanoid-like paddle/ball/brick game. Description: The agent is a paddle on the bottom row and moves left/right to keep a ball in play; the ball moves around the upper grid, and bricks/reward targets in the top rows give reward when hit, while missing the ball/hitting the bottom wall ends the episode or gives penalty. Confidence: 88% Qwen failed at the Freeway prompt, which didn't surprise me considering that game is more obscure than the other three. Here's that transcript - Qwen thought it was "A simplified Pac-Man-like grid game: agent moves 4-directionally". The reasoning traces are fun to skim, and almost incomprehensible. Here's a sample: What about agent channel0? We see some large channel0 rows near row8 col7/8 and maybe bottom? Let's list channel0 large: line436 input435 (row8 col7 ch0) -2.107,1.169,0.513...; line441 input440 (row8 col8 ch0) -0.376,0.010,1.564,3.855...; line445 input444 (row8 col8 ch4) 0.142,0.491...; line382? input381 ch0? Wait line382 input381: 381//5=76 (row7 col6), ch1? 381%5=1? 76 * 5=380, ch1. So not. Channel0 large maybe at row8 col7/8 only. Also top row? line44 input43 ch3, line49 ch3. Channel0 large maybe not many. Agent position could be near bottom-right? If the agent is typically at bottom-right? That said though, I expect a sufficiently experienced human being armed with a notepad and a pencil could get there with enough effort. It's a cool paper, but some of the wider commentary I've seen around it does not feel justified. I'm not ready to declare that the age of source code is over and our future involves incomprehensible machines editing their own model weights in incomprehensible ways. You are only seeing the long-form articles from my blog. Subscribe to /atom/everything/ to get all of my posts, or take a look at my other subscription options . breakout/prompt.txt freeway/prompt.txt pacman/prompt.txt pong/prompt.txt

0 views

What Composing Music Could Look Like

In the last post, we discussed the algebraic structure of horizontal structures . But I realized I haven’t actually communicated the argument behind why we might care about that algebraic structure. So rather than diving directly into the technical stuff I had planned for today, let’s hash that out first. If you recall, where we ended up was an abstract type which I claim is a precursor to horizontal musical structures, with the following common algebras: It’s worth considering what each of these ideas means, musically. And once we’ve sorted that out, it’s worth thinking about what other musical structure we might want on top. We can think about a as being a continuous function of s over time, combined with a set of times that we’re actually interested in. So what exactly does that mean? The continuous function part is just there to fill in the details when we change our minds about what times we want to look at. With our instance, we can do per-note (or per-whatever is held in the horizontal structure) transformations. For example, transforms But it also does more interesting things; (where selects voice ) transforms Furthermore, nobody says the in need be something that is musically meaningful. A is just a function from time to something; so we could do something crazy like building a that is a week-long signal moving from to at a rate of one a day. We could then use the instance to transform these labels into something more musically meaningful — perhaps into motifs or numbers of repeats, or something like that. Our instance gives us a operation, which combines things that happen at the same time. What it means to “combine things” depends on the things being combined. But as a little vibe check, we can use to smush together two little motifs: This example one is very vibes, so don’t read TOO much into it. The important part is that “things that happen at the same time get smushed together.” We’ll discuss in MUCH MORE DETAIL sometime in the future what sorts of smushing might be musically meaningful. The structure is very similar to the , except that instead of smushing things together, we can run a function that depends on the values in both things. This one is unfortunately impossible to show in standard musical notation, and wiring up some custom visualization isn’t a good use of my nanowrimo time. But let’s use our IMAGINATION instead. Imagine a voice-leading that looks like this (realized over a C-major triad): We can use our applicative instance to retarget the voice leading over any other chord. For example, given this one: Invoking over these two musical pieces gives us this remarkable chord progression: If you’re familiar with lots of harmony, you can see that both progressions are structurally equivalent — a neo-Riemannian P transform , followed by an efficient voice leading from CM to E#M, followed by the outer two voices switching pitch classes by moving in opposite directions. 1 Of course, nothing requires us to use the same chord throughout. We can apply our same voice leading pattern to a series of changing chords, for example: which results in You’ll notice we’re getting very interesting results without doing much work at all. I picked some random voice leadings and some random chords, and the computer did all of the work of figuring out what notes I’m gesturing at. Some other things you could do with this: instead of voice leadings, put scalar modulations. Or note durations! Or put voice numberings and project chords down to individual voices (which is different than the functor case, because here we can change which voice gets to sound.) Better yet, do all of the above, continuously, at different time scales. What I think this ends up looking like in practice is something akin to a modular synthesizer. You can plug the outputs of different signals into the inputs of others. But unlike any modular synthesizer you’ve ever played with, here our signals are allowed to carry macroharmonies, voice leadings, modulations, tension, motifs, rhythm, registral expansion, dynamics, timbre, or even just arbitrary mathematical functions. That’s probably enough for now. In the next post we’ll actually get around to looking at the implementation of and then giving better composable semantics around it. I extracted all the moves here from Tymoczko’s masterpiece Tonality: An Owner’s Manual . ↩︎ I extracted all the moves here from Tymoczko’s masterpiece Tonality: An Owner’s Manual . ↩︎

0 views
David Bushell 2 days ago

Death comes for XSLT

Last halloween, Google decided to kill XSLT . That was not a unilateral decision mind you, Google said “jump” and other browser vendors said “how high?” In response, I published my Intent to Deprecate and Remove Google Chrome . A performative declaration of course, I don’t install spyware. Fearing my parody lacked seriousness, I created XSLT.RIP to ensure the developer world was informed of Google’s death note . This did the trick, although a few commenters believed it was satire. There is subtlety to XSLT.RIP . The website itself is built with XSLT and when Google kills XSLT they’ll kill my website. The web standards process and its stewards ( Big Browser ) used to adhere to a social contract. Backwards compatibility was a major design principle. Under no circumstances do you ever purposefully break the web. Google decided to renege and break the web. XSLT.RIP will be broken soon and I’ll sit back and watch Google break it. 17 November 2026 appears to be the date of execution. Some Chromium-based browsers have been running a man-in-the-middle attack by injecting propaganda into XSLT websites. This site uses XSLT; that functionality is being removed from this browser very soon. When that happens, this page will likely no longer display correctly. You might be able to install a browser extension that allows you to continue viewing it. Otherwise, you should contact the maintainer of the site for further information. Source: This site uses XSLT: what Chrome’s banner means - XSLT Playground This appears to be an custom element that fails to render when it violates content security policy . I’m testing on ungoogled-chromium so who knows how it’s intended to look. The line of death is another “social contract” that Google has forgotten. They’re blaming website owners and acting like questionable purveyors of free public Wi-Fi. This is arrogant and intrusive. “contact the maintainer of the site” — you broke the web Google, own it at least. Thanks for reading! Follow me on Mastodon and Bluesky . Subscribe to my Blog and Notes or Combined feeds. “Don’t break the web” “Don’t break the web” “Don’t break the web”

0 views

Petered

The Peter Principle posits that people are promoted until they reach their level of incompetence. What happens after that point? The implicit assumption is that they stop getting promoted and linger at whatever level they’ve arrived at, and surely all of us can point to mediocre leaders who seem to exhibit exactly that circumstance. But in fact, that situation is not stable but subject to career pressure, as Christian Gläßel and Adam Scharpf define it in Making a Career in Dictatorship . Unable to move up, and very possibly unable to meet expectations, the person who is subject to the Peter Principle is at risk of losing their job, or even their entire career. Which means they might take an even greater risk to save it. Gläßel and Scharpf write: The logic of career pressure also offers a compelling twist to the Peter Principle. The Principle posits that individuals in hierarchical organizations are promoted until they reach their level of incompetence, where they can no longer perform effectively and cease to advance. In contrast, our logic shows how these individuals may surpass this point and climb the hierarchy even further. Career-pressured individuals often take on high-risk, labor-intensive, or morally contentious tasks. By loyally executing the organization’s dirty work, they can reestablish their value, regain competitiveness, and even outpace peers who were previously ahead of them. Alternatively, they may resort to sabotaging superiors or higher-ups by making false allegations or revealing secrets to create vacancies above them and forcibly advance their careers. Gläßel and Scharpf, Making a Career in Dictatorship, page 182 In other words, someone promoted up to their level of incompetence, sensing a threat to their own livelihood, becomes a threat to everyone else. I’m reminded here of David Graeber’s theory in Bullshit Jobs , that a great many management jobs are basically feudal retainers—people kept around in order to make the folks above them look good. Very often, making someone else look good may well mean tackling the dirty work for them so that they can keep their hands clean. The petered leader has in effect been made an imposter—a real imposter, not a “syndromed” or perceived one. They must seem competent, to preserve the appearance that they belong in the role; while in fact they are not capable of delivering on their actual responsibilities and may have been quietly tasked with unrelated services both illegal and unethical. As a result, one of the primary tools of the real imposter is obscurity. Imposters cloak themselves in a fog of obfuscation and busyness, so that the people around them can never say for sure what it is they are doing, or how well (or not) they are doing it. What we call imposter syndrome was originally termed imposter phenomena , a term that makes plain that it is something that can be observed, not merely felt. The transformation into a syndrome shifted the experience of being impostered by a patriarchal, white supremacist society into a medicalized disorder, something for which the impostered person must be treated. That’s a neat trick: to shift the locus of treatment to the mistreated person, rather than the system that caused her harm. But perhaps there’s even another, more diabolical move here. What if the popularity of imposter syndrome is, in part, a means of obscuring the actual imposters in our midst? What are we missing when we look inward instead of around? View this post on the web , reply via email , or become a supporter .

0 views
Stratechery 2 days ago

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?

0 views