Verified Expert in Engineering
Full-stack Web and Mobile Developer
Node.js, Android, iOS, TypeScript, Kotlin, PostgreSQL, MySQL, Ruby on Rails API, Swift, Objective-C
The most amazing...
...projects I've lead are complex, full-stack solutions with a focus on balancing quality with shipping quickly.
Technical Lead, Founder
- Developed native Android and iOS solutions with Kotlin, Java, Swift, Objective-C, including experiences with SwiftUI, Jetpack Compose, and Kotlin Multiplatform Mobile (KMM) writing React Native plugins.
- Custom designed and developed the front end of a content management system and framework-powered website using open-source technologies that include WordPress, ProcessWire, and Drupal.
Senior Full-stack Software Developer | Founding Developer
- Developed, independently, the Java SDK from scratch to support the GrowthBook product in back-end Java (e.g., Java Spring), Kotlin (e.g., Ktor), and native Android, including example implementations and CPU/memory usage profiling to test for leaks.
- Enabled GrowthBook to become the 1st company in the feature flagging space to offer type safety for feature flags by single-handedly developing the GrowthBook CLI, allowing developers to generate type definitions to reduce human error.
- Developed the GrowthBook Visual Studio Code (VS Code) extension, available in the VS Code Marketplace, to allow developers using VS Code to see GrowthBook resources (e.g., features) in the editor tree view to improve the developer experience.
- Built CI/CD workflows for multiple code bases in different languages (Java SDK, the VSCode extension/TypeScript) and the GrowthBook CLI (TypeScript). Automated testing, linting, code coverage, packaging and publishing binaries, generating docs.
- Developed examples in various programming languages and frameworks, including Ruby, Java, Kotlin (JVM, Android), and Go.
- Worked with OpenAPI Swagger to generate REST API documentation.
Principal Software Engineer
- Led the development of the Bunch SDK, a platform for game developers to integrate Bunch into their games. Then, when business priorities shifted, I moved to the leading feature development for mobile clients.
- Led the development of Bunch Palette, the internal design system for the new Bunch app. Owned architecture, implementation, and execution of the Android design system while overseeing the iOS implementation.
- Spearheaded junior and intermediate developers with no previous Android experience to jump in and provide value quickly in building out reusable components in Android for the Bunch Palette design system.
- Architected and implemented deep linking on Android and iOS via React Native. The system supports custom vanity URLs and deferred deep linking into the right screen even if they do not have the app, and works more reliably than the existing attempts.
- Architected the new onboarding system in KMM, Android, and iOS, which considers complete and express onboarding, deep linking, and conditional handling for Android and iOS in the standard business layer, depending on the needs of the platform.
- Mentored developers in React, React Native, Redux, Android, and KMM. Set the team up for success by establishing coding best practices in React, React Native, and Android. Improved the core app development experience with serverless functions.
- Embraced Bunch's legacy systems from a full-stack approach. I quickly became one of the key people with the most knowledge about how Bunch's systems work internally, as I can quickly adapt to foreign and complex systems.
- Led the development of a Chromecast app, my idea for an internal hackathon project. The goal was quite ambitious, but within two days, we could get the Bunch party experience working on our TVs over Chromecast for both Android and iOS.
- Set up continuous integration and continuous deployment (CI/CD) for native Android clients and a React app that uses static site generation (SSG) and server-side rendering (SSR).
- Provided featured development on a new presence service that uses WebSockets and Redis, including Redis PubSub and Redis Streams on back-end and native mobile clients.
A Digital Agency
- Spearheaded the technical engineering decisions and implemented full-stack projects on teams of two to six developers as a tech lead. I also architected, designed, and engineered full-stack end-to-end solutions for our startup clients' products.
- Turned a project around with only myself and one junior front-end developer, from a poor, brittle architecture, slow, broken, and buggy approach that the previous five-person team—two senior back-end and three front-end developers—had delivered.
- Built state of a lease document management—from draft to sent offer, to sign—commenting, and access control features for landlords and tenants' teams using an RoR with GraphQL back end and a React, TypeScript, Redux, and Sass for SCSS front end.
- Solved n+1-related performance problems on the back end Rails with GraphQL API.
- Implemented and mentored the team to use sound architecture in the React app: TypeScript, container-presentational component architecture, Redux with hooks, thorough unit testing.
- Collaborated with project and product managers to find the best solution within the constraints of the client's timelines.
- Single-handedly built a React component library using styled-components and TypeScript to help agency projects move faster to avoid reinventing the wheel.
- Built a component library as a utility-first approach offering theming, layout, grids, responsive design, typography, unstyled behavior, and functionality. Concerns' proper separation results in an API that is intuitive, versatile, and composable.
- Structured the React component library so that even the most junior developers at the company can quickly pick up and hit the ground running.
- Improved the company's development guidelines and code quality by setting standards for software engineering using industry-proven approaches.
Senior Software Engineer
- Handled the full-stack development on the Wealthsimple for the Advisors product (Wealthsimple's B2B offering that enables financial advisors to focus on delivering value to their clients).
- Helped turn the product from a desktop-only proof-of-concept to a solid enterprise-level product that advisors use every day to run their business on desktop and mobile. The product includes robust client onboarding, activity feeds, dashboards and graphs.
- Implemented white labeling: a key player to our internal design system of themeable React components, eliminating theme-related bugs.
- Implemented the associate role: this feature saves advisors time by allowing them to invite colleagues to securely manage their clients. Supports many-to-many relationships so Advisors of a company can share Associates. It supports onboarding new and existing users. This project helped set up the foundation to support additional roles.
- Rewrote the "log in as client" functionality ("impersonation"): the feature allows advisors to perform actions on behalf of their clients the way the client would themselves. This feature is also foundational to the day-to-day operations internally—without it our client success and operations teams would not be able to do their jobs. Previous to my joining Wealthsimple, this feature was unreliable and would often fail. I solved the reliability issues associated with years of tech debt by rewriting both back-end and front-end functionality, raising its reliability to 100%.
- Interviewed candidates along with mentoring junior, intermediate and senior developers in React—helping to deprecate years of tech debt, hackathons, and public speaking.
Lead Instructor – Web Development
- Worked as the lead instructor of the part-time Web Developer Foundation course at Red Academy, a ten-week certificate program designed to give students foundational principles in web development.
- Developed a suite of tools to automate the assessment of student projects.
- Integrated Snapchat into Bitmoji and Bitmoji into Snapchat so that users can authenticate with Snapchat to use Bitmoji and use Bitmoji from within Snapchat.
- Developed the Snapchat API to ensure that the right Bitmojis are available from within Snapchat.
- Localized the Bitmoji search data to the many languages that Snapchat supports—enabling users to easily search for content from within the Bitmoji and Snapchat apps in their language.
- Staged a content rollout functionality in the Bitmoji API to gradually roll out new content to users to prevent server overload.
- Wrote detailed technical documents for the planning and implementation of unique and complex software problems, and the development of the implementation, while being sensitive to the strict legal and security requirements surrounding data.
- Independently designed and developed the front-end application for an internal tool using React and Redux.
- Unit-tested React-Redux applications including React components, Redux reducers, along with Mocha, ES6 modules, JSDom, Enzyme, DeepFreeze, and more.
- Created native Android applications which included unit testing with JUnit, Robolectric, and Espresso.
- Worked with native iOS development working with Objective-C and Swift; including keyboard extension. Developed an Apple Watch app on a hack day. Performed unit testing with Kiwi.
- Overhauled/improved and led the development of CSS in our front-end applications.
- Overhauled the Bitstrips mobile app comic editor to switch from Flash to HTML5 Canvas to help alleviate tech debt.
- Worked with a variety of build tools and package managers. For the mobile web: NPM, Grunt, Gulp, Bower, Webpack, Browsersync, CSS pre-processors, Babel, Browserify, Gradle (Android), iOS (CocoaPods, Carthage) and so on.
- Worked on Hack Day projects which included coding in Meteor and Ruby/Sinatra; and also working with the Google Maps API and image processing.
CEO | Technical Lead
Team Atomic, Inc.
- Co-founded a company with my business partner at the time as the technical lead and CEO.
- Solved client problems as efficiently as possible.
- Developed the business; performed client acquisition and administration.
Tangerine Bank of Canada
- Implemented responsive web design using Bootstrap and custom CSS.
- Developed a custom plugin using jQuery and jQuery UI.
- Supported the front-end team with front-end frameworks, build tools, problem solving, troubleshooting, and version control with Git.
- Managed the front-end development for the Sheridan College redesign 2013 project. This included the development of a custom CSS framework by extending a basic semantic grid system, adding an object-oriented approach to CSS for decoupling style declarations from semantic markup, a custom jQuery scripting, developing a custom Accessibility widget including High-Contrast and on-page text re-sizing controls. All this and also implementing the challenging design vision provided by a third-party agency for desktop and mobile.
- Developed a custom WordPress theme design including CMS development.
- Created and developed a custom HTML email newsletter generator that queries the right posts based on post authoring requirements. For use with email campaign software for the Sheridan Insider, a custom-developed WordPress solution.
- Developed a custom microsite front-end using cutting-edge practices with CSS pre-processing and jQuery including advanced and efficient implementation of responsive web design.
- Implemented corporate training for end-users on the SiteCore content management system including training workshops, technical support via email and phone, and technical support document authoring.
- Configured and authored the content of a Wiki setup in an effort to standardize web development practices at Sheridan. The wiki acts as a hub of information and a guide for best practices for Sheridan’s scalable web development.
- Created a template for the rapid development of pages to be implemented into an existing site theme.
Web Designer | Web Developer
- Developed the Funding Matters Inc.'s website and sister company websites.
- Designed, developed, and enhanced the websites for Funding Matters’ clients.
- Created the custom Content Management System design and development in WordPress and ProcessWire.
- Designed and developed accessible websites as per the web content accessibility guidelines (WCAG 2.0) for government-funded websites.
Mobile App for Tattoo Artists and Clientshttps://tinaciousdesign.com/portfolio/mobile-app-tattoo-artists-piercers-android
Jewelry Curation Tool for Body Piercingshttps://tinaciousdesign.com/portfolio/jewelry-curation-tool-body-piercings
Wealthsimple for Advisors
I helped turn the product from a desktop-only proof-of-concept to a solid enterprise-level product that advisors use every day to run their business on desktop and mobile. The product includes robust client onboarding, activity feeds, dashboards, and graphs.
Since I joined, the B2B business went from being a small contributor to become a major player in the company's growth and success.
White labeling: key player to our internal design system of themeable React components, eliminating theme-related bugs.
Associate role: this feature saves Advisors time by allowing them to invite colleagues to securely manage their clients. Supports many-to-many relationships so advisors of a company can share associates. It supports onboarding new and existing users. This project helped set up the foundation to support additional roles.
Rewriting the "Log in as client" functionality: the feature allows advisors to perform actions on behalf of their clients. This feature is also foundational to the day-to-day operations.
Bitmoji (iOS, Android, Chrome, Back-end API)https://tinaciousdesign.com/portfolio/bitmoji/
The back-end development was done with Node.js using Express.js and Hapi.js, OAuth, MySQL, PostgreSQL. The back-end API development was done in Java using the Google AppEngine.
Test-driven development included unit tests (Karma, Jasmine, Mocha, Sinon, Chai, XCTests for iOS, JUnit for Android), integration tests (Python, Node.js), UI tests (Selenium, XCUITests for iOS, Espresso for Android).
Initially just a productivity tool for myself, it turned into a product people use every day. Canned Replies currently has 6,000+ users on Chrome and hundreds on Android with an average rating of 4+ stars.
The project is live and currently under feature development.
Tangerine Bank of Canada Websitehttp://tangerine.ca
The new Tangerine website was the first bank website in Canada to be fully responsive. I also added accessible support for Internet Explorer 7 and a wide variety of mobile devices including Windows, Android, BlackBerry, and Apple. In addition, I developed the Google Maps API.
Tangerine Bank of Canada Forward Banking Bloghttps://www.tangerine.ca/forwardthinking
Sheridan College Redesignhttps://tinaciousdesign.com/portfolio/sheridan-college-redesign/
ISM at the University of Quebec in Montrealhttps://tinaciousdesign.com/portfolio/ism-uqam/
Responsive Web Application for a Recruiting Companyhttps://tinaciousdesign.com/portfolio/responsive-web-app/
The application features dynamic forms that animate form sections in, as needed. The forms were designed to be enjoyable and quick to fill out. Forms were designed with the power user in mind, allowing tech savvy staff to quickly fill out forms with keyboard-friendly input.
Lesson Planning Application Prototypehttp://tinaciousdesign.com/portfolio/tinacious-teaching-lesson-planning-web-app/
Freelancer Resume Websitehttps://tinaciousdesign.com/portfolio/resume-website/
Social Network Activity Feed Design and Developmenthttps://tinaciousdesign.com/portfolio/social-media-website-design/
Redux, Angular, Jasmine, Ruby on Rails (RoR), Sinatra, AngularJS, Next.js, Ember.js, React Native, Nuxt.js, Express.js
REST APIs, React Redux, React, jQuery, Node.js, Ruby on Rails API, Vue, D3.js, OpenAPI
Mocha, Karma, NPM, Stylus, Adobe Photoshop, Adobe Illustrator, Git, Prisma, Bower, Yeoman
Functional Reactive Programming, Functional Programming, Agile Software Development, Unit Testing, Test-driven Development (TDD)
WordPress, Vercel, Android, iOS, Drupal, Drupal 7, Firebase, MacOS, Linux, Drupal 8, Google Cloud Platform (GCP), YouTube, Shopify
UI Testing, Chrome Extensions, Styled-components, Full-stack Development, Kotlin Multiplatform Mobile (KMM), WebSockets, Serverless, Chromecast, ProcessWire CMS, Cordova, Redis Streams, Redis Pub/Sub, Vimeo, Plugins, Feature Flags, GitHub Actions, CI/CD Pipelines, Maps, Geolocation, Push Notifications
PostgreSQL, MongoDB, MySQL, Cloud Firestore, Redis, RoomDB
Bachelor's Degree in Education
University of British Columbia - Vancouver, BC, Canada
Bachelor of Arts Degree in French and Spanish
York University - Toronto, ON, Canada
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.Start hiring