
I’m a software engineer, educator, and engineering leader based in Denver. Most recently, I spent a year as an Entrepreneur in Residence at Redpoint, where I built AI-native developer tools: Weft, an open-source durable execution platform; Tribunal, a platform for managing code review agents; Cinder, a component library for quickly prototyping AI interfaces; and an agent runtime embedded in a Chrome extension.
Before that, I joined Temporal as employee #35 and its founding front-end engineer. I architected the open source Temporal UI, the Temporal Cloud product experience, the self-service signup flow, a design system spanning product and marketing, and a Visual Studio Code extension. Temporal grew from a Series A startup into a company valued at $5 billion with more than 1,000 cloud customers while I was there, so I got to work across the full arc from “no interface exists yet” to enterprise customers depending on it in production.
My role at Temporal was Head of Engineering for Frontend and Developer Tools. I built and led the team from just me to eight engineers, stayed technical through architecture and design reviews, and made the call to hand major product surfaces to staff engineers instead of becoming the bottleneck. Along the way, I promoted four engineers and mentored my own successor into the role.
Earlier in my career, I was the very first Front-End Architect™ at Twilio and SendGrid. I also led the team that shipped the new Twilio SendGrid Marketing Campaigns product in under six months after the initial estimates were hovering around two years. Last I checked, that product was still in production and bringing in roughly $15 million in annual revenue.
I still care deeply about front-end architecture, but my work has never really been just front end. The common thread through all of it is making complicated systems usable: distributed systems, developer platforms, and now AI systems. I tend to live at the intersection of product thinking, technical architecture, and developer experience.
That also shows up in my writing. Lately, I’ve been researching and publishing on agent loops, memory systems for AI agents, AI gateways and durable workflow systems, prompt engineering across the OpenAI, Anthropic, and Gemini APIs in this post, MCP Apps and AI tooling, and what it takes to run untrusted code safely.
Today, I’m an instructor at Frontend Masters, where I teach courses including Open Source AI with Python & Hugging Face and Cursor & Claude Code: Professional AI Setup. I also founded the Front-End Engineering program at Turing School.
I actually started my career in public education. I was an NYC public school teacher in high-need schools across Manhattan, Brooklyn, and Queens. I technically had my principal’s license, but I never ended up using it.
I’ve co-founded DinosaurJS, a JavaScript conference in Denver, spoken at events like JSConf and RailsConf, and authored ”Electron in Action“—though technology moves faster than books, so consider that a historical artifact at this point.
Recordings
I am lucky enough to teach a bunch of courses with my friends at Master.dev. We've been working together since 2016. Before I was a teacher, I was a customer back when I was learning the ropes. I can't recommend them highly enough. You can find the most up-to-date list here.
Deploying Web Applications on AWS, v3
Confidently navigate the AWS console and ship real apps. Scaffold lightning fast infrastructure with S3 static hosting and CloudFront global CDN caching.
3h 38m
Playwright: Automated Testing & AI Workflows
Catch broken UIs before they ship with Playwright! Build rock-solid verification loops that provide feedback to agentic coding tools and give you the confidence that your code is production-ready.
4h 34m
Enterprise UI Development: Microfrontends, Testing, & Code Quality
Architect large, successful frontend systems! From monoliths to microfrontends to monorepos, learn best practices for maintaining complex codebases while shipping high-quality software.
5h 12m
React and TypeScript, v3
Leverage TypeScript in your React codebase for critical type safety, catching errors early, and delivering a better developer experience for your entire team.
4h 23m
React Performance, v2
Ship high-performance React applications! Leverage React 19's performance strategies for hydration, suspense, resource loading, and server actions. Utilize memoization and virtualization and quickly diagnose performance bottlenecks and costly re-renders.
4h 11m
Cursor & Claude Code: Professional AI Setup
Boost your coding productivity with AI-assisted tools and agents. Use Cursor and Claude Code for precise inline edits or to delegate larger tasks to background agents.
3h 43m
Open Source AI with Python & Hugging Face
Go beyond Anthropic and OpenAI. Build custom AI workflows with Hugging Face, fine-tune models, and generate images with Stable Diffusion.
4h 33m
Tailwind CSS 4+
Learn Tailwind CSS's utility-first approach for responsive, and customizable web designs. Master themes, layers, responsive breakpoints, dark mode, and more to create maintainable user interfaces!
4h 28m
Fullstack TypeScript, v2 (feat. Zod)
Find the end-to-end type-safety strategy that works with your stack! Share TypeScript types across client and server apps. Write bullet-proof Zod schemas. Use tRPC queries and mutations. Explore Prisma for database migrations and schema generation.
4h 9m
Become a VS Code Power User
Use VS Code like a pro and build apps faster! Search, navigate, and refactor code quickly. Debug your apps without leaving the editor and automate complex or repetitive routines with custom tasks.
5h 13m
Testing Fundamentals
Learn the basics of testing and apply Test-Driven Development techniques to your workflow. Gain practical experience writing unit and integration tests while exploring common testing tools.
4h 30m
Web Security, v2
Learn to identify and mitigate common vulnerabilities, implement protection strategies, and secure your web applications against various attack vectors.
4h 29m
Design Systems with Storybook, v2
Learn to create scalable design systems with Storybook. Build reusable UI components, test components, implement dark mode, and generate comprehensive documentation.
4h 10m
Figma for Developers, v2
Learn to use Figma's developer-friendly features like constraints, auto layout, component properties and CSS generation to efficiently build and translate designs to code. Bridge the gap between design and development.
4h 12m
Vite
Master Vite, the modern build tool for faster and leaner web development. Learn to integrate with React, optimize assets, and extend with plugins. See what it's like to actually enjoy using your build tools!
4h 11m
Full Course Walkthroughs
- Self-Testing AI Agents
Build the feedback loops that let coding agents catch their own mistakes—Playwright, visual regression, runtime probes, custom MCPs, review bots, a static layer, and CI—so you stop being the verification step.
- Deploying Web Applications on AWS
Deploy, scale, and secure frontend applications on AWS—from S3 and CloudFront to Lambda, API Gateway, and DynamoDB—without ever needing to become a full-time cloud engineer.
- Enterprise UI
Scale frontend applications beyond a single-team SPA with composition patterns, module federation, operational infrastructure, and migration strategies.
- React Performance
Profile, measure, and optimize React applications—from understanding reconciliation and re-renders to memoization, code splitting, and React 19's concurrent features.
- React with TypeScript
Build type-safe React applications with TypeScript and React 19—covering hooks, reducers, context, component APIs, and generics.
- AI Fundamentals with Python
Get hands-on with AI development using Python and Hugging Face—from tokenization and attention to fine-tuning models and generating images with Stable Diffusion.
- Developing with AI Tools
Learn practical workflows for Cursor, Claude Code, MCP, and agentic software development with current installation, context, permission, and review guidance.
- Tailwind
Learn Tailwind CSS from utility-first fundamentals through design tokens, responsive layouts, dark mode, and the new features in Tailwind 4.
- Full Stack TypeScript
Wire up end-to-end type safety across the frontend and backend with TypeScript, Express, Zod, tRPC, and branded types.
- Visual Studio Code
Get more out of VS Code with advanced workflows, debugging tools, customizations, extensions, and keyboard shortcuts that speed up daily development.
- Introduction to Testing
Build confidence in your codebase with practical testing techniques—covering assertions, mocking, integration tests, and testing strategy.
- Web Security
Understand modern web security fundamentals—from authentication and authorization to XSS, CSRF, and practical mitigation techniques.
- Figma for Developers
Learn Figma's developer-friendly features—constraints, auto layout, component properties, variables, and CSS generation—to bridge the gap between design and code.
- Building Design Systems in Storybook
Build a scalable design system with Storybook—creating reusable components, writing interaction tests, implementing dark mode, and generating documentation.