Author: Richard Seroter

  • Daily Reading List – July 27, 2026 (#833)

    Gemini helped me succeed at the horse races on Saturday. Great use of AI. In today’s list, I liked some of the leadership and mentorship content.

    [blog] The AI Productivity Paradox. Instead of AI closing the gap, the best product companies are getting even further ahead. It doesn’t matter if you deliver faster if you aren’t learning what matters to users.

    [blog] Stain the Page: How I Prototype with AI. If you know what you’re trying to prove, this is a great approach to getting started.

    [article] Why Mentoring Matters More in the AI Era. Good advice. Not everyone can automatically be a mentor, as it may take training to do it effectively. But it’s well worth the investment.

    [blog] Security Must Be Built In as Everyone Becomes a Builder. I don’t see this talked about enough. It’s great that everyone can build. But we (all?) need platforms with built-in guardrails and security controls to keep us safe.

    [blog] Why AI apps fail in production (And how Google solved it). A simple (but safe) prototyping stack matters, even more billion-user products like YouTube. Good post, and fun video.

    [article] Stop Overengineering Your Agent Harness. Many of our harness “best practices” are temporary until the model absorbs more capabilities.

    [blog] Running Gemma 4 locally on Mac: Benchmarking Qxotic Jinfer, llama.cpp, MLX, and connecting Java 25 with LangChain4j. It’s gotten easier to build these types of benchmarks. Interesting results!

    [blog] Meta Compute, Neoclouds and the Future of the AI Infrastructure Market. You’ve got compute, the market wants compute, go sell it! Yes you can, but building a business out of that takes time and commitment.

    [article] AWS, Google Cloud, Microsoft Azure, and Cloudflare now all offer agent sandboxes. None built them the same way. We’ve all solved it slightly differently, but seem to agree that untrusted code doesn’t belong on the host machine.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – July 24, 2026 (#832)

    I’m heading to the Del Mar Fairgrounds tomorrow to watch the horse races. Like last year, I’m going to ask Gemini to help me come up with creative, successful bets. For science, that’s all.

    [article] The Right Amount of Spec for Agentic Development. Super post that explores when you need more thoughtful specs, and when you can get by with lighter documentation.

    [blog] Governed Growth, Part 1: Better Together, Governed Apart. I can’t say I’ve ever seen this talked about. Casey does a wonderful deep dive into governance of model features, and ensuring you’re not accidentally allowing capabilities that introduce unacceptable risk.

    [article] Determining the ROI of AI requires data that most companies lack. Do you have the required data sources to piece together the story of actual AI impact? Your AI vendor can’t give them all to you.

    [article] Google justifies its massive AI spending with a booming cloud business. Google Cloud is growing like gangbusters, and we still can’t satisfy all the demand. Build, build, build away.

    [blog] 5 Software Architecture Mistakes That Make Systems Hard to Change. I don’t think AI agents are going to solve all of these mistakes. They’ll make them too without the right direction from you.

    [blog] Introducing Claude Opus 5. It’s got some Fable-like performance at half the price. Available wherever models are sold, including your favorite cloud.

    [article] The State of AI Impact in Engineering: Q2 2026. Here’s a report based on real user data. It looks like AI code generation is up, quality might be down, and developer experience is declining. All while spend is ahead of outcomes. We’ll see how this changes, quarter to quarter.

    [blog] The Rise of the Subagents. I’m glad to see smarter people building on my primitive looks at subagents. Daniela’s “agent swarms” are intriguing.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – July 23, 2026 (#831)

    You never know how a day will turn out when you’ve got a last-minute, vaguely-titled 1:1 with your CEO. It ended up being a good chat and I’ve got some fresh items to go tackle. It’s a treat working for leaders who know what they’re talking about, and want to win.

    [article] Where the real competition is in AI. Fair assessment by Matt. Most of us want to be the place where AI-assisted work happens. Everything else is in service of that.

    [article] How does adopting AI tools change developer burnout? Autonomy still matters. Read this for where burnout creeps in.

    [blog] How Anthropic secures its AI-native software development lifecycle. If AI is authoring 80% of the code at Anthropic, how are they maintaining a credible security posture? This post goes into it.

    [article] The Tokens You Can’t Wait For. Interesting read about diffusion models and the mechanics of GPUs. Worth a read if you’re figuring out your AI infrastructure strategy in a way that maps to your business needs.

    [blog] How I built a skill to fan out 20 workers to fix my old Rails App on Antigravity (steal my prompt!). I enjoyed reading this journey from Riccardo. This is definitely a valuable pattern that you’ll see more of.

    [article] Amazon, Microsoft, and Google are converging on the same enterprise agent architecture. Cloud Foundry got many things right. Cloud providers are doing some serious vertical integrations with echoes of former PaaS products. But there are differences.

    [blog] How I Built a CLI That Saves AI Prompts in Git. Neat idea. It sort of complements the idea from my own post yesterday.

    [blog] Open Reasoning Format: Building Self-Learning AI Coding Agents Without Server Infrastructure. Similar to above, we’re thinking about how to help agents (and teams?) save operational learnings across sessions.

    [blog] Measuring AI ROI: The Next Big Conundrum for Enterprises. Just make sure you’re looking in the right places, and have done the “right” work to generate that ROI.

    [blog] Prefactoring: Clear the Way for Your New Feature. Smart. Consider when you should get ahead of an upcoming change and make your life easier.

    [blog] That You Must Suffer for Greatness is a Dangerous Lie. In virtually every case, you need to work hard to do something great. No way around that. But it can be enjoyable hard work, not necessarily “suffering.”

    [blog] The hidden cost of Skills in AI Coding Agents. Skills aren’t free. You might spend more (or fewer) tokens or see extra operational overhead.

    [blog] Model Context Protocol (MCP) vs. Agent2Agent (A2A): which protocol do you need? Here’s a look at each protocol and where they fit. It includes a look at what neither one addresses.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – July 22, 2026 (#830)

    I’m still behind on my reading after last week’s travel, but today’s list started to clear out some of the queue. Some thought-provoking stuff today!

    [article] The Open Source Agent Toolkit in 2026. Read this for a view of each layer of the stack and what open products you can pick for each. Missing the “runtime” layer?

    [article] Tech chiefs enlist AI agents to manage cloud app sprawl. There’s a lot of hope, but not yet a deployment of that hope. But autonomous agents will absolutely make a positive difference here over time.

    [blog] Putting Agentic Ops into context: the Evolution of Operational Tools over the past 40 years. Plenty has changed since the 1980s, but Brian also sees some patterns in the evolution of the tools we use to operate systems.

    [blog] Gemini 3.6 Flash in Google Antigravity. It’s remarkably fast. Like I-get-results-in-one-second fast.

    [blog] Building a pkg.go.dev TUI explorer. Just build stuff. Including personal tools to keep yourself in a flowstate. That’s what Alex did here.

    [article] Lovable’s Co-Founder on Why Developers Use a Platform Made for Non-Technical Users. These vibing tools are still great for bootstrapping a project, testing an idea, or giving a rusty app and fresh UI.

    [blog] The PR Shipped. Did the Engineer Grow? Excellent post. As a manager, how can you tell if your team is absorbing the lessons from their AI sessions, or just outsourcing the thinking? Is your team growing? Building judgement?

    [blog] Genkit Agents come to Dart: full-stack conversational AI for Flutter. Frontend devs can connect to a variety of backend agents much easier by using this.

    [article] My AI Kept Pushing Me to Ship, So I Asked It Why. Long piece, but an interesting look at the goal-oriented nature of these tools and the resulting pressures.

    [blog] Loop Engineering in Self Correcting Code Migration using Google ADK 2.0. A native stateful agent loop uses a lot of tokens and saturates the context window. This post compares imperative loop architectures with declarative graph workflows. The latter comes up the winner.

    [blog] AI Isn’t Replacing Humans, but It Is Changing Our Jobs a Lot. Few companies are freezing tech hiring or reducing headcount. Most are updating role expectations, and using AI to augment work.

    [blog] Agentic AI Runs On Integration, Not Data Lakes. It’s not just models and data. It’s also about your APIs and integration flows.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • How to share agentic coding artifacts with your teammates

    Maybe it’s just me, but it feels like most of the agentic coding tools out there are single-player. An individual developer engages in a coding session with one or more agents, and the non-code “exhaust” (scratch files, harness-generated session docs) stays on the local machine. Oh sure, the code gets checked into a team-visible repo, and git commit body should list all the key changes. But are teammates losing out on the “thinking” that went on during that individual coding session? Maybe those core details are in a requirements/design doc somewhere, assuming people still write those! But how are teams of developers collaborating nowadays with all this agentic coding going on? Are we sharing those session-level artifacts and creating a team “brain”?

    I wondered if there was an easy way to take my Google Antigravity session artifacts and make them part of my commits. By default, any session/conversation docs—implementation plans, walkthroughs, chat transcripts—live in a machine folder. But I want those dragged into my local project folder so that they’re automatically pulled into commits, and thus visible to teammates. Then, teammates can use their own harness to understand my thinking or how I arrived at a certain decision for my code contribution.

    So I wrote an agent skill. It includes a Python script that explicitly moves the files when the coding session is done. The script does a git add of those files, including the full (and summary) session transcript. Specific to Antigravity, you might also build a sidecar, or something that runs in the background and continuously works. But this was a simpler choice.

    Let’s walk through the key bits. And then I’ll show it in action.

    In a hidden .agents folder, I’ve got an AGENTS.md file, a skills folder that contains a skill named team-sync, and then a SKILL.md along with a Python script used by the skill.

    We’ll start with the SKILL.md. It fires up as the agent finishes artifacts, and when explicitly triggered by the user.

    ---
    name: team-sync
    description: Synchronizes local Antigravity conversation history, transcripts, and artifacts (including a light summary) to the project repository for team sharing.
    ---
    
    # Team-Sync Custom Skill
    
    Use this skill to archive and upload your conversation's transcripts, artifacts, and a "light" human-readable summary into the Git repository, allowing other team members to quickly catch up on your agent steps, decisions, and outcomes.
    
    ## When to Use
    * Call this skill when a coding task, implementation plan, or refactoring conversation has finished successfully.
    * Run it before opening a Pull Request so that reviewers can inspect the execution logs and the conversation summary.
    
    ## Instructions for the Agent
    1. **Generate the Light Transcript (`summary.md`):**
       Create a file named `summary.md` in your local brain directory. The summary must follow this structure:
    
       ```markdown
       # Conversation Summary: [Objective/Topic]
       * **Date:** [Current Date]
       * **Conversation ID:** [ANTIGRAVITY_CONVERSATION_ID]
    
       ## TL;DR
       [A 1-2 sentence high-level summary of what was accomplished]
    
       ## Key Decisions & Rationale
       * **Decision:** [e.g., Using Python's shutil instead of bash commands]
         * **Why:** [e.g., Cross-platform safety and better permission handling]
    
       ## Most Interesting Event / "Aha" Moment
       [Capture any major back-and-forth conversation, user course corrections, pivot points, or model/user "aha" moments that defined the flow of this conversation.]
    
       ## Scope of Changes
       * **Files Modified/Created:** [List of files]
       * **Verification:** [How the changes were validated, command outputs, etc.]
    
       ## Learnings & Gotchas for the Team
       * [Any lessons learned about the API, codebase, or environment that others should know]
       ```
    
    2. **Verify Environment:**
       Ensure `ANTIGRAVITY_CONVERSATION_ID` is set in the environment.
    
    3. **Execute Sync Script:**
       Run the sync helper script:
       ```bash
       python3 .agents/skills/team-sync/scripts/sync.py
       ```
       *Note: Because `sync.py` automatically copies all `.md` files, your newly created `summary.md` will be synced to the workspace repository automatically.*
    
    4. **Report Status:**
       Confirm to the user that the summary and files have been successfully synced.
    
    

    The Python script does the work of actually copying files from Antigravity’s “brain” folder into my local project folder.

    #!/usr/bin/env python3
    import os
    import sys
    import shutil
    import subprocess
    from pathlib import Path
    
    def get_project_root() -> Path:
        # Find project root by looking for .agents or .git starting from CWD
        current = Path.cwd().resolve()
        for parent in [current] + list(current.parents):
            if (parent / ".agents").is_dir() or (parent / ".git").is_dir():
                return parent
        return current
    
    def find_most_recent_conversation(brain_root: Path) -> str:
        """Finds the most recently modified conversation subdirectory in the brain cache."""
        if not brain_root.is_dir():
            return None
        
        subdirs = []
        for p in brain_root.iterdir():
            # Conversation directories are 36-char UUIDs (plus optional custom name directories)
            if p.is_dir() and p.name != "scratch":
                try:
                    mtime = p.stat().st_mtime
                    subdirs.append((mtime, p.name))
                except OSError:
                    continue
                    
        if not subdirs:
            return None
        
        # Sort by modification time, newest first
        subdirs.sort(key=lambda x: x[0], reverse=True)
        return subdirs[0][1]
    
    def check_git_installed() -> bool:
        """Checks if git command-line tool is installed and available in PATH."""
        return shutil.which("git") is not None
    
    def main():
        print("=== Antigravity Team Sync ===")
        
        home_dir = Path.home()
        brain_root = home_dir / ".gemini" / "antigravity" / "brain"
        
        # 1. Retrieve conversation ID from environment or fallback
        conv_id = os.environ.get("ANTIGRAVITY_CONVERSATION_ID")
        if not conv_id:
            print("Notice: ANTIGRAVITY_CONVERSATION_ID env variable is not set.", file=sys.stderr)
            print("Attempting to auto-detect the most recent local conversation...", file=sys.stderr)
            conv_id = find_most_recent_conversation(brain_root)
            
            if not conv_id:
                print("ERROR: Could not locate any local conversation histories.", file=sys.stderr)
                sys.exit(1)
            print(f"Auto-detected conversation: {conv_id}")
        else:
            print(f"Active Conversation ID: {conv_id}")
        
        # 2. Define source paths
        source_brain_dir = brain_root / conv_id
        if not source_brain_dir.is_dir():
            print(f"ERROR: Local conversation directory not found at: {source_brain_dir}", file=sys.stderr)
            sys.exit(1)
            
        # 3. Define target paths
        proj_root = get_project_root()
        target_history_dir = proj_root / ".antigravity" / "history" / conv_id
        
        print(f"Source Directory: {source_brain_dir}")
        print(f"Target Directory: {target_history_dir}")
        
        # Create target directory
        try:
            target_history_dir.mkdir(parents=True, exist_ok=True)
        except PermissionError:
            print(f"ERROR: Permission denied. Cannot write to target directory: {target_history_dir}", file=sys.stderr)
            sys.exit(1)
        except Exception as e:
            print(f"ERROR: Failed to create target directory: {e}", file=sys.stderr)
            sys.exit(1)
        
        # 4. Copy Artifacts (markdown files and media in the main directory)
        copied_count = 0
        for file_path in source_brain_dir.iterdir():
            if file_path.is_file() and file_path.suffix in [".md", ".png", ".jpg", ".jpeg", ".gif", ".mp4", ".mov"]:
                try:
                    shutil.copy2(file_path, target_history_dir / file_path.name)
                    print(f"-> Copied file: {file_path.name}")
                    copied_count += 1
                except PermissionError:
                    print(f"Warning: Permission denied copying file {file_path.name}")
                except Exception as e:
                    print(f"Warning: Failed to copy {file_path.name}: {e}")
                
        # 5. Copy Transcripts
        logs_dir = source_brain_dir / ".system_generated" / "logs"
        transcript_copied = False
        if logs_dir.is_dir():
            for log_file in ["transcript.jsonl", "transcript_full.jsonl"]:
                source_log = logs_dir / log_file
                if source_log.is_file():
                    try:
                        shutil.copy2(source_log, target_history_dir / log_file)
                        print(f"-> Copied log: {log_file}")
                        transcript_copied = True
                    except PermissionError:
                        print(f"Warning: Permission denied copying log {log_file}")
                    except Exception as e:
                        print(f"Warning: Failed to copy log {log_file}: {e}")
                    
        if not transcript_copied:
            print("Warning: No transcript files found in the conversation logs.")
            
        # 6. Git Synchronization
        git_dir = proj_root / ".git"
        if git_dir.is_dir():
            if not check_git_installed():
                print("\nWarning: Git repository detected, but git executable is not available in your PATH. Skipping Git commit.")
                print("Sync completed successfully!")
                return
                
            try:
                print("\nStaging files in Git...")
                subprocess.run(["git", "add", str(target_history_dir)], check=True, cwd=proj_root)
                print("Conversation history and transcripts staged in Git successfully!")
                print("You can now commit these staged history files together with your code updates.")
            except subprocess.CalledProcessError as e:
                print(f"\nWarning: Git command failed with error code {e.returncode}.", file=sys.stderr)
                print("Your files have been successfully copied locally, but could not be staged automatically in Git.", file=sys.stderr)
        else:
            print("\nNote: Not a Git repository (or .git not found). Skipping Git commit.")
            
        print("\nSync completed successfully!")
    
    if __name__ == "__main__":
        main()
    
    

    And finally, my AGENTS.md is quite simple and tells my harness when to mirror the core coding session artifacts.

    # Team Customization Rules
    
    These rules govern how Antigravity agents operate within this project repository to facilitate seamless team collaboration.
    
    ## 1. Artifact Mirroring
    To ensure that all design decisions, test verifications, and walkthroughs are visible to the team during code reviews:
    * **Mirroring Rule:** Whenever you create or modify an artifact (such as `implementation_plan.md`, `task.md`, or `walkthrough.md`) in the local user cache directory (`~/.gemini/antigravity/brain/<conversation-id>`), you MUST copy or write a duplicate version of that file to the workspace under `.antigravity/history/<conversation-id>/`.
    * **Git Commits:** These mirrored documents should be staged and committed to Git alongside the source code changes.
    
    ## 2. Conversation Telemetry & Syncing
    * If the user or agent needs to share the raw execution logs, terminal outputs, and thinking transcripts of a conversation:
      * Run the `team-sync` skill at the end of the session.
      * This will execute the `sync.py` script to collect the finalized `transcript.jsonl` and copy it to the same `.antigravity/history/<conversation-id>/` directory.
    
    

    This .agents folder could be part of some shared Git project or project-bootstrapping script. Here’s an example of how to use it.

    I created a local directory for my new coding project. Maybe I’m the first one on my team working on it. After copying the .agents folder into that directory, and running a git init, I opened Google Antigravity and started a new session/conversation. Notice that my Antigravity settings for this project shows the skill and agent rules loaded up automatically.

    At this point, I just did my work like always. I used Antigravity to build a Dart and Flutter-based web app for my fictitious hotel chain. I built this (and packaged it) over three distinct coding sessions.

    As each session went along, I noticed the session artifacts (like implementation plans and walkthroughs) showing up in the .antigravity folder within my project directory. And I ended each session with a request to run the team-sync skill. That ensured that my final chat transcript(s) showed up too.

    Let’s imagine that I’ve pushed all my changes into a team-shared repo. The next developer(s) can pull down the app code, along with the session history. Maybe they’re curious about how we arrived at our deployment choice. For example:

    Review the summary transcripts in this project and help me understand how the team decided to deploy to Cloud Run instead of Kubernetes.
    
    

    The result? The transcript summary is consulted and the developer sees the results of the conversation and trade-offs factored in.

    These key architectural decisions should be in other stateful artifacts like design docs. But given how fast teams are running now, the “requirements” are sprinkled throughout the code, test plans, session artifacts, and upfront docs.

    Maybe I’m solving a temporary problem and within weeks, all these coding tools will make it super easy to create a shared “brain” for software teams. But for now, I like that agent skills make it easy to extend Antigravity this way. How are you thinking about sharing “thinking” among your developers?

  • Daily Reading List – July 21, 2026 (#829)

    My team runs a program where we spend a week with a customer taking a use case from idea to MVP. The team (and customer) came to San Diego this week so that I could be part of the exercise. It’s super cool to watch a group come together quickly to iterate, learn, and ship.

    [blog] Introducing Gemini 3.6 Flash, 3.5 Flash-Lite, and 3.5 Flash Cyber. Big model release day at Google. These are good performers, well-priced, and quite efficient with tokens.

    [blog] Reliability Is Not a Feature. It Is a Discipline. It’s also not a vague “non-functional requirement.” It’s a way of working, as this post calls out.

    [blog] How do you stay familiar with the code when it’s written by an LLM? Great post. There are smart ways (necessary ways?) to stay involved in the code that you’re ultimately accountable for.

    [blog] Guide to AI Tokenomics: Eleven Principles for Token Efficient Software Engineering. We’re all figuring out what works best in this world where tokens aren’t free. I liked this advice.

    [blog] The LLM Critics Are Right. I Use LLMs Anyway. Most smart people I know aren’t ignorant of the complaints or problems with LLMs. But that doesn’t mean LLMs aren’t still useful.

    [article] Are PMs becoming irrelevant? The old PM role is mostly irrelevant, I agree. The advice here is to become a strategic PM (not an “AI PM”).

    [article] How do you go from junior to staff engineer when AI writes the code? Maybe mentoring got easier. Keep hiring juniors, and bring agents into the mix to get them productive.

    [article] Frontline Workers Know How to Solve Your Organization’s Biggest Problems. It makes no sense to me to be a disconnected executive who only spends time with other execs. You should be talking with your employees multiple times per day.

    [blog] How to structure a log. Maybe AI can help you even if your logs are a mess. But create good logs is the right hygeine regardless.

    [blog] 13 hands-on demos to build on Gemini Enterprise Agent Platform. Great stuff. Here’s a list of tutorials you can run to learn how to build, scale, govern, and optimize agents. Each category matters.

    [article] 2030-shaped software. Some good thoughts here about agents, UIs, and what we’ll be using in a few years.

    [blog] In-House LLM Serving at Netflix. What breaks at scale? Those are some of the most interesting things to learn from others.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – July 20, 2026 (#828)

    On my first normal workday in a week-and-a-half, it was mostly all meetings. Lots of catch up. But I got to spend the last bit of the day working on a presentation about “how to use AI without losing your soul.” You can tune into it on Wednesday if you’d like!

    [blog] Earning taste and judgment. Worried that recent college grads are either unemployed or underemployed? You should be. Addy looks at what humans are uniquely good at (taste/judgement) and how early-career people that build it up.

    [blog] Evals belong in your CI/CD pipeline. I’m a sucker for opinionated statements like this. Gets my attention. This is reasonable advice. Although, my evals haven’t been super fast, so I wonder if you’d run them on every build.

    [blog] ADK Agent Identity on Google Cloud: Separate Identities, Separate Blast Radius. This topic is probably “stage two” after you’ve already built an agent. But understanding agent identity is critical if you ever hope to put an agent in production.

    [blog] Turn User Signal Into What You Build Next. It might not just be about mixing up the SDLC stages. Rather, it’s putting “user feedback” higher on the priority list and putting prototypes/variants in the hands of users faster.

    [blog] The Risk of Exposed Cloud Functions and How to Harden. The serverless hype train has reached the station, but that doesn’t mean many of us don’t still build scale-to-zero apps and functions. These are real concerns to mitigate.

    [blog] “Loop Engineering” Is Mostly Just Broken SDLC Wearing a Costume. Adron bringing out the big guns. Instead of using loops (error correction) to stumble through a process, craft workflows with clear signals.

    [blog] Three Agents Behind One Door: Multi-Tenancy in A2A. Multi-tenancy is new in A2A and makes it possible to have multiple agents behind one Agent2Agent server.

    [article] DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability. Cool mix of caching, invalidation, failure handling, request coordination, and performance optimizations in one system.

    [blog] Making highly available, multi-region Cloud Run services just got easier. Run the same web app across regions with automatic failover? Not trivial. But we made it easier.

    [blog] Building scalable AI agents with modular prompt transpilation. Are you thinking about prompts like software artifacts? This post encourages a more rigorous approach to decomposition and construction.

    [article] AI OK in Linux development, says Torvalds. If you don’t like AI being used in Linux, fork it. More here.

    [blog] Designing APIs for Agents. Don’t just cater to humans and what we can comprehend. This piece encourages us to think differently for our AI consumers.

    [blog] Google is a Leader and positioned furthest in Vision and highest in Execution in the 2026 Gartner® Magic Quadrant™ for Conversational AI Platforms. Fantastic showing, and a very valuable technology category to start using at your own company.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – July 17, 2026 (#827)

    Just got home after a 24+ hour travel day back from India. No wifi on the second (11 hour) segment, so I’ll have some catching up to do! Great trip, though.

    [blog] What 10 autonomous film crews taught us about agent teamwork. This might be the wildest thing you read all week. What happens when you create film crews out of AI agents, and then assign an AI documentary crew to capture the journey? You get this.

    [article] How I Cut an AI Agent’s Token Use by 94%. Super smart. Over time, you might realize that your natural language agent skill can be “compiled” into a deterministic script.

    [blog] My thoughts on the future of Go in the AI era. So very well laid out, and a major reason that Go may become the preferred language for this AI era.

    [blog] How to manage AI investments in the agentic era. From OpenAI. It looks at how to identify (and quantify?) value from your AI investment.

    [blog] NotebookLM is now Gemini Notebook. We like renaming things. This product keeps getting better and more integrated, so I get the reasoning.

    [blog] Kimi K3: Open Frontier Intelligence. Yeesh, you could make the case that this is now the best coding model, and it’s an open one. Running this yourself is fairly impractical (for now), but I imagine the API will be super popular.

    [blog] Four math concepts to improve your vibe coding. I was told there’d be no math today. But Karl pulled me in with this post.

    [blog] Model Routing Is Simple. Until It Isn’t. Some interesting perspective up on the Hugging Face blog. You’ll increasingly crave a model router. But there’s more to it than you think.

    [blog] Evolving Spec-Driven Development: Conductor Now Supports Antigravity. This spec-driven extension for the Gemini CLI now works as a plugin for Antigravity and agentic harnesses.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – July 16, 2026 (#826)

    It’s my final day in India, as I fly home in a few hours (3am local time). Great trip. I’ve got a pile of things to think about, and another handful of things to go build.

    [article] The Prototype Is a Question, Not a Product. Just because we can do lightning-fast prototypes now, it doesn’t mean we shouldn’t have a strong hypothesis and scorecard before we start. Great reminder here.

    [blog] The (no longer) missing multi-agent pattern: triggering dynamic workflows from an agent. Very cool example of a runtime-determined orchestration that responds to dynamic requirements.

    [article] 5 Trends That Defined AI Engineering at World’s Fair 2026. Great lineup at this event. These trends represent the current best thinking.

    [article] How I use HTMX with Go. Long tutorial, but something I hadn’t tried before. And I was shocked to see all the positive vibes in the Hacker News conversation about this pairing.

    [blog] Claude at scale on Google Cloud: Frontier AI, built for enterprise production. We’re not just serving a great model here; you’re automatically getting our built-in scale, security, and cost-management features.

    [article] Microsoft is reportedly training salespeople to talk down OpenAI and Anthropic. We all take different approaches. This is certainly one. Although the claim about selling the only “end to end system” is … something.

    [blog] Which Doc Format is Best for AI Specifications? I had to regroup after reading the first sentence—that’s a LOT of specs. It seems we’re still figuring out which document formats represent the best way to transmit and store agent-friendly data.

    [blog] What does “playing politics” mean for software engineers? Its naive to believe “I’ll just do great work and everything will work out.” Do great work. But also have self-awareness about the system you’re operating in.

    [article] The Frontend Verification Gap in AI-Assisted Development. Your favorite AI tool probably creates some very nice looking frontend UIs. What does “correctness” look like though, and how do you test the frontend’s behavior?

    [blog] Let Your Agent Run Its Own Code Inside a Cloud Run Sandbox. I’m very bullish on this, and have already seen some pretty wild reference apps within Google.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – July 15, 2026 (#825)

    Our Google Developer Expert community is pretty remarkable. 8% of them are in India, and I got to spend all day today with them. And, I also snuck in some experimentation with agent skills.

    [article] The AI Didn’t Fail. The Deployment Did. That AI-powered café almost went bankrupt. Was it because the model went crazy? No. Casey shows that the AI didn’t have the context, guardrails, and memory that a competent builder would include.

    [blog] Building Service Topology at Scale: Architecture, Challenges, and Lessons Learned. Do you have an accurate topology of the dependencies between your systems? Few do. Here’s how Netflix built a streaming system to try and solve it.

    [article] DeepMind CEO calls for an independent standards body to regulate frontier AI. Important proposal that seems to have universal support among AI leaders.

    [blog] Control the ideas, not the code. You’ve got a limited number of usable hours in the day. Salvatore has a post worth reading and contemplating.

    [blog] You Just Hired a Million Bad Employees. There are like six hot takes in this post. Are humans now cheaper than software? This seems to assume that token costs will remain flat. But there’s an important point here about wasted cycles.

    [article] Google rolls out sovereign AI stack for India’s regulator sectors. I didn’t completely embarrass myself in this interview.

    [blog] “We Are 90% Done” Is the Most Expensive Sentence in Software Delivery. That last 10% seems to take most of the time. A lot of work hides in there, as called out in this post.

    [article] The real AI race may no longer be at the frontier. We’ll see. Open models are rightfully having a big moment right now. That won’t go away.

    [blog] Systems Engineering Playbook: Optimizing Qwen 3.5-397B MoE on Ironwood (TPU7x). Speaking of open models, here’s how we optimized one through some creative techniques.

    [article] Google’s Genkit Ships Agents API with Detached Turns and Human-in-the-Loop for TypeScript and Go. Great InfoQ writeup about this unique SDK for adding agent capabilities to your full-stack apps.

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below: