Jacob Tomlinson's profile picture Jacob Tomlinson

Writing blog posts while walking the dog

18 minute read #ai, #writing, #blogging

I’m excited about how AI is changing how I work, it has made me more productive and able to get more things done. I’m also frustrated by how much low-effort content is being generated and sprayed across the internet. Content that isn’t created to benefit the reader, it’s there only to benefit the creator via ads, referrals, etc.

I’ll admit I tend to write blog posts for my own personal reasons. Usually it’s so I can avoid explaining something multiple times to different people, or so I can get a better understanding of an idea in my head by writing about it. I primarily blog for myself, but the goal is to benefit others with the content too. I’m not trying to sell ads or anything like that.

Every time I read model output that I didn’t personally prompt myself I feel inconvenienced, or I feel like the person sending me model output is being rude. It’s like they can’t be bothered to metabolise the ideas themselves and my time reading it is less valuable than their time writing it. Occasionally I do want raw model output from people because I want to put it into another model. But it should be included as an appendix so that it can be my choice. It shouldn’t be foisted upon me at every turn.

I’m also sensitive to blogs and other web content that has been created purely by an AI. You can just tell from the writing style that no effort has gone into it.

I feel that if you expect somebody to take the time to read something, then you need to load that information into your own brain, have your own thoughts and make your own decisions about it, and then take the time to output it in your own words and ideas. That’s what gives it value. That’s what makes it different. You’ve thought about it and added your own ideas to it. You’ve combined a bunch of ideas into some new piece of information that you want to tell people about.

It may be existing information that you’re resurfacing, or that you’re trying to improve your own knowledge about. It might be new information, where you’ve made a connection between some things and you want to tell people. Or it may just be a combination of experiences. I’ve experienced the same thing a hundred times but I can’t find it written down anywhere, so I’m going to write a summary of those hundred experiences.

It’s all stuff that’s coming from you. The value is you.

Extrapolation vs interpolation

It’s my observation that every kind of AI usage seems to fall into one of two broad camps.

The first is where you take a small piece of information, a basic prompt, and pass it into a model to expand or decompress it into something larger. This happens a lot when coding and building things with AI. You’re trying to go from the seed of an idea to an implementation of that idea, and it’s a very extrapolative process. Maybe you’re using something like Matt Pocock’s grill me skill to add more information to it, but ultimately you’re letting the AI find its way. You’re letting it expand and fill that space. Coding harnesses exist to take that extrapolative process and constrain and corral it into something useful. You follow the model’s extrapolated output, but you guide it into achieving the goals you want to achieve.

That’s great, and I have no qualms with that kind of usage in the places where it’s appropriate. What I dislike is when that kind of workflow is used to generate written, spoken or video content that you expect other people to consume.

I don’t think it’s appropriate to use extrapolative generation when creating content, because you’re not adding value. You’re taking the seed of an idea and adding the average stochastic knowledge about that idea to fluff it up to enough volume to pass as a piece of content. Then you expect people to read it, and in doing so distil it back down to what is effectively your prompt, because the prompt is the only thing you put into it.

You might as well just tweet the prompt instead of blowing it up into a piece of content.

The second way of using AI is interpolative. You take lots and lots of context and use the model to filter and distil it. I use this a lot when I’m generating ideas. I might have a long sessions where I talk to an AI about an idea I’ve had. We talk through the pros and cons and the way I would approach it. I ask it to research different things, or we have a conversation about a paper or a blog post. I might seed the conversation with a bunch of stuff I want to start with, like “here’s a project, let’s go and read the code”, and then talk about how we could extend it in this way or that way. I start with this big mass of stuff and have a long conversation, and the value I’m trying to get from the AI lives within everything I’ve said and all of the context we’ve put into the context window. I’m trying to pull out connections, links and repeated statements. I’m trying to find the consistent path and clean it up and neaten it into something more useful than a big pile of source material.

These are two very different uses of AI. In one you take a small amount of information and add noise to it. In the other you take a very large amount of information and distil out the nugget of gold in the middle. You’re assaying your knowledge to smelt it down into the valuable minerals, rather than fluffing up thin information.

Both are useful tools, and you can do different things with them. But when it comes to creating content, whether that’s writing blog posts or making videos or whatever, it’s only yours if you’re doing the second one. If you’re creating extrapolative content then it isn’t yours. It’s the model lab’s content that you’re just posting under your name.

Getting away from the desk

I’ve spent most of my life obsessed with computers, and I’m extremely fortunate that I get to work in the industry that I am so passionate about. But one of the only things I dislike about working in the tech industry is that I have to spend all day, every day, sat at a desk.

I’ve worked in offices with cubicles, in open plan offices and in home offices. I’ve spent most of my time trying to counter that sedentary lifestyle with sit-stand desks and regular breaks, but it’s a challenge. With the current wave of AI and all the improvements going on I can see an end to that requirement of being sat hunched over the machine I’m working on.

