Michael Hegner

Full-Stack Engineer

Building production AI agent systems and backend infrastructure.

About Michael

I'm a pragmatic problem-solver focused on shipping solutions that work. I ship quickly but not recklessly—I follow best practices, document as I go, and dig into optimization when deadlines allow. When I join a team, I immediately map out how to run the codebase, its structure, and where things live, then document it with AI-optimized subject matter trees so future developers don't have to figure it out from scratch.

I started this practice when learning Go in 2024 with Claude, building ModulaCMS—a production-grade headless CMS with concurrent server architecture. To deepen my computer science skills, I developed a data structure learning system that generates practical problems and progressively combines structures based on familiarity. Building this taught me advanced prompt engineering, self-healing workflows, and output validation. I applied these skills at Bonsai, creating a multi-agent orchestration system that generates production code and enables contractor teams to work independently. While I'm full-stack, my passion is backend work—designing APIs, building concurrent systems, and solving architectural challenges.

Outside of code, I'm into rock climbing, producing music, and loving my cats—one of whom has self-appointed herself executive code reviewer and has claimed the spot by my monitor as her office. Before development, I was a recording engineer. Working with bands and artists taught me how to collaborate creatively with different types of people, break down complicated tech into easy to understand language, and distill a creative vision into a technical solution. These skills translate directly to collaborating with designers and product teams today. I work best in environments that value initiative, technical depth, and pragmatic execution.

Technologies & Skills

Backend (9)

  • Go
  • Node.js (Express.js, Fastify)
  • .NET/C#/ASP.NET
  • Python
  • PHP
  • Java (Spring Boot)
  • REST APIs
  • GraphQL (Apollo)
  • Microservices

Frontend (8)

  • JavaScript/TypeScript
  • React/Next.js
  • Angular
  • HTML5/CSS3
  • Tailwind CSS
  • Material-UI (MUI)
  • SCSS/CSS Modules
  • Responsive Design

Databases (6)

  • PostgreSQL
  • MySQL
  • MongoDB
  • SQLite
  • Azure SQL Database
  • Supabase

AI & LLM Integration (6)

  • Claude API/Anthropic SDK
  • Multi-Agent Orchestration
  • Prompt Engineering
  • Vision Model Integration
  • Self-Healing Workflows
  • Output Validation

Cloud & Infrastructure (5)

  • AWS
  • Azure
  • Docker
  • Vercel/Linode
  • NGINX/Caddy

CMS Platforms (4)

  • WordPress
  • UmbracoCMS
  • Directus
  • Headless CMS Architecture

Tools & Platforms (4)

  • Git/GitHub
  • Neovim
  • Figma
  • CI/CD (GitHub Actions)

Security & Compliance (4)

  • HIPAA Compliance
  • OAuth 2.0
  • Active Directory Integration
  • Security Best Practices

Practices (8)

  • System Architecture & Design
  • Test-Driven Development
  • CI/CD Automation
  • Agile Methodologies
  • Code Review
  • Technical Documentation
  • Performance Optimization
  • Cross-Functional Collaboration

Recent Writing

90% Token Savings: Building a Local Alternative to Claude's WebFetch

Claude's WebFetch sends entire raw HTML as input tokens, including every ad and navigation menu. A 100KB documentation page costs 25,000 tokens before Claude reads a word. I built a tool that cleans the HTML locally first, saving 96% of tokens and potentially $43K/month for mid-sized teams.

TokensOptimizationAI-nativeGo

I Built an AI-Native CLI Tool That Uses 4.4x Fewer Tokens Than Grep

I watched Claude flash three huge blocks of grep output during a refactor. All that formatting designed for humans, and Claude was paying tokens for colors it can't see. I built a search tool optimized for AI, 4.4x fewer tokens.

AI-nativeTokensDeveloper toolingGo

How I Made AI 100% Reliable Using Meta-Questions in Prompts

Claude kept skipping the npm install step, causing a 30% failure rate on automated problem generation. I tried rewording the instruction, making it more explicit, but nothing worked. Then I realized I needed to ask Claude to confirm it did the step, not just do it, and that changed everything.

Prompt engineeringAI-nativeOptimization

Get In Touch

Have a project in mind or want to discuss an opportunity? I'd love to hear from you.