Computer Things by Erik Hanson

About Me

I’m a software developer and a partner at Reflective Software, a two-person software product and consulting company specializing in Elixir, Phoenix, and Rust. Read more about Reflective Software here, and please get in touch at contact@reflective.dev if you would like to talk about working together. My open source is at github.com/eahanson and github.com/synchronal.

I’m also a co-founder of the Golden Gate Elixir meetup, a relatively new co-organizer of the Erlang & Elixir SF meetup, and I’m on the program committee for Code BEAM America 2025 which will take place in San Francisco in early March 2025.

Events

Code BEAM America: March 6-7 in San Francisco. Tickets are now available.

Products

In addition to consulting, Reflective Software builds products.

Test Reflector
Monitor GitHub Actions directly from your iPhone, iPad, or your Mac’s menu bar. Test Reflector provides a concise overview of recent results, allowing you to jump directly to test failures.
Coming Soon
Our second product will be lanching any day now.
Coming Soon
Our third and fourth products are in development and will ship in 2025.

Recent Articles

Why Boundary?
About the Boundary library, and why I highly recommend adding it to every Phoenix project from the very beginning.
Phoenix Project Layout
A nonstandard way to lay out your Phoenix project.
Web.Paths
A "Web.Paths" module in your Elixir Phoenix app can be a helpful indirection.
Jumping To Related Files In Your Editor
Reliably jump from one file to any of its related files in your editor.
Version 1.0 of Test Reflector!
Test Reflector is a MacOS app that shows your GitHub Actions status in your menubar.
Extensions for Panic's Nova Editor
I wrote some extensions for Nova that you might find handy.
Querying HTML and XML in Elixir with HtmlQuery and XmlQuery
Find and extract information from HTML and XML using Elixir.
Creating an RSS feed in Elixir and Phoenix
It's easy to hand-roll an RSS feed using Elixir and Phoenix.
A Doctor To Check Your Development Environment
A flexible tool for sharing project configuration and practices among members of a dev team.
Using Scripts To Encode Your Development Process
Encode your dev team's process decisions in committed code.
The Daily Diff
A quick way to regularly expose the entire team to code changes.