11 minute read

I think you might have noticed that I’ve been publishing a bit more lately.

In August alone, I published 14 posts. In 2024 and 2025 combined, I published four.

AI has a lot to do with that.

The easy explanation is that AI made it faster to generate text. That is true, but it is also the least interesting part of what changed.

What changed much more is the amount of friction between having an idea and turning it into something I am comfortable publishing.

August was also a slightly unusual month. I was on vacation and had plenty of time while lying on a sunbed. Writing Markdown on a phone is not particularly pleasant. Having a structured conversation with a chatbot is a very different experience.

Still, having more time only explains part of it. AI changed how I move from an idea to a finished article.

The interesting part is not that I can produce more words. It is that I can move more ideas through a process that still has a fairly high bar for publication.

The original bottlenecks were editorial

English is not my first language.

I have been speaking and writing it professionally for many years, but my Italian background still shows up in how I construct sentences. In particular, I have a tendency to make them longer than they need to be.

That was one of the first things I wanted help with.

The other problems were structure and pacing.

Looking back at some of my older posts, I do not necessarily think the technical content is wrong. What bothers me more is that sometimes I did not guide the reader through the idea as well as I could have.

I knew where I was going because I already understood the subject. The reader did not.

AI became useful to me first as an editorial tool: helping me make prose more natural, identify awkward sections, improve the flow of an argument, and make sure the article does not require the reader to reconstruct too much of the reasoning on their own.

That does not mean preserving my voice word for word.

Sometimes my first phrasing is too colloquial. Sometimes a sentence is unmistakably mine mostly because its structure is unmistakably Italian.

I want the post to sound like me, not necessarily like the first version of me that typed it.

Finding the interesting version of an idea

Before I write anything, I usually spend some time sparring with the idea.

There is a lot of useful introductory content on the internet. It matters. It helps new developers get started and expands the audience for a technology.

It is just not what I want this blog to optimize for.

I would rather write for people who already know the basics and are interested in the decision behind something, the trade-off, the failure mode, or the part that turned out to be less obvious in practice.

That also means that a new language feature is not automatically a blog post.

I have written about syntax before. My older posts about pattern matching are examples of that. But I am less interested in writing a post whose entire message is “look at this new syntax” or “here is what a new version of C# added.”

The sparring step helps find what is actually interesting about the idea.

A recent example is an article about contract-first APIs that I am preparing for later this month. It could easily have become another article about OpenAPI or MinimalOpenAPI. I already had an implementation-focused post covering much of that territory.

The useful angle turned out to be different: when an API is a boundary between independently moving teams, the contract is first of all an agreement. Generating it after the implementation changes when that agreement becomes visible.

The opinion did not come from the model. The conversation helped decide which part of the context deserved the emphasis.

That distinction matters to me.

Sparring is where I find the interesting version of an idea, not where I ask the model what I should think.

The interview is a smart rubber duck

Once there is an angle, I sometimes switch into something closer to an interview.

This is probably the part of the process that surprised me most.

A normal rubber duck is useful because explaining something forces you to organize your thoughts. A chatbot can be a slightly smarter rubber duck. It can ask follow-up questions, notice that an answer is vague, challenge an assumption, or reflect something back that exposes a pattern I had not articulated yet.

Sometimes the interview is mostly extracting material that I already know.

Sometimes I am using it to explore the subject myself.

The post I wrote about why Residuality Theory resonates with me relied quite heavily on this. I had ideas, reactions, and experiences, but the conversation helped separate facts from opinions and made me explain why certain parts of the theory resonated with the way I already approach architecture.

There is another useful outcome too: sometimes the interview shows that there is not enough of a post there.

That is fine.

I have ideas that I thought would become follow-up posts and eventually put back on the shelf because I did not feel I would want to read the result myself.

Sparring helps me find the angle. Interviewing helps me decide whether there is actually a post there.

The outline builds the reader’s path

Outlining was probably the first writing task I consciously started delegating to AI.

By that point, the interesting material should already exist. The outline is not supposed to invent it. Its job is to decide how the reader should encounter it.

What needs to come first?

Which example makes the next point easier to understand?

Which caveat belongs immediately next to the claim it qualifies?

Which side topic is interesting but does not belong in this article?

The outline can become fairly detailed. We often attach specific questions or angles to individual sections so that they are addressed where they matter instead of being remembered halfway through drafting.

This is also where scope becomes visible.

When I was preparing a recent post about AutoFixture, Bogus was initially part of the same discussion. Once we laid out the article properly, it became obvious that the Bogus material was large enough to pull the post away from its main point.

So we cut it.

It became a separate article instead, scheduled for October.

The outline decides not only how the article flows, but what the article is allowed to contain.

For me, that is also part of respecting the reader’s time. A technically correct post can still be frustrating if the reader has to work out which parts matter or why the article suddenly wandered into another subject.

The first draft comes surprisingly late

This is why the actual first draft appears relatively late in the process.

