Hey, I'm Stephen
I'm a founder, engineer, designer, and game dev in California ☀️
now
I'm starting Paper to help you design, share, and ship. Paper puts code components onto a design canvas so you can import your real design system, use shaders, and export flex layouts.
2022
WorkOS acquired my startup Modulz. At WorkOS I led product engineering from early PMF into high-growth scale-up and launched AuthKit, the world's best login.
2018
I co-founded Modulz to bridge the gap between designers and developers. Along the way we created Radix, accessibility-first React components.
2015
I launched ecommerce sites for Marmot, then moved to NYC to lead front-end engineering for Newell Rubbermaid.
In 2015 I also wrote my first book:
Game Development with Swift
Projects
Technical Posts
Running playwright on fly.io with bun
Quick setup guide to running playwright on fly.io with bun.
Self-hosting plausible web analytics
Get predictable flat pricing for web analytics by self-hosting
Saving AVIF images from Photoshop on MacOS in 2023
AVIF is amazing: better file size, image quality, and transparency
Get contenteditable plaintext with correct linebreaks
Browser bugs lead to incorrect results from the .innerText API
React Styled Components in IFrames
How to use Styled Components inside nested IFrames
SKSpriteNodes anchorPoint in Swift and SpriteKit
A how-to guide on using anchorPoint in SpriteKit
Upside Down SKPhysicsBody when Loaded From Texture
Working around a bug in SpriteKit's physics engine
Event Triggers and Event Listeners in Swift, Updated Swift 6.2
Introducing a library for event based patterns in Swift
Camera Shake with SpriteKit in Swift
Creating a juicy camera shake effect in SpriteKit