kevhender.netKevin H.Ask

kevhender.net / Work

Read(profile.yaml#experience) ⎿ 8 roles · 2005 – now

Experience

Dispatches from the work

Twenty years of taking products from a blank repo to something a team can run in production: OnTarget Clinical, ZenGRC Pro, and now the Clearskies agent and workflow platform. Every entry below is work I designed, built, or led.

The roles

2005 — present

Senior Staff at ZenGRC; Scratchpad has no engineering levels above Senior. I joined to build the Clearskies platform: I write specs, architect major features, and I'm the #1 contributor on both the frontend and the backend.

#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.

Scratchpad builds AI tooling for revenue teams; Clearskies (clearskies.cc) is its agent and workflow platform — 'the context layer for revenue AI' — reachable from Claude, ChatGPT and Gemini over MCP.

  • Clearskies Workflows. 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. Replaced the hardcoded trigger→agent→Slack sequence with topological execution over the workflow DAG, so any node can run anywhere in the graph.
  • AI Workflow Builder. 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.
  • Agent evals. 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.
  • Human Review. 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.
  • Agent technical evaluations. Led technical evaluations of emerging agent approaches, including sandboxed coding agents (Codex, Claude Code), with a focus on credential isolation and least-privilege tokens.
7 more
  • Clearskies frontend foundations. 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.
  • Multi-provider LLM layer. Turned an OpenAI-only LLM layer into a multi-provider platform (Anthropic, Gemini, bring-your-own-key) with an automated model-catalog sync and spend reconciliation against provider invoices, which caught and fixed a gap in recorded LLM cost.
  • MCP security. Hardened the MCP server customers' AI assistants use to reach CRM context: server-enforced token scopes so workflow AI tokens can't call write tools, MCP tokens blocked as app logins, and an error contract designed for LLM clients.
  • Deterministic meeting signals. Replaced costly, nondeterministic LLM meeting filters with deterministic attendance signals normalized across seven meeting providers (Gong, Teams, Fathom, Granola, Fireflies, Recall, Scratchpad), gating the production migration on an offline backtest and live shadow comparison.
  • Frame AI drafts. On Clearskies' new product Frame (frame.page), became #2 contributor within a month (92 PRs): wrote the commenting and notification specs, built an AI drafting system (streaming rewrites, multi-version compare, per-change accept/reject, metering) and personally ran its prompt-injection security review.
  • Failure alerting. Gave silent workflow failures an owner: classified, deduplicated and rate-limited failure alerts with fix links to the failing node, Datadog metrics, and runbooks/monitors for review, messaging, email and the model catalog.
  • On Scratchpad's core app (2024–25), led frontend for Ask AI — LLM chat over deal, call and email context with streaming and transcript-timestamp citations — and drove a dead-feature cleanup that deleted ~116k lines.

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.

  • ZenGRC Pro. 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.
  • Typed GraphQL layer. 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.
  • Next.js router call. 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.

Six years across the platform, developer docs, open-source frameworks and customer console as Moovweb became Layer0 and then Edgio.

  • 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.
  1. 2013 — 2015Virtual Instruments (now Virtana) · Senior Engineer. Led an MVC re-architecture and multi-version framework upgrades of the VirtualWisdom UI; prototyped its mobile app.
  2. 2013 — 2014Bank of America · Senior Software Contractor. Subject-matter expert for a Risk Technologies UI: framework upgrade, dynamic query builder, mentoring onshore/offshore developers.
  3. 2011 — 2013Aym Technologies · Technical Lead / Architect. Architected and shipped OnTarget Clinical, a multi-tenant SaaS (Spring, Hibernate), from concept to production as tech lead.
  4. 2008 — 2011CompanionCabinet Software (now Breakfront) · Senior Software Developer. Rebuilt a JSF frontend as a high-performance single-page app; led multiple releases.
  5. 2005 — 2008Solers, Inc. · Software Engineer. 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).

Education

  1. Dec 2004Virginia Tech · B.S. Computer Engineering, Magna Cum Laude, Honors Scholar; minors in Spanish and Business Leadership
Letters to the author

Hiring for Staff, Principal or Founding? Write to Kevin.