Random Thoughts

A reading list for AI-augmented development

Sunday, May 10, 2026

A small, opinionated reading list for engineers who want to go deeper into AI-augmented development. Annotated with personal notes on why each one matters and where to start. Not exhaustive — just the things I'd recommend to someone asking me where to begin.

The tools we build shape how we think

Saturday, May 9, 2026

I started building AI tooling expecting it to make me faster. It did. What I didn't expect was that, three months in, I'd be approaching unfamiliar problems with a different mental shape than I had before. The tools changed the work, and the changed work changed how I think about work. That second loop is the more interesting one.

What I haven't learned yet

Friday, May 8, 2026

After writing a lot of confident-sounding posts about AI tooling, here's the inventory of what I'm still confused about. MCP servers I haven't really used. LangGraph patterns I copied without fully understanding. Prompt engineering subtleties I keep getting wrong. If you know any of this better than I do, I want to learn from you.

The compound effect of AI tooling

Thursday, May 7, 2026

Each piece — rules, skills, subagents, journaling — is small on its own. The interesting thing is what happens when they layer. The system stops feeling like a collection of tools and starts feeling like an environment that was shaped to fit me. That shift is the compound effect, and it's the part nobody talks about.

From daily notes to stakeholder reports

Wednesday, May 6, 2026

One week's worth of journal entries serves four audiences, with four different lenses. The manager wants outcomes and risks. The team wants what's in flight. The reviewer wants edge cases. You want patterns. Here's why one source plus four lenses works better than four separate trackers.

Vendor-agnostic AI tooling — portable skills across coding agents

Tuesday, May 5, 2026

One canonical source folder. Symlinks from each tool's expected directory back to that source. The same skill files work in Cursor, Claude Code, and any other AI coding agent without forks. Here's the layout, the sync logic, and why locking your skill library into one tool is a mistake worth avoiding.

AI-powered engineering workflows

Monday, May 4, 2026

An AI assistant doesn't replace the daily capture/plan/report cycle most working engineers run. It changes the friction. The work that used to take an hour at the end of the day takes five minutes. What AI does well, and what still needs human judgment, are different in ways worth naming explicitly.

Wiring a journal agent with Slack

Sunday, May 3, 2026

A journal agent that reads from your team's Slack channels for context and posts polished updates back is a small Python wrapper plus a few well-named bot tokens. This is the actual integration — token setup, conversations.history, posting receipts, channel aliases, and the small choices that keep the whole thing safe to run.

Why every engineer should keep a journal

Saturday, May 2, 2026

Most engineers don't keep a journal. The ones I most respect, do. Some on paper, some in plain text, some inside an AI-augmented system. Different tools, same compounding benefits — memory, accountability, self-awareness, communication. Here's the case, regardless of how you do it.

When your AI writes 200 lines and it could be 50

Friday, May 1, 2026

The single most common failure mode I see with AI-generated code is overengineering. Not bad code — just too much of it. This post is a tour of the specific shapes that overengineering takes, before/after diffs from real sessions, and the one-line mental check that fixes most of it.

Behavioral guardrails for AI coding assistants

Thursday, April 30, 2026

There are four behaviors I want any AI coding agent to follow, regardless of what model is behind it. Think before coding. Keep it simple. Make surgical changes. Define what done means. Each one came from a real mistake I watched the agent make. Here's why I encoded them as a rule file.

Org-wide standards as code

Wednesday, April 29, 2026

One standards repo, one wrapper that turns those standards into AI-agent rules, skills, and a security-review subagent. Add the wrapper as a workspace folder next to any project and the agent automatically follows the policy. Here's the pattern, the folder layout, and why this beats per-project copies.

A read-only AI security reviewer

Tuesday, April 28, 2026

A subagent that reads your security rules, looks at the code you just wrote, and tells you what's wrong by severity — with citations. This is the actual definition file, the rule set it consults, the output it produces, and the small choices that make it useful instead of a noise generator.

Subagents — specialized AI that doesn't pollute your context

Monday, April 27, 2026

Asking your main AI agent to do a heavy analysis task burns context you can never get back. Subagents are how you spawn a fresh, scoped, sometimes read-only AI instance to do that work — and hand back only the answer, not the noise. Here's the model, and when to reach for it.

Building debug skills that inspect live systems

Sunday, April 26, 2026

A debug skill turns "let me crack open the database and see what the agent thought it was doing" into a thirty-second question to your AI agent. This is a walkthrough of one — start to finish — with the actual layout I use, the gotchas, and the small decisions that decide whether the skill is genuinely useful or just visible noise.

A taxonomy of AI agent skills

Saturday, April 25, 2026

After writing thirty-three skills, a structure emerged. Six types. A naming convention that the agent itself uses to find the right one. This is the taxonomy I landed on, why each type exists, and the small design decisions that made the whole drawer easier to navigate.

