Hey, I'm Stephen

I co-founded Modulz to bridge the gap between designers and developers. Along the way we created Radix, accessibility-first React components, and Stitches, a styling library with excellent DX.


I was as an Engineering Manager at Marmot and Newell Brands, launching ecommerce sites and eventually moving to NYC to lead the front-end engineering efforts across the corporation.

I also wrote my first book:
Game Development with Swift


I led engineering for a digital agency in California, producing high-profile sites for companies like Levi's, Dockers, Belk, and Genentech.

Stephen Haney backpacking in the Sierras. A mountain lake is in the background.

Projects

DearDiary.AI

Turn your journal into music.
A first-place winner of the Google Magenta hackathon.

Machine Learning NLP Music

Technical Posts

Self-hosting plausible web analytics

Get predictable flat pricing for web analytics by self-hosting

Analytics Self-hosting

Saving AVIF images from Photoshop on MacOS in 2023

AVIF is amazing: better file size, image quality, and transparency

Photoshop AVIF

Get contenteditable plaintext with correct linebreaks

Browser bugs lead to incorrect results from the .innerText API

Browsers

React Styled Components in IFrames

How to use Styled Components inside nested IFrames

React CSS-in-JS

SKSpriteNodes anchorPoint in Swift and SpriteKit

A how-to guide on using anchorPoint in SpriteKit

Swift SpriteKit

Upside Down SKPhysicsBody when Loaded From Texture

Working around a bug in SpriteKit's physics engine

Swift SpriteKit

Event Triggers and Event Listeners in Swift, Updated Swift 6.2

Introducing a library for event based patterns in Swift

Swift

Camera Shake with SpriteKit in Swift

Creating a juicy camera shake effect in SpriteKit

Swift SpriteKit