TL;DR

A senior engineer describes how AI tools like Claude Code have reshaped their workflow, boosting productivity while introducing new review and permission challenges. The piece mixes high-level ideas about climbing abstraction with concrete practices—especially using hooks, tests, and self-review—to manage AI-generated code.

What happened

An experienced developer who works in the open-source Python data ecosystem lays out lessons from daily AI-assisted development. The author argues that AI makes development more enjoyable and enables experienced engineers to focus on higher-level thinking and areas they previously avoided. At the same time, they acknowledge real downsides: large language models produce low-quality output, foster dehumanizing repetitive approvals, and increase the volume of code that must be validated. To manage this, the author recommends climbing the abstraction ladder and automating repeat tasks. Practical techniques described include using Claude Code and Cursor, embedding hooks to intercept and validate tool use and permissions, playing notification sounds to avoid constant monitoring, and baking testing and self-review into prompts. The author also uses agents to probe potential regressions and periodically asks fresh agents to audit technical debt.

Why it matters

  • AI can accelerate development and let senior engineers focus on design and experimentation rather than routine tasks.
  • Automations like hooks can reduce repetitive approvals and restore a more human workflow when working with AI tools.
  • The proliferation of AI-generated code increases the need for robust testing, benchmarking, and confidence-building practices.
  • Permission and tooling limitations in current agents create practical friction that teams will need to address.

Key facts

  • The author develops with AI daily and is a senior engineer active in the open-source Python data world.
  • They use Claude Code (and mention Cursor) as primary AI development tools.
  • Common concerns listed: LLMs produce junk, writing code builds understanding, reviewing is the slow part, and AI workflows can be dehumanizing.
  • The author advocates climbing an abstraction hierarchy—automating simple tasks so humans spend time on higher-level work.
  • Practical solution: Hooks configured (example JSON and Python snippet provided) to catch undesirable commands like bare 'pytest' and enforce 'uv run pytest'.
  • The author customizes permission handling with a Python-based hook that applies regexes and arbitrary logic because Claude Code’s built-in permission prefixes were insufficient.
  • Notification hooks (sound commands) are used to signal when an agent needs input or has finished, reducing constant checking.
  • Confidence in AI-produced code is built primarily through extensive tests, benchmarks, TDD-like prompting, and targeted 'grilling' questions the agent must investigate.
  • Periodically, the author runs a fresh agent to review the codebase for technical debt and produce remediation work for itself.

What to watch next

  • Whether agent permission systems evolve to support regexes or programmable rules similar to the author's custom hook approach (the author explicitly wishes for this).
  • not confirmed in the source
  • not confirmed in the source

Quick glossary

  • Claude Code: An AI coding assistant referenced by the author as a primary tool for generating and modifying code.
  • Hook: A programmable interception point that runs custom logic in response to agent actions, such as validating commands or issuing notifications.
  • TDD (Test-Driven Development): A development approach where tests are written before code changes; the author uses heavy testing and benchmarking to build confidence in AI-generated code.
  • Agent: An AI process or assistant configured to perform development tasks, follow instructions, and request permissions as needed.

Reader FAQ

Does the author think AI will replace senior engineers?
No. The author believes senior engineers should use AI to do routine work so they can focus on higher-level thinking and design.

What concrete tooling does the author use to control AI behavior?
They use Claude Code (and mention Cursor), plus custom hooks—JSON configuration and Python scripts—to validate commands and override permission checks.

How does the author handle the risk of bad AI-generated code?
By investing heavily in tests, benchmarks, TDD-style prompts, self-review, and asking agents to investigate potential regressions.

Is there evidence this workflow scales across teams?
not confirmed in the source

AI Zealotry¶ Written on 2025-12-31 I develop with AI today. It's great. There are many articles you can read on why AI is great (or terrible) or how to use…

Sources

Related posts

By

Leave a Reply

Your email address will not be published. Required fields are marked *