Resume
Education
Bachelor of Computer Science Honours (Co-op Option)
University of Manitoba, Winnipeg, MB. Institutional GPA: 4.21 Specializations: Software Engineering, Web-Based Systems, Computer Security
Bachelor of Science (Honours) in Biochemistry
University of Winnipeg, Winnipeg, MB.
Work Experience
Qdoc Inc.
Software Development Team Lead
April 2023 - August 2024
- Evaluated, hired, and mentored junior developers; led an Agile team with modern processes, including sprint planning, TDD, and retrospectives.
- Design cloud architecture and select tech stack for a new health billing SaaS to ensure security, scalability, maintainability, and developer efficiency.
- Develop Vite-bundled React/TS frontend and Node/TS lambda functions backed by PostgreSQL database deployed to AWS cloud with AWS CDK IaC.
- Design UI with Figma and rapidly implemented a prototype for demonstration to win a government contract.
- Reconcile multiple sources of requirements, including government spec docs and internal QDoc billing admins’ dissatisfaction with existing solutions.
- Gathered metrics from repo and Jira history to quantitatively justify suggestion to adopt Typescript on other teams; led multi-team effort to incrementally replace JS with TS in existing projects to improve efficiency and reliability.
Software Developer
May 2022 - April 2023
- Full stack development on an Agile team using React (w/ Webpack), JS, GraphQL and REST APIs on AWS cloud to build and maintain a health SaaS.
- On multiple occasions identified and patched security flaws which would have had catastrophic consequences on our ability to do business if exploited.
- Led adoption of automated testing with Jest and Cypress, improving reliability and developer efficiency by reducing reliance on manual testing.
- Wrote clear documentation on Confluence, manage work with Jira.
- Designed and optimized CI pipelines using AWS Amplify and Github Actions
- Used Zsh and Typescript to automate formerly tedious manual tasks.
- Optimized application performance with server pagination, frontend pre-fetching, DB indexing, API caching, introducing elasticsearch, etc.
- Took initiative to rework backend architecture by writing lambda layer modules that improved maintainability, code-reuse, security, and reliability.
- Integrated numerous third-party APIs, including to enhance app observability.
Upfeat Media Inc.
Junior Software Developer
September 2021 – December 2021
- Implement UI from Figma spec using SCSS and HTML on a PHP/Laravel Stack to optimize user engagement in an affiliate marketing application.
- Design and implement a Vue.js dashboard of affiliate marketing effectiveness to assist decision making.
Agriculture and Agri-Food Canada – Integrated Application Services
Programmer/Analyst
January 2021 – April 2021
- Full stack development of Vue.js and Java Spring Boot application with Oracle DB for internal use by Government of Canada employees.
Skills
Languages | Frameworks | Infrastructure | Misc. |
---|---|---|---|
JS/TS 5yrs | React 4yrs | AWS 4yrs | Cypress 4yrs |
Rust 3yrs | Vue.js 3yrs | Linux 5yrs | Jest 4yrs |
PostgreSQL 4yrs | Tailwind 1yr | Docker 3yrs | Git 5yrs |
HTML 5yrs | Kubernetes 1yr | CI Pipelines 3yrs | |
Python 2yrs | Nix/NixOS | ||
C/C++ 2yrs | |||
Bash 5yrs | |||
CSS/SCSS 5yrs | |||
Java 3yrs | |||
PHP 1yr |
Projects
MappedFutures – A fork of the popular Rust modules FuturesUnordered which allows futures to be inserted, removed, or mutated by key, and all futures run concurrently.
Home Cluster – A 10-piece computer cluster running out of my home; declaratively configured and deployed with Nix/NixOS. Contains a Kubernetes cluster for my side-projects, various media servers, a Cloudflare tunnel so my apps are publicly accessible, and the server for my personal webpage (the page itself isn’t pretty, it was the infra and self-hosting aspects that most interested me). The repo also contains the Nix system configs for my Macbook and Debian laptop, bash dotfiles, NeoVim config, etc.
Mass – A full stack application for community organizers; frontend TS/React, bundled with Vite, and with Rust Axum RPC API backed by a Diesel/PostgreSQL database, deployed with self-hosted Nix-configured GitLab runners to my home Kubernetes cluster. Uses Cypress and Vitest for unit, API, and e2e automated tests. API and Keycloak auth server are both behind Nginx reverse proxy which also contains the bundled static web assets. Development environment is declaratively configured with Nix.
Bramble & Storm – A Rust implementation of the bramble protocols, which provide anonymity, authentication, and integrity guarantees in a P2P messaging system over Tor. Initially began with the highest layer, bramble-sync, as my COMP-4560 Industry Project, under the supervision of a Mozilla Security Engineer who began the project by implementing the lower layers. Storm connects the pieces of the bramble protocol as a P2P messenger application on the cross-platform Tauri framework.
Hash Events – An open source async event library allowing consumers to subscribe to events by key, and emit events with a payload, which the subscribers will receive.
Publication
Mardiros, Xian B et al, “Postmating Reproductive isolation between strains of Drosophila willistoni.” Fly (Austin). 2016;10(4)162-171.
Books That Have Influenced How I Think About Software
The DevOps Handbook – Glen Kim et al.
Working Effectively with Legacy Code – Michael Feathers
Refactoring – Martin Fowler
A Philosophy of Software Design – John Ousterhout