At the moment I communicate with the computer by typing and clicking, but we’re so close to the point where I can fully communicate with it by speaking and listening. That unlocks a totally different way of working. It would allow me to not sit at a desk all the time. It would let us completely change the way we think about office furniture. If lots more work becomes conversation, deep thinking and communication, then we can work in ways that aren’t so rigid around where the computer is. You put your phone in your pocket, put your headphones in, go out for a walk in the countryside and talk through a problem you’re having. Want to learn something? You talk and listen. Want to build something? You describe it and refine it.

I’m sure there will always be tasks that need a screen or some other kind of input. Reading and writing will always be important and it’s necessary to keep doing them. But talking, listening and thinking are also core components of knowledge work, and those don’t require a screen or a desk. So maybe we can just do things differently. I’m really excited about that, and I think not spending 100% of my time at a desk will be good for me both physically and mentally.

Writing without a desk

A big component of my job is writing. I write issues, pull requests, planning documents, architecture documents, meeting notes and reports. As a software engineer leader I regularly have to communicate what we’re building. With AI tools getting so good at turning plans into code I write less and less code, so more of my life is reviewing code and writing reports and documents.

When you write a document you have to think, communicate and learn. You need to fill your brain with a bunch of information and then distil it down into a document. Combine that with my goal of getting away from the desk and I’d love to get to a point where I can do that without a screen and just have my headphones in. Maybe I still have to sit and read, or maybe I can have conversations with an AI, or listen to a podcast or a video. I fill my brain with state, and then I need to think, distil and refine.I can talk out loud and describe what I’m thinking, what I’m feeling and what I think we should do next.

It’s almost like I’m talking to myself, the AI is just a mirror that becomes a reflection of my own thoughts and feelings. It can add to that, it can discuss and refine, but it’s effectively my own mind building up a context that I’m then going to interpolate within.

I love technical writing and I love my blog. I often have ideas for things I want to write about, but I don’t have the time to actually sit down and write. Writing a blog post usually takes me half a day, maybe even a whole day if it’s a long one. I brain dump onto the page and then spend hours moving things around, smushing stuff about and editing. I do many, many editing passes on my content. A post that takes 10 minutes to read takes hours to write. I don’t always have time for this, so I miss opportunities to write about things because I just don’t have the hours needed to commit the words to the page.

I feel like there’s an opportunity here. How can I use AI to get this content written down without violating my principle of not publishing extrapolated model output? I’m not trying to take a half-baked prompt and blast 2,000 words onto the page through an LLM. I’m trying to refine my thoughts into something useful, and to write as little as possible to communicate the thing I want to talk about. And I hope the thing I want to talk about is nuanced, interesting and useful.

So I’m starting to experiment, and this post is me experimenting with a new workflow. I’ve spent a long time thinking about the principles and concepts I’m writing about in this post, and now I’m putting the plan into practice. I started this blog post on a walk with my dog, talking to an AI about this core idea. We filled the context with all the relevant things over about 30 minutes, and then we put it together into a structure. But I chose the structure. I decided the direction this post was going to go in, not the AI. This is just a reflection of me and my ideas.

Seeding the context

So how do you make sure you’re working in an interpolative way and not an extrapolative one?

Nothing I write is some brand new, insanely novel idea that nobody has ever thought about. It’s usually a culmination of thoughts and ideas. Maybe I’ve been thinking about a bunch of posts I’ve read and how those ideas connect together into something I think is interesting and worth talking about. Or maybe I’ve already written a post and I have thoughts about how to extend it and what to talk about beyond it based on new information or ideas.

When I start writing a post I usually already have some references in mind. These are things I’ll probably link to at some point, because they set the scene or back up points I’m going to make. I know what they are because I’ve already spent time thinking about all of this on my own before I start. Linking to them adds credibility to the post.

So one way to start a post is to sit down at a desk, open whichever AI you want to use and seed it with those links. Give it all the links and say “I’m going to write a post and I want to talk through what the content is going to be, and I know it’s going to reference these things”. Once you’ve given it that prompt it will go off and read all of them. You’ve started to fill the context, not necessarily with your own words yet, but with ideas you care about and think are important. Now you can start building on that foundation.

Thinking out loud

Once the context is primed the AI will probably reply with a bunch of stuff, maybe recapping the posts it’s read, but I usually just ignore that. I put my headphones in, go for a walk and tell it what my goal is. “I want to write a post about this topic.”

I might not have all the ideas fully fleshed out at that point, it’s still a loose soup of stuff in my head. So I’ll say that I want to have a conversation about how I’m going to write about this topic, and that at some point I want to put together a structure and an outline, but not yet. For now I just want to talk about these loose ideas and get everything into the context.

Then I just start talking. I think out loud, talking through the ideas and where I’m going with them. This can be a really long process. Sometimes the AI will try to nudge you towards making the structure, and push you in whatever direction it thinks you want to go next, but I often just push back. I might walk for 30 minutes thinking out loud, basically talking to myself. That’s how my workflow used to go when I wrote posts, I would just sit and think to myself. Now I’m thinking out loud into something that is capturing it, and that thing can interpolate within it later on.

Why not stop here?

