
software engineer / builder
Ethan Glover
I build resilient software, clarify complex domains, and leave systems easier to change.
01 / operating principles
How I work
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.
02 / current toolkit
Stack & tools
TypeScript, JavaScript, React, Next.js, React Native, Solid, Node.js, C#/.NET, Python, SQL
TanStack Router, TanStack Query, Radix Themes, Tailwind, Cloudflare Workers, Hono, Drizzle ORM, D1 (SQLite), React Query, Redux, GraphQL, REST, WebSockets, Spring Boot, Microservices
TDD (vitest, Playwright), DDD, Monorepo, Effect-TS, Lodash, Dependency injection, Composable design, Accessibility, SEO, Performance budgeting, Container-driven development, Legacy migrations
03 / selected work
What I’ve shipped
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.
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.
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.
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.
Low-code GraphQL platform
Worked on a low-code platform that generated GraphQL APIs through a React UI.
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.
Multi-carrier shipping quotes and booking
Delivered a quotes-and-booking app integrating FedEx, UPS, and other carriers.
Customer dashboard redesign (IE11)
Redesigned a customer dashboard in vanilla JS. Kept compatibility with Internet Explorer 11.
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.
Real-time crypto pricing dashboard
Consulted on a real-time crypto pricing dashboard. Performance budgeted and met.
CMS-driven village trustee site
Built and maintained a CMS-driven React site for a village trustee board.
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.
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.
RSS pipeline (ethang-rss)
Ingest feeds, dedupe, normalize, publish. Runs on the same worker stack as the rest of the monorepo.
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.