It took me a couple of hours to go through some analysis, ponder, write up my thoughts, draft, and edit this blog post. Did AI help me with this? Absolutely. Otherwise, it would have taken me 10 hours instead.
2025 marked the 20th anniversary of this blog. I took the time to reflect on 20 Lessons from 20 Years of Blogging. It was also my most active blogging year in terms of the number of posts published. Towards the end of the year, as I prepared my 2025 Annual Review, I thought I’d try blogging daily for a week starting January 1st, to see if I could do it.
One week turned into one month. I pondered what I learned from that experiment. Then I wondered if I could do it through the end of the quarter. That seemed like a daunting effort.
Near the end of February, I was reflecting on the drive to share knowledge and the process that enabled me to keep going up to that point.
I made it through the end of Q1. Again, I pondered the full quarter of daily blogging. I enjoyed the analysis of the period.
Could I keep going? Through the end of Q2? Half a year of daily blogging?
I kept collecting thoughts and lessons learned, sharing them with others, and then showing up to turn those thoughts and lessons into blog posts to publish. On two occasions, when I was going to be traveling for a few days, I made sure to prepare and schedule a few posts ahead of time. Other than that, every post was the work of spending anywhere between 15 minutes and 2 hours sitting with my thoughts, going through my notes, and pondering what I’d like to write about.
And I made it through the end of Q2.
An Improver asked me if I found it to be valuable. To me? Yes, very much so. I get much out of it.
With life moving so fast, I don’t always get to sit with ideas, thoughts, and lessons long enough to deeply internalize them. Dedicating time to do that every day has been essential. As I revisit my posts from this period, I find things I had forgotten I blogged about. I find things I forgot I had learned at some point — and I’m glad to revisit them, often making new connections with lessons I’ve picked up since then.
I’m also told by readers who reach out that a post has helped them somehow. They don’t read every post, but some of the ones they do read are helpful. That encourages me to keep going. It’s been gratifying to hear from some readers that they’re pointing their AI tools at my blog to apply some of my thoughts and opinions to their own work and life.
What I’ve been writing about
AI as a Thinking Partner, Not Just a Typing Assistant
Over these six months, my relationship with AI has focused on elevating my thinking, not just to generate code faster.
-
I pushed back against the phrase “human in the loop” and argued that it incorrectly positions humans as a mere checkpoint for machines. Instead, the AI is a tool in my loop, operating within my context and under my control.
-
I wrote about the 80% Agent Problem: while AI agents can do 80% of a task well, the remaining 20% requires a human who knows what “right” looks like. True orchestration requires humans to manage the handoffs and catch the subtle errors that agents miss.
-
Rather than chasing every new flashy tool, I advocated for a daily habit of asking, “Could AI help me with this specific friction right now?”
Behavior-Driven Development and Human Stories
BDD keeps showing up in my writing, always framed as a communication methodology first and a testing tool second.
-
I championed the shift from abstract “user stories” to “human stories”, reminding teams that software exists to serve people with real emotions like anxiety or distraction.
-
I mapped Simon Sinek’s Golden Circle to the user story format in One Why, Many Hows. The business owns the “Why,” while the delivery team owns the options for the “How.”
-
I shared a workflow where AI transforms vague stories into verifiable behavior using concrete markdown tables, creating a shared contract before any code is written.
Outside-In Architecture and Development Practices
Several posts covered technical practices that start from the user experience rather than the database.
-
I emphasized designing the API response shapes based on what the UI needs, using JSON files as a contract before writing any implementation code.
-
To decouple frontend and backend work, I wrote about using real endpoints that return stubbed data, allowing UI development to proceed in parallel without waiting for backend logic.
-
I warned against starting projects by building lookup tables, advocating instead to build the core workflows first to truly discover what data the business needs.
-
I published a multi-part series on the Recipe Pattern, allowing the backend to own validation rules and serialize them into a “recipe” that the frontend dynamically consumes.
-
I detailed a robust architecture for database seeding using YAML files, DTOs, and the visitor pattern, enabling fast, readable data setup for testing, demos, and client onboarding.
Knowledge Management and Continuous Learning
A handful of posts came from my own note-taking and learning habits.
-
I detailed my use of Obsidian, relying on daily notes as a navigation hub and utilizing “orphan links” to connect sprints, projects, and meetings without relying on complex folder structures.
-
I shared a technique of bringing my Obsidian vault folders directly into my IDE workspaces, allowing AI to cross-analyze my codebase with my domain notes and sprint plans.
-
Drawing on a lesson I learned as a teenager, I emphasized that “the important thing is not to know everything, but to know where it is”, applying this UX concept to learning, onboarding, and AI agent skills.
-
I explored the linguistic connections between hindsight, foresight, and insight: making the invisible visible in the present.
The Human Core of Technology
Running through most of what I write is a pretty simple belief: technology works best when it serves people, not the other way around.
-
I wrote about what AI is really for. Recalling my time processing mortgage payments in 1990s Brazil, I argued that the real value of automation isn’t speed. It’s buying us the time to look at each other and have an actual conversation.
-
I highlighted that “reading the room” — noticing the unspoken concerns, the shifting tones, and the silence in a meeting — is something AI cannot do. It only processes what’s made explicit.
-
I clarified that UI is just the “conversation” on the screen, but true UX encompasses a person’s entire life and real-world anxieties before they ever touch the software.
Top 6 topic areas by volume of posts

It’s no surprise to see AI Productivity & Workflow Integration at the top; this is part of my work at Improving. Even if we drop “AI” from the category, Productivity & Workflow is a space I have focused on for decades, and I’ve always leveraged technology for it.
Personal Growth & Reflective Practice also isn’t surprising. Over the last couple of years I’ve made a point to reserve time to reflect. That time comes from journaling, blogging, and having conversations like the ones that ignited the Reflective Practice Radio, and Matthew and I often discussed my daily blogging experiment (like here, here, and here).
Looking at this breakdown, I recognize myself.

The process keeps improving
My blogging process has improved much in this period, and that’s how I’ve been able to keep the experiment going. Whenever a new bottleneck or friction made it seem like I’d have to abandon the experiment, I’d ask myself what I could do differently, and I found solutions, so I kept going.
Can I make it through the end of the year? We’ll see. For now, this is today’s post. Thanks for reading.





Leave a Reply