Once the context is filled with all this information I’ve done all of the thinking work. I have a big soup of content that is mine. It belongs to me because these are my thoughts and ideas, and I’ve spoken them out loud. I’ve effectively crossed off that first point. I’m doing interpolative writing instead of extrapolative writing, and therefore I feel comfortable posting this on my blog and asserting it is my own content.

If I asked the model at this point to distil what we’ve talked about into a post, it would probably do a fair job of taking my thoughts and ideas and writing them out as a blog post. But it would be very clearly AI written, because although they are my throughts the words would be its words. To a reader it would be clear that this is AI content, and they might bounce off it straight away. They’d spot the tells, the words and phrasings they recognise from AI content, decide this is probably low-effort content and stop reading.

That would be a shame, because it’s not the same. The effort has been put in here, and I would hope people would read this more favourably than a tweet that has been expanded into a post. So this is a big challenge. I don’t think it’s okay to stop at this point. I need to keep going and keep owning the creation of this content.

Dictating the post

What I’m experimenting with this time is having a discussion about structure once I’ve done all of that and then dictating the post in it’s entirety. For this content to really remain mine I need to walk through the whole post from beginning to end, laid out the way I’d like it. That way I’m doing the storytelling and setting the narrative, so it hopefully still sounds like mine, because it still is. But I haven’t had to sit and type it out.

I can’t usually hold a whole post in my head at one time, and I can’t just pick up where I left off when I’m dictating. I want to give myself some markers. If I’m giving a conference talk I have slides, and I mostly use them as prompts to remind myself where to go next. Lately I’ve even experimented with not having slides because I’m just telling a story, and I held a notebook with bullet points that walked me through it and kept me on track, because I know I’m going to forget where I am or get lost.

I wanted to do the same kind of thing here. I put together a structure, then I said to the AI “remind me of point one” and dictated point one. I walked through it pretty much word for word, the way I would tell it if I was giving a conference talk. Then I moved on to point two, point three and so on, each time asking the AI to recap what we want to talk about in the next point. It gives me a quick 10 second summary of a point that I’ve already decided on. It isn’t coming up with the idea, it’s just reminding me of my own structure from earlier in the walk. Then I say out loud what I want to say, word for word. Written and spoken words are slightly different in how we phrase and structure things, so I needed to do some cleanup later to figure out how it’s going to look on the page, but I’m effectively dictating my words for each section of the post. The words you are reading here were spoken by me, not generated by an AI.

By the time I get to the end of the post the model has all of it in its context. The initial source material, the unstructured discussion about where I want this post to go, the discussion about how I want to lay it out and the key points I want to make, and then each section dictated with exactly what I want to say. In theory I now have a context that contains the blog post I want to write. It’s my blog post and my content, but it’s not ready yet. I need to actually get the words into a file that I can publish.

The final step

Once I have a session that contains my blog post I need to transform it into writing. At this point I paused and asked myself a few questions. Can I rely on the AI to write it for me, or do I need to sit down and write it myself? Is this all just a big thought exercise to help me refine my ideas? Should I discard the session or can I use the model to write the post?

I decided that for this post I’m going to experiment with letting the model output a first draft based on my dictation. It created a markdown file containing a lightly cleaned up version of what I said. When I’m talking there are ums and ers and pauses, and I correct myself with “oh, I meant this” or “I didn’t mean to say that, I meant to say this”. I’m hoping the model has successfully followed all of that and lightly cleaned up what I said into something that looks like I wrote it.

I’ve also given it some examples of other posts I’ve written to help communicate my writing style so that it can more accurately convert from my spoken style to my written style.

I then asked the model to output a markdown file which I moved into my favourite editor for a two full editing passes. It’s almost like I’m working on a final copy of my own work. I fixed any spelling mistakes, trimmed unecessary words, and I tried to remove any AI tells that are left.

Honestly I think it’s done a pretty good job. This post is written the way I wanted and it contains the information I wanted to convey.

Did I save time?

I wrote this post in a few sessions over a couple of days:

According to my blog software’s reading speed estimate this post will take the average reader 15-20 minutes to complete. This is one of my longer pieces of content that in the past would’ve taken me a full day to write and edit. I’m optimistic here that I’ve managed to reduce the writing time by 3-4x without compromising on quality, and I’ve also managed to spend most of that time outside lightly exercising and enjoying nature.

Should I have typed it myself?

So what I have produced here is content that is a distilled and refined version of my thoughts and ideas. I’ve checked all of my personal boxes in staying true to not publishing AI content. But it’s unclear to me whether there should be a final, final pass where I retype the whole post from scratch.

Typing the post out could be considered the proof that I’ve done the work. Do I need to earn that proof? If I did type it myself, nobody would read it and think “this is AI”, because there would be no AI written words in it. But I don’t know whether that’s necessary. I don’t know whether the content I can produce through this process of dictation and distillation is enough.

Honestly, I’m interested in what you think. Come and find me on Bluesky and tell me what you think about this post and how I created it. Did it feel like AI content? Do you feel like I stuck to my principle of not putting AI created content on my blog? I’m genuinely interested in your thoughts and feedback.