Here’s a bonus Christmas Eve reading list for you. I’ll be back with a couple editions next week before returning to the regular daily schedule on January 5th.
[blog] The Product Model at Google. Here’s a great deep dive into how Google orients around product strategy, discovery, and delivery.
[article] A modern guide to SQL JOINs. Under duress, I could possibly recall most of this. But I’ve probably forgotten most of my SQL knowledge. This was a good refresher.
[article] Using an ADE: Ancient Development Environment. Feeling left out because you’re not using an IDE that someone released a month ago? Relax. Some people are using dev environments from the 90s.
[blog] 60 of our biggest AI announcements in 2025. Nobody did more with AI in 2025 than Google. I don’t think that’s controversial to say! This is an impressive roundup.
[article] The Shape of AI: Jaggedness, Bottlenecks and Salients. Such a good post and worthy of a full read. AI progress isn’t even across categories, but once a bottleneck breaks, a flood of use cases become possible.
Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:
Today was the first and last day of my workweek. I’m off through January 2nd, and will likely publish a Reading List here and there. But not every day until I’m back on the 5th. Enjoy your Christmas (or whatever you celebrate) break!
[blog] My LLM coding workflow going into 2026. Feel like you’re still winging it with AI? You’re not alone. But Addy’s workflow might form the basis for doing it better.
[article] AI Trends for 2026. I don’t think most would look favorably upon their “AI predictions” from twelve months ago. But Charlie did pretty well, and has opinions about what 2026 might hold.
[article] Building AI agents the safe way. What’s the “boring, necessary engineering” you need to do to have a secure AI agent strategy? Matt takes a look.
[blog] 2026 vibe coding tool comparison. I’d imagine that a few other tools will make lists like this in the near future. But in the meantime, this is a good look at Replit, v0, Lovable, and Bolt.
Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:
This was a fun week full of announcements, team updates, and goal setting. I’m going to work next Monday, and then I’ll take the rest of the year off. I hope you have some great things (including “doing nothing”) planned!
[blog] Quick & Easy AlloyDB AI Setup Tool. Great work from Abi taking some of the intimidating parts of AlloyDB database setup (VPC setup, peering) and automates it away.
[blog] AI’s real superpower: consuming, not creating. Creation by AI can be done faster than humans, but we’re capable of the same work. But when it comes to consuming tons of content and making sense of it, AI is doing what humans physically cannot.
[blog] Why “Microservices” Debates Miss the Point. You can introduce poor coupling and design into any architecture. Let’s learn to avoid it, especially as we start doing multi-agent systems!
[blog] The Top Ten Highlights from Flutter & Dart in 2025. Big year for this pair, and 2026 could be even better. AI generates good Flutter code, and creating cross-platform apps will continue to be a valuable use case next year.
Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:
Happy “Gemini release day” for all who celebrate. It’s a great way to start wrapping the year. I also published a post today that described my new way of bootstrapping the learning experience.
[blog] AI agents are starting to eat SaaS. I’ve heard about it, but haven’t necessarily seen it come to fruition. But this seems like reasonable analysis.
Don’t get me wrong, I like a good tutorial. Might be in a blog, book, video, or training platform. I’ve probably created a hundred (including in dozens of Pluralsight courses) and consumed a thousand. But lately? I don’t like be constrained by the author’s use case, and I wonder if all I’ve learned how to do is follow someone else’s specific instructions.
This popped for me twice in the past few days as I finally took some “should try” technologies off my backlog. Instead of hunting for a hello-world tutorial to show me a few attributes of Angular Signals, I simply built a demo app using Google Antigravity. No local infrastructure setup, wrangling with libraries, or figuring out what machinery I needed to actually see the technology in action.
You know, even a few months ago, I'd read a post like this about @angular Signals (https://t.co/bKxfJmnFMw) and think "that's cool, I should try that out sometime."
I did it again a couple of days later! The Go version of the Agent Development Kit came out a bit ago. I’ve been meaning to try it. The walkthrough tutorials are fine, but I wanted something more. So, I just built a working solution right away.
This is how I want to work.
I used @GoogleAIStudio to brainstorm some agent ideas. I then went into @antigravity to implement the idea with the ADK for Go.
35 minutes later, I have a Go agent that pulls from a queue and writes to a bucket. No syntax wrangling, just results.
I still enjoy reading content about how something works. That doesn’t go away. And truly deep learning still requires more than vibe coding an app. But I’m not defaulting to tutorials any more. Instead, I can just feed them into the LLM and build something personalized for me. Here’s an example.
Take the cases above. I jumped into Google AI Studio to get inspiration on interesting async agent use cases. I liked this one. Create a feed where an agent picks up a news headline and then does some research into related stories before offering some analysis. It’ll read from a queue, and then drop analysis to a Cloud Storage bucket.
Prompting for agent ideas in Google AI Studio
With my use case in hand, I jumped into Antigravity to sketch out a design. Notice that I just fed the tutorial link into Antigravity to ensure it’d get seeded with up-to-date info for this new library.
Sparking an application build in Google Antigravity
Antigravity started whirring away on creating implementation plans and a task list. Because I can comment on its plans and iterate on the ideas before building begins, I’m not stressed about making the first prompt perfect. Notice here that it flags a big assumption, so I provided a comment confirming that I want a JSON payload for this background worker.
Google Antigravity provides a way to offer feedback on implementation plans
After Antigravity started building, I noticed the generated code used a package the IDE flagged as deprecated. I popped into the chat (or I could have commented in the task list) and directed the AI tool to use the latest version and ensure the code still built successfully.
Steering Google Antigravity to pick a newer version of the library it selected
Constantly, I’m focused on the outcomes I’m after, not the syntax of agent building. It’s refreshing. When reviewing the code, I started to realize I wanted more data in the incoming payload. A directive later, and my code reflected it.
Iterating on software with Antigravity
This started with me wanting to learn ADK for Go. It was easy to review the generated agent code, ask Antigravity questions about it, and see “how” to do it all without typing it all out myself. Will it stick in my brain as much as if I wrote it myself? No. But that wasn’t my goal. I wanted to fit ADK for Go into a real use case.
Code that sets up an agent in ADK for Go
This solution should feel “real”, and not just be a vibe-and-go. How about using CI/CD? I never remember the syntax for Google Cloud Build, and getting my pipeline right can swallow up half my dev time. No problem.
I express my intent for a Cloud Build pipeline, and moments later I have a fully valid YAML definition, along with a generated Dockerfile.
Antigravity created a Google Cloud Build pipeline for me
Next I asked Antigravity to add a deployment step so that the container image is pushed to a Cloud Run worker pool after a successful build. I needed to point Antigravity to a tutorial for worker pools for it to know about this new feature.
I’m using an API key in this solution, and didn’t want that stored as a regular environment variable or visible during deployment. Vibe coding doesn’t have to be insecure. I asked Antigravity to come up with a better way. It chose Google Cloud Secret Manager, gave me the commands to issue, and showed me what the Cloud Run deployment command would now look like.
Getting a proper, security-conscious deployment command for Cloud Run worker pools
I then told Antigravity to introduce this updated Cloud Run command to complete the build + deploy pipeline.
A complete, AI-generated CI/CD pipeline for my agentic app
Amazing! I wanted to test this out before putting an Angular frontend into the solution. Antigravity reminded my of the right way to format a Cloud Build command given the substitution variables and I was off.
Building and deploying this agent with Cloud Build
Within a few minutes, I had a container image in Artifact Registry, and a Cloud Run worker pool listening for work.
My running workload in Cloud Run worker pools
To test it out, I needed to publish a message to Google Cloud Pub/Sub. Antigravity gave me a sample JSON message structure that agent expected to receive. I went to Techmeme.com to grab a recent news headline as my source. Pub/Sub has a UI for manually sending a message into a Topic, so I used that.
Publishing a message to Pub/Sub to trigger my agent
After a moment, I saw a new JSON doc in my Cloud Storage bucket. Opening it up revealed a set of related news, and some interesting insights.
News analysis performed by my ADK agent and dropped into a Cloud Storage bucket
I also wanted to see more of Angular Signals in action, so I started a new project and prompted Antigravity to build out a site where I could submit news stories to my Pub/Sub topic. Once again, I passed in a reference guide into my prompt as context.
Prompting Antigravity to create a frontend app using Angular Signals
I asked Antigravity to show me how Angular Signals were used, and even asked it to sketch a diagram of the interaction. This is a much better way to learn a feature than hoping a static tutorial covers everything!
The first build turned out ok, but I wanted better handling of the calls to Google Cloud Pub/Sub. Specifically, I wanted this executed server side and after adding a comment to the the implementation plan, Antigravity came up with a backend-for-frontend pattern.
Directing Antigravity to support a backend for calls to Google Cloud
After a couple of iterations on look-and-feel, and one debugging session which revealed I was using the wrong Pub/Sub topic name, I had a fully working app.
After starting the server side component and the frontend component, I viewed my app interface.
The interface Antigravity built
Grabbing another headline from Techmeme gave me a chance to try this out. Angular Signals seems super smooth.
Adding a headline and seeing a dynamic frontend in action
Once again, my Cloud Storage bucket had some related links and analysis generated by ADK agent sitting in Cloud Run worker pools.
News analysis initiated from my Angular app
It took my longer to write this post than it did to build a fully working solution. How great is that?
For me, tutorials are now LLM input only. They’re useful context for LLMs teaching me things or building apps with my direction. How about you?
[article] 5 engineering dogmas it’s time to retire. Ooh, this could start some debate among your tech friends. No practice should be untouchable and I wonder how many of these you’ve revisited in the past couple years.
Our machines at work have gotten increasingly locked-down, which I guess means I can empathize more with devs trying to use tools and APIs while working in constrained environments. Yay?
[article] Coding With the Gemini CLI Tool. I still prefer and IDE or code editor, but the CLI has definitely entered my toolbox. This shows you how to get started.
[blog] 10 Platform engineering predictions for 2026. I think I buy these. Feels like there’s been a lull in platform engineering, and AI may prove to be the spark to ignite platform users, and platform owners.
[article] How do daily stand-ups boost team performance? Some people love ’em, others hate ’em. But stand-ups (done well) are apparently a big booster of safer environments that result in better outcomes.
[article] InfoQ Java Trends Report 2025. Not shockingly, a lot of AI on the list. But more than that has kept Java vibrant.
[blog] Taming Vibe Coding: The Engineer’s Guide. Here’s some good practical advice on creating more consistency and personalization for your AI-driven coding exercises.
[article] What If? AI in 2026 and Beyond. It’s worth reading through this pile of thoughts as you plan your AI approach next year.
[blog] Before You Build a Private Cloud, Ask This One Question. My contention is that there are VERY few actual private clouds out there. Mostly some nicely automated VM infrastructure. Keith offers a good question you should ask before going down this path.
[blog] Enterprise Agents Have a Reliability Problem. Are companies doing ok with off-the-shelf AI tools but struggling to build their own? Or the opposite? What’s a recipe for success?
Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:
It started out as a fourteen-meeting day. Dropped to twelve and somehow that felt like a huge win. It was, as I had extra time to write some things, and finish a coding demo I’m working on.
[article] Why Your CTO Might Start Coding Again. What a super interesting angle. Hire managers instead of individual developers because managers have learned how to orchestrate (AI) workers and can get more done?
[article] Canonical Extends Kubernetes Long-Term Support to 15 Years. That’s a long time. Maybe for embedded systems that you never touch this makes sense. But if your enterprise is looking to stick on a Kubernetes version for fifteen years, something is broken.
[blog] Is Your CI/CD Tool Helping or Hindering Performance? If you generate code faster but can’t ship it, what’s the point? Most engineers recognize that their path-to-production might be the most critical leverage point of software delivery.
[blog] Provide Feedback to Google Antigravity. Your agentic coding tool is doing work. Where are you supposed to drop feedback to steer its behavior? This is a good post that identifies the contextual locations and moments.
Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below: