Skip to main content

2 posts tagged with "AI"

View All Tags

Using AI to promote divergent thinking

· 12 min read
TL;DR

A possible explanation for why we observe such a discrepancy between the productivity gains from AI tools of seasoned senior software engineers versus their less-experienced counterparts:

  • Inexperienced problem solvers have a tendency to get stuck when using AI tools to solve complex problems because they bias towards convergent thinking: narrowing possibilities and looking for a specific solution which fits within their preconceptions.
  • Experienced problem solvers who have adopted AI tools tend to use it to augment a scientific process, which includes building mental models, formulating hypotheses, and performing experiments. In this process, they use AI to accelerate divergent thinking: exploration and discovery of possibilities.
A heads-up display

I've been thinking a lot lately about the significant discrepancy I've observed in how effective different people are at using AI for problem solving. I'm certainly not the only one; there seems to be a strong consensus building in my field (software engineering) that AI tools disproportionally augment the effectiveness of experienced people (e.g. those who developed their craft before AI tools became omnipresent), and that providing AI to people early in their career can actually slow them down- and impede their growth.

This certainly fits the observations I've made personally, but raises a lot of questions about what experienced people are doing so differently with AI. I've spent some time intermittently reflecting on my own use of AI, and also paying attention to how some of my younger colleagues are using it, and I think I have a working theory.

Using AI to create a Kubernetes controller in a hurry

· 16 min read
TL;DR

I've been looking for an excuse to do something more deliberate and ambitious with generative AI developer tools, so I created a Kubernetes controller which discovers Kubernetes-managed AWS load balancers, scrapes their CloudWatch metrics, and exposes them as Prometheus metrics (which have an infinitely better developer experience).

I'll share what I learned: the magnitude of the productivity boost, how effective it was at teaching me, some strategies I landed on, limits to the agentic tooling I used, and some surprising gaps in the models' abilities.

Baby's first Kubernetes controller
Baby's first Kubernetes controller

Since I've been primarily working in platform and infrastructure recently, a lot the "code" I've been writing is domain-specific configuration languages (e.g. terraform, helm charts, OTel collector config, Kyverno policies, etc). Despite so many glowing testimonies of massive wins with generative AI dev tools, the results from my first few attempts to use them were a bit underwhelming. My guess is that config code usually doesn't get open sourced, so the models just don't get a lot of good examples to train on.

This has left me hankering to do something more ambitious, and probably in a general purpose language, where I can get a better sense of what the tools can do (beyond fairly mundane auto-completion).

Then recently, I had a few days where a lot of my colleagues were off on vacation (school vacation in Massachusetts), and it occurred to me I'd been quietly stewing on a problem that might be a great candidate for my own little hackathon.