lifeiscontent logomark

Aaron Reisman · Software engineer

I build the parts of products other people have to live with after launch.

Mostly React, TypeScript, Phoenix, and Elixir. Components, error states, microcopy, the small things that decide how an app actually feels. I write about it here when I think it might be useful to someone else.

Recent writing

Notes from the work.

Posts on React, Phoenix, components, and the bits in between.

10 min read

How MasonryKit is built

How I split MasonryKit, a TypeScript library for masonry layouts, into three packages: pure layout math, DOM helpers, and a React hook. Plus the patterns in each layer worth borrowing for your own libraries.

Clients

Some of the teams I've shipped with.

Global pharma, consumer brands, and growth-stage startups. The work is mostly the same problem at different scales.

AmgenGenentechJohnson & JohnsonMcCormickNikeNovartis

Open source

Projects I've contributed to over the years.

The list looks longer the older you get. Some of these I worked on heavily, some I just filed bugs against. They all taught me something.

Storybook

A workshop for building UI components in isolation. Useful when you want to design a component before plugging it into a real app.

Ash

A declarative, resource-oriented framework for Elixir. It models your domain once and gives you APIs, authorization, and validations from there.

Redux

A predictable state container for JavaScript apps. Still useful for some kinds of state, even if Context and TanStack Query handle most cases now.

React on Rails

Glue between React and Rails, with server-side rendering. Worth knowing if you have a Rails app you don't want to throw out.

AngularJS

The original Angular. I worked on it a long time ago, and it taught me a lot about what two-way data binding can and can't do.

Backbone

Models, collections, and views in one small library, with events wired up declaratively. The grandparent of a lot of what we build with now.

Working together

Have a project in mind?

Product engineering, component systems, refactors, the hard parts of an existing codebase. If any of that sounds like what you need, send me a note.