
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
Get Kids into Coding with Scratch
Explore the essence of Scratch programming. Delve into game mechanics, craft interactive stories, and grasp computer science fundamentals. This course inspires fun projects tailored for young learners.
4h 3m
Hardware with Arduino & JavaScript
Tie the physical and digital worlds together, and see what's possible with hardware and JavaScript! Craft circuits, wire up LEDs, buttons, and sensors, and leverage sensors to change browser actions based on real-world data, all with web-based technologies.
3h 1m
Electron, v3
Use Electron to build native, cross-platform desktop applications using web technologies (e.g. HTML, CSS, and JavaScript). Learn inter-process communication, UI customization, native features, and performance optimization.
3h 54m
Advanced Redux with Redux Toolkit
Write more performant and maintainable Redux at scale. In this course, you'll use Redux Toolkit to simplify reducer logic and actions, use TypeScript with Redux, add tests, and use RTK Query to fetch data in real-world projects.
3h 52m
Testing Web Apps with Cypress
Cypress is the fastest and easiest way to write end-to-end tests for your client-side applications. Learn the selector engine, test runners, assertion library, and write your own custom commands.
4h 41m
Rx.js Fundamentals
Learn the foundations of Rx.js and master handling events over time using observables and operators to build ambitious asynchronous UIs. Build skills like manipulating data streams and orchestrating multiple API requests in this in-depth course.
3h 57m
Redux Fundamentals (feat. React)
Learn the Redux API from scratch, then learn to hook the Redux React application. You'll also learn how to extend Redux with various tools from its ecosystem.
4h 42m
Building Your Own Programming Language
Learn language building techniques: Lexing, Parsing, Tokenization, Traversing Abstract Syntax Trees, and Transpiling to JavaScript and make your own language now!
3h 10m
State Management with Redux & MobX
Learn about structuring your data with front-end architect Steve Kinney. Start the "State Management with Redux & MobX" course today!
5h 4m
JavaScript Performance
Write more efficient JavaScript, optimize rendering performance, load assets faster with a CDN, split loading resources with Webpack, and more!
4h 56m