AI agent skills — why I wrote 33 of them

Friday, April 24, 2026

I started with one. A small Markdown file with a few shell commands inside, that the agent could pull up by name. Two months later there were thirty-three. Here's the story of how the skill drawer filled up, and why it kept paying for itself.

Rules as project memory

Thursday, April 23, 2026

AI coding agents start every conversation with no memory. Rules are the small Markdown files that fix that — they tell the agent the conventions of your project, attached to the right files at the right time. Here's how they work and how I think about writing them.

Authorship tags — being honest about who wrote what

Wednesday, April 22, 2026

I added authorship tags to every post on this blog — human-written, ai-assisted, or ai-generated. The categorization itself was harder than the implementation. Here's what I think the labels actually mean, and why declaring them feels less optional than it used to.

Teaching AI how to write like me

Tuesday, April 21, 2026

My blog has a voice. The AI doesn't, by default — it has the voice of the entire internet averaged together. So I wrote three rule files that teach the agent how I sound, what to avoid, and what counts as "done."

Planning 20 blog posts with an AI agent

Monday, April 20, 2026

I sat down with an AI coding agent to plan a 21-post series. I didn't expect the planning itself to be the most interesting part — but it was, and most of what I learned is about how to use these tools, not about what to write.

From writing code to designing intelligence

Monday, April 13, 2026

AI at work is often framed as a productivity hack or a risk — a convenient reduction of something structural. Here’s a sharper read on what’s changing, what broke when I pushed into unfamiliar territory, and why human validation still drew the line.

Multi-language support, at last

Saturday, February 21, 2026

The very first item on my 2018 feature wishlist was internationalization. Eight years later, it's finally here — and every post now has a Portuguese translation.

Drawing a user flow graph with D3.js Sankey and React

Friday, February 20, 2026

Using Sankey diagrams to document software behavior, where each variation in user flow creates branches downstream.

Search and archive pages, finally

Thursday, February 19, 2026

The search and archive pages that have been placeholders since 2018 are now real. Here's how they were built — and what it's like to direct an AI through UI work.

Back from the future, with AI

Wednesday, February 18, 2026

After years away, I'm reviving this blog with the help of AI — and the entire tech stack got a fresh start.

Content creation planning with Kanban

Tuesday, April 17, 2018

Ideas are much faster than actions, take notes and manage them later to become great articles.

Render web animations with React Lottie

Monday, April 16, 2018

How to render animations from Adobe After Effects using Bodymovin/Lottie and React web.

Integrate Google Analytics with React Router v4

Monday, April 9, 2018

Single-page applications requires especial treatment for tracking statistics on each page view.

The active listening

Monday, April 9, 2018

The most powerful groups are made with people who knows the time to talk and the time to listen.

Markdown renderer component that can render other React components

Sunday, April 8, 2018

Markdown contents just got really really better!

My GraphQL studies

Saturday, March 31, 2018

Just a log of my GraphQL studies.

My "Hello World" projects

Saturday, March 31, 2018

Keeping up to date on IT can be a great challenge, having study systems comes very handy.

Component styles isolation: Concentric CSS

Monday, March 19, 2018

A thoughtful way to write CSS properties.

Creating React component with Markdown renderer and code syntax highlight

Friday, March 16, 2018

Given a Markdown string, then render as HTML with fancy code syntax highlight.

Component styles isolation: Dealing with CSS inheritance

Thursday, March 15, 2018

How to ensure visual consistency with UI components usages.

How to fix custom domain overwriting problem when using gh-pages deploy script

Thursday, March 15, 2018

Sometimes little changes can put down an entire website, luckily sometimes the fix is easy!

How to include a sitemap.xml in a create-react-app site

Thursday, March 15, 2018

Creating a sitemap.xml generation with Babel and Node.

Categories and better typography

Monday, March 12, 2018

Content can now be fetched by category and the visual got some polishing for better readability.

Inject Google Analytics tag manager in a Meteor app

Monday, March 5, 2018

Instructions about how to easily inject GA tag manager in a Meteor app.

Redesign and better typography

Sunday, March 4, 2018

Fourth day on this site's development, a blog for reading must be nice to read.

Fetching from Instagram using Facebook Graph API

Sunday, March 4, 2018

Instagram API is being deprecated and from now will be using Facebook Graph API.

Comments section using Disqus and React

Monday, February 26, 2018

New feature included, opening channel for feedbacks!

Opportunity cost

Monday, February 26, 2018

For each opportunity we take, there are a ton of others we let pass.

Blog progress

Sunday, February 25, 2018

Second day developing this project, long road ahead.

Custom boilerplate generators

Sunday, February 25, 2018

This site have some custom made boilerplate generators that makes life easier.

Hello World

Thursday, February 22, 2018

Hi there, in this post I explain briefly how this website was made.