Building applications for the modern age
Over the years, I’ve been trusted by both startups and software agencies to build applications, websites, mobile apps, and browser extensions. Some of the companies I’ve worked for include AppSignal, Balena, and Causaly
On the technical side, I enjoy working with React, TypeScript, Elixir, and Next.js among others. I’m also exploring Rust and steadily learning the ropes
When I’m not coding, you’ll usually find me wood carving, playing card games, or spending time with my family.
Here are my most recent posts about programming:
- 2025/09
My modest use of AI for programming
How I currently use AI in my workflow - 2025/04
Rails, Webpacker & React: A migration odyssey
Looking back at a painful refactor journey from Webpacker to Vite, Enzyme to React Testing Library, and React - 2025/02
Using Phoenix with React and Inertia
Getting the best of both worlds; Phoenix's productivity, and React's ecosystem - 2025/01
My experience with Phoenix LiveView
Some takeaways from my time with Phoenix LiveView - 2025/01
Separate Session Tokens in Phoenix
Update the generated phx.gen.auth code to use a separate session token table
And a few things I’ve learned along the way:
- Give demos, send GIFs, and record videos. Show your work early, and often.
- Give it 5 minutes. Don’t shoot down ideas immediately, let them simmer.
- Your throwaway prototype will almost always hit production. Plan accordingly.
- Ship and iterate, ship and iterate, ship and iterate.
- There are no stupid questions. There are stupid outcomes due to misunderstandings.
- Your user is probably tired, frustrated, and out of patience. Don't make their experience worse.
- The best technical solution isn’t always the right business solution.