# Ethan Glover

https://ethang.dev/

> Software engineer and builder. I build resilient software, clarify complex domains, and leave systems easier to change.

software engineer / builder

I build resilient software, clarify complex domains, and leave systems easier to change.

## Operating principles

- **Hypothesis-first.** I write the failing test before the implementation. Red, green, refactor — every PR, every feature, every bug fix.
- **Grounded in SWEBOK.** Estimates and tradeoffs grounded in the SWEBOK software engineering body of knowledge.
- **Domain-Driven Design as the bridge.** I often promote Domain-Driven Design as the bridge between development and business understanding. The model is the conversation.

## Toolkit

- Languages: TypeScript, JavaScript, React, Next.js, React Native, Solid, Node.js, C#/.NET, Python, SQL
- Stack: TanStack Router, TanStack Query, Radix Themes, Tailwind, Cloudflare Workers, Hono, Drizzle ORM, D1 (SQLite), React Query, Redux, GraphQL, REST, WebSockets, Spring Boot, Microservices
- Practices: TDD (vitest, Playwright), DDD, Monorepo, Effect-TS, Lodash, Dependency injection, Composable design, Accessibility, SEO, Performance budgeting, Container-driven development, Legacy migrations

## What I’ve shipped

- **Automated testing for a legacy .NET + React codebase** Introduced end-to-end and component tests. React state bugs that hid from manual review surfaced in the first week. Surfaced React state bugs that had resisted manual review.
- **Team collaboration app: video, chat, calendar, files** Built a team collaboration app from scratch: P2P video, chat, phone, calendar, file sharing, websocket notifications. Solo, idea to working product.
- **Real-time crypto pricing dashboard** Consulted on a real-time crypto pricing dashboard. Performance budgeted and met.
- **Farming dashboard with Redux time-travel** Built features for a highly dynamic international farming dashboard. Used Redux time-travel debugging to understand existing state, then extend it.
- **Rebuild of a federal emissions monitoring system** One of three developers on the rewrite. Test coverage climbed until QA asked us to slow down; used the runway for better repros. Shipped faster than QA could keep up; used the runway for more reproducible bug reports.
- **Customer dashboard redesign (IE11)** Redesigned a customer dashboard in vanilla JS. Kept compatibility with Internet Explorer 11.
- **Low-code GraphQL platform** Worked on a low-code platform that generated GraphQL APIs through a React UI.
- **Next.js migration off a legacy CMS** Upgraded a vanilla React + Sitecore app to Next.js. The migration had been stalled for two months on hosting; shipped in a few weeks, then redesigned the user dashboard. Unstuck a Next.js migration that had been stalled for two months on hosting.
- **Non-profit and radio SEO consulting** SEO and performance consulting for a non-profit working to end dog homelessness, plus two national radio stations.
- **React Native ERP for a local small business** Built a React Native ERP for a small local business. Greenfield app, then iterated with the owner.
- **Multi-carrier shipping quotes and booking** Delivered a quotes-and-booking app integrating FedEx, UPS, and other carriers.
- **Telecom provisioning platform** Built and maintained responsive web applications and RESTful web services for telecom members to manage user access to internet, telephone, and TV/streaming services. Java microservices with Spring Boot.
- **CMS-driven village trustee site** Built and maintained a CMS-driven React site for a village trustee board.
- **Agent skills compiler (agents-build)** TypeScript-defined skills, rules, and commands compiled into a checked-in .agents/ directory with sizing and drift checks. The compiler behind the skills used in this monorepo.
- **Authentication service (auth)** Cloudflare Workers, Hono, Drizzle ORM, D1. Authentication service used across the monorepo.
- **Course tracking (ethang-courses)** Cloudflare Workers RPC and Drizzle. Course tracking with structured lessons and progress.
- **This home page (ethang-astro)** Astro, content collections, Tailwind CSS, and Cloudflare Workers. The page you are reading, built from the monorepo's shared content and services.
- **RSS pipeline (ethang-rss)** Ingest feeds, dedupe, normalize, publish. Runs on the same worker stack as the rest of the monorepo.
