Work
Senior Software Engineer @ Treasure Data
2019-10 to 2021-09
Languages: Kotlin, Java, Ruby, Python
Technologies: Rails, Dropwizard, PostgreSQL, PrestoSQL, AWS, Terraform, OpenAPI, Locust
- Developed control plane services in Ruby w/ Ruby on Rails and Kotlin w/ Dropwizard, which managed configuration entities for data transformations and flows within our Customer Data Platform (CDP). Deployed these services on AWS with Terraform.
- Verified system performance and checked for data model consistency issues by designing and running load tests with Locust.
- Enabled greater insights into customer usage of our CDP, along with performance issues, by pushing for and developing analysis tooling for our internal query DSL.
- Gave developers access to customer query data by building out a data pipeline to generate a sanitized query corpus.
- Developed accurate encodings of our DSL in Kotlin which served as the foundations for our analysis tooling, and later on a new line of business.
- Provided customers with more fine-grained control over their configurations as the technical owner for a cross-functional initiative to extend our internal permissions system.
- Added a new RBAC domain layer and interpreter to our existing Rails application with sufficient expressiveness to encode our existing model and the extensions required.
- Ensured a smooth deployment (and customer experience) by coordinating feature release with feature flags.
- Led a Junior Software Developer, providing mentorship and support.
- Introduced new (and sometimes old) technologies, techniques and best practices to our team by running a regular paper reading group.
- Handled incidents as part of a regular on-call rotation and ran incident retrospectives.
- Improved our operations by updating runbooks, tweaking dashboards, introducing additional monitoring and actively mentoring other developers during incidents.
- Helped grow our Vancouver team from 3 to 10 developers
- Interviewed potential candidates for our team.
- Reduced onboarding times from months to weeks by performing a deep clean of our onboarding material and updating our service documentation.
Software Engineer @ Bazinga Technologies
2019-04 to 2019-10
Languages: Typescript, F#
Technologies: React, Redux, GraphQL, Webpack, Jenkins
- In order to ship features for our users, became the sole frontend developer at the company and onboarded myself onto a pre-existing React Typescript project.
- Enabled faster feature iteration, and deployments, by implementing CI/CD pipelines for our frontend and backend codebases based on a git feature branch workflow.
Intermediate Backend Developer
@ Rakuten Kobo & BitLit Media (Acquired)
2015-05 to 2018-05
Languages: Scala, Python, C++, C#
Technologies: Docker, PostgreSQL, RabbitMQ, Apache Thrift, Play Framework, Scala.js
- Designed APIs for our iOS and Android applications using Apache Thrift RPC.
- Implemented backend features using the Play Framework, PostgreSQL and RabbitMQ.
- Implemented administrative UIs using Scala.js.
- Performed performance profiling of C++ code used for Computer Vision tasks and implemented optimizations.
Post-Acquisition
- Enabled data integration between Bitlit Media and Rakuten Kobo by developing an interconnect over RabbitMQ.
- Containerized development dependencies to allow for development in both Linux and Windows environments.
SDE Intern @ Microsoft
2014-05 to 2014-08
Languages: Java
- Implemented custom weather charts, along with associated backend logic to feed them, for the MSN Weather Android application.
SDE Intern @ Amazon
2013-09 to 2013-12
Languages: Java, JavaScript
- Worked on the Kindle Whispercast team to develop customer facing features using JavaScript, jQuery and the Spring Framework.
Undergraduate Research Assistant
@ UBC Quantum Degenerate Gases Laboratory
2013-04 to 2013-08
Languages: Python
- Created device wrappers in Python to allow for new equipment, such as voltage sensors, pressure and cameras, to be incorporated into an existing experimental framework.
Quality Assurance Engineer @ Atimi Software
2012-01 to 2012-08
Languages: PHP
- Tested applications on iOS and Android devices.
- Created custom data feeds and services using PHP for testing purposes.
Undergraduate Teaching Assistant
@ University of British Columbia
2011-01 to 2011-12
Languages: Racket
- TA for CPSC 110 [Computation, Programs, and Programming], the introductory Computer Science course at UBC.
- Guided groups of ~20 students through weekly computer science labs.
- Balanced 1-on-1 time with students with the needs of the whole lab group.
Community
Organizer @ Papers We Love YVR
2020-04 to Present
Education
B. Sc. in Combined Honours
Physics and Computer Science
@ University of British Columbia
2010-09 to 2015-05