{
  "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
  "basics": {
    "name": "Kevin G. Henderson",
    "label": "Staff Software Engineer — Full-Stack TypeScript · AI Agents & Workflow Platforms",
    "image": "https://kevhender.net/kevin.png",
    "email": "kevhender@gmail.com",
    "url": "https://kevhender.net",
    "summary": "Staff-level full-stack engineer with 20+ years of end-to-end product ownership, from 0→1 architecture to production operations. Currently the #1 contributor across the Clearskies AI agent and workflow platform (TypeScript/Vue frontend, Go/Temporal backend): LLM agents with tool calling, MCP, eval-gated prompt changes, human-in-the-loop review, and observability. An early adopter of agentic coding on my team (mid-2025; Claude Code, Cursor). 1,700+ merged PRs and ~1,000 code reviews in two years. Previously Senior Staff Engineer and principal architect of ZenGRC Pro.",
    "location": {
      "city": "Charlotte",
      "region": "NC",
      "countryCode": "US"
    },
    "profiles": [
      {
        "network": "LinkedIn",
        "username": "kevhender",
        "url": "https://www.linkedin.com/in/kevhender"
      },
      {
        "network": "GitHub",
        "username": "kevhender",
        "url": "https://github.com/kevhender"
      },
      {
        "network": "Stack Overflow",
        "username": "kevhender",
        "url": "https://stackoverflow.com/users/2072693/kevhender"
      }
    ]
  },
  "work": [
    {
      "name": "Scratchpad / Clearskies",
      "position": "Senior Software Engineer",
      "url": "https://clearskies.cc",
      "startDate": "2024-11",
      "location": "Remote",
      "summary": "Full-stack engineer, Clearskies agent & workflow platform · built its frontend from scratch. #1 contributor to both the Clearskies frontend (Vue 3/TypeScript/Electron) and backend (Go/Temporal/Postgres/MCP): 1,705 merged PRs and ~990 reviews across six repos in two years.",
      "highlights": [
        "Architected and built most of Clearskies Workflows, the product's core automation engine, end to end across a Vue Flow canvas and a Go/Temporal backend — growing it in ~8 months from CRUD to a graph-driven execution engine with 10+ node types, nested/parallel loops, scheduled and CRM-change triggers, dry-run test runs and versioned drafts.",
        "Built the natural-language AI Workflow Builder — an LLM agent that generates and edits workflow graphs from chat and Slack — and made it reliable with publish-time validation and self-repair loops, an LLM semantic auditor, and a staged migration to native tool calling routed through the MCP server; then led its retirement (−28.5k lines) in favor of a headless builder running inside customers' own Claude and ChatGPT.",
        "Stood up LLM evaluation for the builder agent — from a Braintrust harness to an in-house framework with structural scorers, an LLM user-simulator for multi-turn disambiguation and a run-comparison UI — and gated prompt and tool changes on it.",
        "Wrote the spec for and led Human Review: agent actions that touch Salesforce, Slack or email pause durably on Temporal until a named reviewer approves them, with reviewer notifications and production monitoring — ~70 PRs across frontend and backend in five weeks.",
        "Led technical evaluations of emerging agent approaches, including sandboxed coding agents (Codex, Claude Code), with a focus on credential isolation and least-privilege tokens.",
        "Bootstrapped the Clearskies frontend from scratch — chose the stack (Vue 3, Pinia Colada, shadcn/Reka on Tailwind 4, Vitest, pnpm), set team conventions, and wrote the agent tooling and CLAUDE.md guidance the team codes with."
      ]
    },
    {
      "name": "ZenGRC (Reciprocity → RiskOptics)",
      "position": "Senior Staff Engineer",
      "url": "https://www.zengrc.com",
      "startDate": "2022-01",
      "endDate": "2024-09",
      "location": "Remote",
      "summary": "Principal architect, ZenGRC Pro · promoted Senior UX Engineer → Staff → Senior Staff. Selected within months of joining to architect the next-generation GRC/compliance platform, ZenGRC Pro, and grew it from first commit to a production product built by ~10 engineers.",
      "highlights": [
        "Architected and bootstrapped ZenGRC Pro from scratch (Next.js, Material UI, PostgreSQL, Postgraphile/GraphQL) in partnership with the chief architect, then served as principal engineer and reviewer on every PR as the team grew to ~10 engineers.",
        "Designed the typed GraphQL data layer — Postgraphile with TypeScript codegen and generated react-query hooks — giving the whole team one consistent, strongly typed API surface.",
        "Chose the mature Next.js Pages Router over the then-unstable App Router after memory leaks and slow compiles showed up in an early build, and engineered a migration path so the switch could happen later at low cost.",
        "With no designers left at the company, owned UX and visual design: rebuilt the theme with light/dark modes and overhauled layouts across the product.",
        "Architected a new external Trust Center product on Next.js 15 / React Server Components for performance and SEO."
      ]
    },
    {
      "name": "Moovweb → Layer0 → Edgio (Limelight Networks)",
      "position": "Senior Platform Engineer",
      "startDate": "2015-11",
      "endDate": "2022-01",
      "location": "Remote",
      "summary": "Six years across the platform, developer docs, open-source frameworks and customer console as Moovweb became Layer0 and then Edgio.",
      "highlights": [
        "Core contributor to the Layer0 Console (React/Material UI over a Rails GraphQL API): site-metrics dashboards, mobile-responsive UI, and support flows integrating Intercom, PagerDuty, reCAPTCHA and S3.",
        "Co-designed the Layer0 docs app (Next.js) and extended framework support to Next.js, Vue, Nuxt, Angular and Spartacus; improved service-worker prefetching.",
        "Key contributor to React Storefront, an open-source eCommerce PWA framework — reusable component library held at 100% Jest coverage.",
        "Led MoovCheckout, an injectable React checkout, including an Express MITM dev proxy for developing against live production sites."
      ]
    },
    {
      "name": "Virtual Instruments (now Virtana)",
      "position": "Senior Engineer",
      "startDate": "2013-12",
      "endDate": "2015-10",
      "location": "Remote",
      "summary": "Led an MVC re-architecture and multi-version framework upgrades of the VirtualWisdom UI; prototyped its mobile app.",
      "highlights": []
    },
    {
      "name": "Bank of America",
      "position": "Senior Software Contractor",
      "startDate": "2013-03",
      "endDate": "2014-01",
      "location": "Charlotte, NC",
      "summary": "Subject-matter expert for a Risk Technologies UI: framework upgrade, dynamic query builder, mentoring onshore/offshore developers.",
      "highlights": []
    },
    {
      "name": "Aym Technologies",
      "position": "Technical Lead / Architect",
      "startDate": "2011-09",
      "endDate": "2013-03",
      "location": "Charlotte, NC",
      "summary": "Architected and shipped OnTarget Clinical, a multi-tenant SaaS (Spring, Hibernate), from concept to production as tech lead.",
      "highlights": []
    },
    {
      "name": "CompanionCabinet Software (now Breakfront)",
      "position": "Senior Software Developer",
      "startDate": "2008-11",
      "endDate": "2011-09",
      "location": "Charlotte, NC",
      "summary": "Rebuilt a JSF frontend as a high-performance single-page app; led multiple releases.",
      "highlights": []
    },
    {
      "name": "Solers, Inc.",
      "position": "Software Engineer",
      "startDate": "2005",
      "endDate": "2008",
      "location": "Arlington, VA",
      "summary": "Java enterprise systems in the Net-Centric Systems Division: IPT lead, LDAP-based messaging, Lucene search. Earlier: software engineering intern at GE Energy (C#/ASP.NET).",
      "highlights": []
    }
  ],
  "education": [
    {
      "institution": "Virginia Tech",
      "studyType": "B.S.",
      "area": "Computer Engineering",
      "endDate": "2004-12",
      "score": "Magna Cum Laude, Honors Scholar",
      "courses": [
        "Minor: Spanish",
        "Minor: Business Leadership"
      ]
    }
  ],
  "skills": [
    {
      "name": "AI & Agents",
      "keywords": [
        "LLM agents & tool calling",
        "Model Context Protocol (MCP)",
        "LLM evaluation (evals)",
        "Context engineering",
        "Structured outputs",
        "Retrieval (RAG)",
        "Human-in-the-loop systems",
        "Claude Agent SDK",
        "Anthropic, OpenAI & Gemini SDKs",
        "Vercel AI SDK",
        "LLM tracing & observability",
        "Braintrust"
      ]
    },
    {
      "name": "AI-native development",
      "keywords": [
        "Claude Code",
        "Cursor",
        "Codex",
        "agentic coding workflows",
        "CLAUDE.md / agent skills & tooling"
      ]
    },
    {
      "name": "Languages",
      "keywords": [
        "TypeScript",
        "JavaScript",
        "Go",
        "SQL",
        "Python (productive",
        "AI-assisted)",
        "Kotlin (AI-assisted)"
      ]
    },
    {
      "name": "Frontend",
      "keywords": [
        "React",
        "Vue 3",
        "Next.js",
        "Nuxt",
        "Pinia / Pinia Colada",
        "Vue Flow",
        "Tailwind CSS",
        "Material UI",
        "shadcn / Reka UI",
        "Electron",
        "Capacitor"
      ]
    },
    {
      "name": "Backend & Data",
      "keywords": [
        "Node.js",
        "Go (Gin)",
        "Temporal (durable execution)",
        "PostgreSQL",
        "Drizzle",
        "GraphQL (Postgraphile, Apollo)",
        "REST",
        "Neo4j",
        "Supabase",
        "WebSockets / streaming"
      ]
    },
    {
      "name": "Platform & Ops",
      "keywords": [
        "Observability (Datadog, Sentry, PostHog)",
        "GitHub Actions CI/CD",
        "Docker",
        "AWS",
        "Cloudflare",
        "feature flags (LaunchDarkly)"
      ]
    },
    {
      "name": "Integrations",
      "keywords": [
        "Salesforce",
        "Slack",
        "Gong",
        "HubSpot",
        "Microsoft Teams",
        "Gmail",
        "Mailgun",
        "Intercom",
        "PagerDuty"
      ]
    },
    {
      "name": "Practices",
      "keywords": [
        "System design",
        "Design docs / RFCs",
        "Technical leadership",
        "Mentoring via code review",
        "Testing (Vitest, Jest, Playwright)",
        "Accessibility"
      ]
    },
    {
      "name": "Prior",
      "keywords": [
        "Java / Spring / Hibernate",
        "Ruby on Rails",
        "Angular",
        "ExtJS / Sencha"
      ]
    }
  ],
  "projects": [
    {
      "name": "Scorecard",
      "description": "Real-time multiplayer scorekeeper for 11 card games on web, iOS and Android — built and shipped solo, agent-first with Claude Code (Nuxt 4, Postgres/Drizzle, WebSockets, Capacitor, RevenueCat), with 180 test suites in CI.",
      "url": "https://thescorecard.net",
      "keywords": [
        "ai-native",
        "product",
        "full-stack",
        "mobile"
      ]
    },
    {
      "name": "Unofficial Pixel Face",
      "description": "Wear OS watch face plus phone/watch companion apps that mirror live notification icons onto the watch — Kotlin and Watch Face Format, a stack new to me, built entirely agent-first.",
      "keywords": [
        "ai-native",
        "kotlin",
        "android",
        "outside-core-stack"
      ]
    },
    {
      "name": "MailTray",
      "description": "macOS menu-bar app unifying Gmail, Outlook, Yahoo and iCloud webmail with unread badges and notifications — Electron, Vue 3, SQLite/Drizzle, shipped as a notarized DMG and Mac App Store build.",
      "keywords": [
        "ai-native",
        "electron",
        "desktop"
      ]
    },
    {
      "name": "kevhender.net",
      "description": "This site: static Astro, generated from one typed profile file, with a grounded \"Ask about Kevin\" assistant on a Cloudflare Worker.",
      "keywords": [
        "ai-native",
        "astro",
        "llm"
      ]
    }
  ],
  "meta": {
    "canonical": "https://kevhender.net/resume.json",
    "version": "v1",
    "lastModified": "2026-10-28T00:00:00"
  }
}