Tools
Stack
Technologies I reach for, and what I use them for.
Languages
- TypeScript
- Main language: the SwapKit UI kit, React Native Paper theme types and this site.
- JavaScript
- Most of my earlier public projects, from Ember apps to React and RxJS experiments.
- Elixir
- Phoenix backends with GraphQL for side projects in 2019 and 2020.
Web & mobile
- React
- Swap widget and @swapkit/ui package for SwapKit, plus several open-source apps.
- React Native
- 15 merged pull requests to React Native Paper, Callstack's Material Design library.
- Tailwind CSS
- Prefixed Tailwind build for the embeddable SwapKit widget, and this site.
- Ember.js
- Community projects and a testing guide contribution from 2017 to 2020, and the Recipe Book app.
- Astro
- This site: pages render on the server and only two React islands hydrate.
Focus areas
- Design systems and theming
- Material You theming for React Native Paper, typed themes in react-theme-provider, and the SwapKit UI kit.
- Developer experience
- Migrated React Native Paper's docs to Docusaurus; built playgrounds and a custom Bun build plugin for SwapKit.
- App architecture
- Code audits, architecture design and a long-term refactoring strategy for enterprise clients at Callstack.
- Team leadership and mentoring
- Led teams for enterprise clients at Callstack, mentored developers and ran knowledge-sharing workshops.
- Automated testing
- Automated application tests at Selleo, and a contribution to a community Ember testing guide.
Backend & cloud
- REST APIs and integrations
- RESTful APIs and integrations at Selleo and for freelance clients.
- Laravel
- RESTful APIs and web solutions as a freelancer from 2017 to 2019.
- AWS and Firebase
- Cloud solutions and database management for freelance clients.
Tooling & platform
- Bun
- Build tooling for SwapKit's UI package and the package manager for this site.
- Vite and Next.js
- Playgrounds for the SwapKit swap widget, and Vite-based React starters.
- Cloudflare Workers
- Hosts this site: static assets plus one Worker endpoint for the ask box.
- TypeSafe Jev
- Powers the ask box here with typed yes/no and choice judgments instead of generated text.