By the time I ask AI to turn the outline into prose, most of the important decisions have already been made.

We know the thesis.

We know the order of the argument.

We know the examples and trade-offs.

We usually know which questions each section needs to answer.

At that point, drafting is largely about turning something we have already explored and structured into readable prose.

Around the same time, I settle the rest of the article’s framing: title, excerpt, social announcement, tags, URL slug, publication date, and the other frontmatter that belongs to the post.

Once AI has participated in that much of the workflow, though, the mechanics lead naturally to a more interesting question: what makes the finished post mine?

The experience behind the article is mine. That experience is what lets me steer the conversation, recognize when an angle is weak, reject suggestions that do not fit, and decide which details actually matter.

The prose can be assisted.

The editorial direction still depends on experience the model does not have.

Faster does not mean less selective

Fourteen posts in one month can reasonably make someone wonder whether the bar simply got lower.

I do not think it did.

I also was not trying to beat a publishing record. August happened to combine a lot of available time with a workflow that made it much easier to use that time productively.

There are still plenty of ideas that do not become posts.

Some need to marinate.

Some turn out not to have enough substance.

Others are waiting for reality to catch up.

For example, I would like to write modern follow-ups to some of my CI articles for CircleCI and Azure DevOps. Right now those posts would be missing an important part of the story because those platforms do not yet support the NuGet trusted-publishing workflow I want to describe.

Writing something anyway just to fill a slot would not make the article better.

The process makes it easier to publish more of the ideas I already have. It does not make every idea worth publishing.

August is also not the cadence I am aiming for. I would like to see whether I can sustain roughly one post per week for the next few months.

That feels much more useful than trying to turn the blog into a content machine.

Review is the gauntlet

Drafting is not the end of the process.

Before I publish, the post has to run a gauntlet of reviews.

First, I read it myself.

Then I often ask another LLM to review the article without giving it the context of the conversation that produced it. That distinction is deliberate.

If a reviewer only understands the article because it remembers the discussion that led to it, the article is not ready.

I also use a dedicated Copilot reviewer that looks at the post independently. Where possible, I use different models and different hosting solutions because I do not want every review to reproduce exactly the same preferences and blind spots.

For articles that matter more, I sometimes add another reviewer entirely: a friend.

The review is not just proofreading.

I want grammar and awkward expressions caught, certainly. But I also want pacing, structure, repetition, technical precision, and the overall editorial quality challenged.

And I do not automatically accept what a reviewer says.

Suggestions can be wrong. They can misunderstand the point. They can make the prose bland. LLMs in particular can be far too eager to agree with whatever is already on the page.

A review is another challenge, not an authority.

Making the process explicit

Eventually I formalized steps I was already doing into separate skills. The reason was fairly mundane: I wanted to recall and reuse the process without explaining it verbosely every time I started a new conversation.

Giving the stages separate roles also helps keep them honest. Sparring should not rush into drafting, an interview should not fill missing personal experience with plausible generic material, and an outline should organize what we discovered rather than invent an opinion that was never discussed.

If the required material already exists, a stage can be skipped. The structure is there to reduce friction, not to create ceremony.

Disclosure is part of the deal

There is one more part of the process that I have recently made explicit on the blog.

When AI materially participates in an article, I disclose where it was involved.

That may seem like an odd choice if the goal were simply to maximize output. AI-assisted authorship is controversial enough that saying nothing would certainly be easier.

But that is exactly why I prefer making it visible.

The labels are not there to excuse the article, nor to calculate what percentage was “written by AI.” They describe where AI participated in the editorial process.

I would rather establish that trust with the reader explicitly than rely on them guessing how an article was produced.

What actually changed

The practical effect is that many small sources of friction are cheaper to deal with.

It is easier to improve awkward prose. It is easier to organize an argument. It is easier to explore an idea in conversation when I am away from a keyboard. It is easier to get another editorial pass over a draft.

Those gains add up.

But the most useful consequence is not that less of me goes into the blog.

It is almost the opposite.

More of the ideas, opinions, and experiences I already have can make it through to a finished article because some of the blockers that used to sit between the idea and the publish button are gone.

AI influences the process. Of course it does.

Everything we read and everyone we discuss our ideas with influences us to some degree. I am still the one doing the editing in the broader sense: deciding what I believe, what matters, what gets removed, what deserves another pass, and what I am willing to publish under my name.

AI made writing cheaper for me.

It did not make judgment cheaper.

Recap

Fourteen posts in one month would not have happened without AI.

The useful measure for me is not how many drafts I can produce. It is whether weak angles get rejected early, excess scope gets cut before drafting, and the finished article survives review before I put my name on it.

That is where the efficiency gain matters: I can publish more without making “more” the goal.

The efficiency gain is real.

So is the editorial bar.

This article was produced using an AI-assisted editorial process and was reviewed with AI assistance. Read about my editorial process.

Support this blog

If you liked this article, consider supporting this blog by buying me a pizza!

Tags:

Updated: