Ideas and Expression

Ideas and Expression

The other day I had an idea around how we could make agents more effective working with Xcode's toolchain, and went on an agentic journey to validate the idea and share about it in this blog post. These kinds of explorations play a role in getting ideas for how we could push the boundaries of Apple development, and also serve as a marketing tool. Developers enjoy these in-depth blog posts over shallow and very SEO-optimized ones (e.g. 5 things you didn't know about Xcode). But I'm not going to talk about the content of the blog post here. Instead, I'd like to share how LLMs, and in particular Claude Code, helped me throughout the process. Months ago, I was very much on the fence about using AI tools to write and publish content on the Internet. You might have heard the term AI Slop, and for some time, I thought anything produced by it was slop. But at some point, I realized that the slop content was produced by the same people who were already producing slop before, just at a slower pace or with at least some personality. I can't pinpoint what exactly changed my mind there, perhaps reading some blog posts that had been written by AI, where the author had placed the focus on the ideas that they wanted to share, and used AI as a tool to communicate them in the way they wanted them to be communicated. I believe it was some blog post by Peter Steinberger. So I started doing the same. I separated the ideas that I wanted to share from how they'd get shared, and oh god, the whole process became so much fun, not just writing blog posts, but also coding, coming up with social publications, or even preparing presentations with tools like sli.dev, which allow you to write slides in the universal language markdown. When there are ideas in my mind, the first thing that I need help with is structuring them and making the connections. In the case of Tuist's blog post, it was an idea of how we could use build system's structured data, persist it, and expose a queryable interface for agents to consume that data. I knew what we needed was in Apple's open source codebase, but the amount of code there was so vast that it would have taken me days or weeks to have the overview that I'd have needed to be able to do the exploration. And here's the thing, without AI, I wouldn't have even thought about it in the first place. My time is very limited, so I can't afford doing that, but AI changes that, and suddenly allows me to learn and validate ideas in minutes. Slowly, I built a good picture of the contract between Xcode and the build system, and started brainstorming what value we could derive from that data to help teams optimize their builds and project setup. This was so much fun. I had ideas like contention points for parallelization, or slowest compilation branches that approximate how much the compilation of the whole app is going to take. And the agent went beyond that making other suggestions, and proposing a CLI interface to query that data from an SQLite database where the data would get persisted. In a few iterations, I had a working executable that I could run against Wikipedia's build. It worked, and analyzed the data. And as we were both finding out about the possibilities of the idea, the AI would capture those in the blog post. And here's where how ideas are expressed comes into play. I'm not a native English speaker, so my usage of the language is very basic. So leaning on a tool to express the ideas is quite unlocking for roles like mine, where it takes me 2x or 3x the effort to make it sound like the Spanish version that I'd write. If anything doesn't sound right, or sounds very flat without personality, I'd just iterate on it. And this brings me back to what I said before. Whoever doesn't care about how things are expressed will just take the output, package it, and put it on the internet. It's the same as with code. How many people have you seen that don't look at the code anymore? They are probably the ones that didn't care too much about the craft before agents existed. It's the same thing here. And for me it's not black or white in terms of I'm going to do everything with AI. I'm developing an intuitive sense of when I feel like I'd like to write something with AI. That blog post on Tuist? It felt a natural choice. I treated it as an exploration whose output I knew would be a blog post and a tool. This one? I'm writing it myself, I'm letting the words flow, not paying too much attention to the grammar, and focusing on capturing the messiness of ideas that's currently in my head. I'm doing so with the peace of mind that AI will do a review. I don't know about you, but I find it crazy how enabling the technology is, and how my perception of it is changing. I read the blog post multiple times before publishing it, and there were pieces in it that blew my mind because I couldn't have come up with them myself. So as I said before, the people who want to produce slop, whether it's code or content, will do that with or without AI. And the ones who deeply care about the ideas that they want to put out there and the craftsmanship that makes them possible will treat the technology as a tool of empowerment, that helps us convey them in the best way possible, and prototype more things eliminating a good chunk of the friction.

Dec 03