I’m a fullstack software developer focused on maintainable, tested, and feature-complete software.
experience
On teams, I often play a supporting role: writing library functions, refactoring for clarity, extracting reusable components, and architecting new features. However, I’ve recently been the lead mobile dev on a React Native project, so I don’t shy away from feature work.
I’m generally tool-agnostic, I tend to try many tools until I find something just barely complicated enough to satisfy my needs. I think many simple tools are better than few smart tools. What that often means is that I’m open to using any tool that satisfies the job, and I’m willing to learn new tools to get the job done.
Languages
- Javascript / Typescript
- Python
- Elixir
- Scala (Java)
- Go & Rust: limited experience, but interested in learning more
Familiar PaaS / IaaS
- Heroku
- Netlify
- Cloudflare Pages
- Amazon Web Services (AWS)
- Render.com
- Google Cloud Platform (GCP)
Tools & utilities
- GitHub Actions
- Doppler.io
- Chef.io & Ansible
- Azure DevOps
employment history
You could be here!
I’m always looking for new opportunities. If you think I’d be a good fit for your team, send me an email and let’s chat!
Mar 2021 - Present
- Launched GoFetch Pay, a product focused on bridge financing for vet care, after completing a ground-up rewrite of the mobile app using React Native with TypeScript in four months. At the same time, I supported our backend team while they rewrote our Elixir backend.
- Worked with our Product & Design teams to create design system components, demoing them using Storybook.
- Integrated our mobile app with Stripe, Plaid, and Peach for credit card & bank payments towards loans, as well as adding identity verification.
- Added backend features such as the prototype of a buy-now-pay-later payment plan system to a GraphQL API written in Elixir.
- Continously improved our development experience by…
- Adding automatic checks to our release process to ensure that Elixir API PRs satisfy code formatting conventions
- Migrating one React app from Webpack & Jest to Vite & Vitest to improve start up time and improve hot-replacement performance
- Adding tools to track our code quality, including metrics like file length and cognitive complexity
- Rebuilt legacy CircleCI pipelines to use GitHub Actions.
- Reduced CI time by about 3x by using task caching & distributed execution.
- Integrated Doppler into our dev, CI, and deploy processes to improve saftey around secret management.
- Reviewed code, at one point catching an absolutely critical design bug — email me and ask about it, I’ll be happy to tell you. It’s a hell of a story.
- Used an agile process to plan and execute work. During my time we migrated from an agile process to capital-A Agile process using Jira, then — after months of frustration towards how slow the process was — jettisoned back to a very lightweight agile process using GitHub Projects.
May 2020 - Feb 2021
- Designed and developed IT policies for First Nations bands
- Created a giant Postman API collection for a client who was setting up a new student management system demonstrating how to use different endpoints in the API.
- Developed an interactive Vue.js-based data visualization website.
- Created and customized microsites using Wordpress for a Canadian provincial government.
Codan Radio Communications | Software Developer Co-op & DevOps Engineer
April 2018 - August 2019
- Reduced deployment time by 50% for a frequently used deployment process by deleting just one character! Ask me about it, I’ll be happy to tell you.
- Developed a Python script library for OS management for a software defined radio.
- Automated manual builds using Gradle, and migrated CI from Jenkins to Azure DevOps.
- Used automation tools like Chef.io and VMWare to create CI build agents and virtual machines with matching environments.
- Designed a new radio dashboard UI. Created a component library and conducted user testing.
- Began an automated test framework for radio equipment using Scala.