Technical Lead, Founder
2009 - PRESENTTinacious Design- Developed responsive web designs and a mobile website including fully fluid and responsive websites for all screen and device sizes. Converted PSD and Figma mocks to pixel-perfect HTML and CSS, JavaScript, and end-to-end native mobile code.
- 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.
- Created custom JavaScript and jQuery solutions, a jQuery plugin, and WordPress plugins.
- Developed client-side and server-side web applications in JavaScript, TypeScript, Node.js, Kotlin, Ruby on Rails, and PHP.
Technologies: ProcessWire CMS, REST APIs, Node.js, React, Angular, Drupal, WordPress, PHP, JavaScript, CSS, HTML, Android, Mocha, Functional Programming, Functional Reactive Programming, TypeScript, Ruby on Rails API, React Native, Redux, Jasmine, NPM, Sinatra, React Redux, Ruby, Chrome Extensions, Ruby on Rails (RoR), Nuxt.js, RoomDBPrincipal Software Engineer
2021 - 2021Bunch Live- 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 full and express onboarding, deep linking, and conditional handling for Android and iOS in the common 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 around how Bunch's systems work internally, as I can easily 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 were able to 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 both on back-end and native mobile clients.
Technologies: Kotlin, React, React Native, Kotlin Multiplatform Mobile (KMM), Objective-C, Swift, Java, Node.js, Google Cloud Platform (GCP), Firebase, Cloud Firestore, Redis, Redis Streams, Redis PubSub, Prisma, PostgreSQL, WebSockets, TypeScript, Serverless, Chromecast, Android, UI Testing, REST APIs, Mocha, Functional Programming, Functional Reactive Programming, CSS, JavaScript, Redux, Jasmine, NPM, React Redux, Next.jsTech Lead
2020 - 2020A 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.
Technologies: JavaScript, TypeScript, Ruby on Rails API, Ruby on Rails (RoR), React, Redux, React Redux, Sass, SCSS, Styled-components, UI Testing, REST APIs, Mocha, Functional Programming, Functional Reactive Programming, Serverless, CSS, Node.js, NPM, Ruby, Next.jsSenior Software Engineer
2017 - 2020Wealthsimple- 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.
Technologies: AngularJS, React, JavaScript, Ruby on Rails (RoR), Ruby, UI Testing, REST APIs, Mocha, Functional Programming, Functional Reactive Programming, TypeScript, Ruby on Rails API, Styled-components, CSS, Redux, Karma, Jasmine, NPM, Sinatra, React ReduxLead Instructor – Web Development
2016 - 2017Red Academy- 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.
- Taught students how to develop websites using HTML, CSS, and JavaScript, how to use industry-standard tooling including text editors, Git, CSS preprocessors, debugging tools, and more; also how to leverage the open-source community to build websites quickly and efficiently.
- Developed a suite of tools to automate the assessment of student projects.
Technologies: Node.js, Git, jQuery, JavaScript, CSS, HTML, REST APIs, Mocha, Functional Programming, Functional Reactive Programming, NPMSoftware Developer
2016 - 2016Snapchat- Integrated the Bitmoji app into Snapchat. Technologies include JavaScript (Angular, React, Node.js), Android development, iOS development (Swift, Objective-C), server-side Java development using Google AppEngine, HTML, CSS, jQuery, and JavaScript.
- 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.
- Taught JavaScript web application development at a college in Los Angeles in support of Snap's community involvement initiatives; including the creation of educational and engaging learning experiences utilizing Bitmoji. The instructional app fetches weather data and displays a bitmoji depending on the weather.
- 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.
Technologies: Objective-C, Android, Swift, iOS, Java, Angular, React, Node.js, JavaScript, UI Testing, REST APIs, Mocha, Functional Programming, Functional Reactive Programming, CSS, Karma, Jasmine, NPM, React Redux, ReduxSoftware Developer
2014 - 2016Bitstrips- Built JavaScript applications for client-side web and mobile and server-side (Node.js). Performed unit testing and UI testing. Created test-driven development using Mocha, Jasmine, Chai, Sinon, Jest, Selenium, and WebDriver. Implemented code-testing for Angular, React, and Node.js.
- Developed with Cordova and Ionic for HTML5 JavaScript mobile web applications.
- 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.
Technologies: Swift, Objective-C, iOS, Test-driven Development (TDD), UI Testing, Unit Testing, Chrome Extensions, Android Development, Stylus, Sass, CSS, Cordova, React, AngularJS, Node.js, JavaScript, REST APIs, Mocha, Functional Programming, Functional Reactive Programming, Redux, Karma, Jasmine, NPM, Sinatra, React Redux, AndroidCEO | Technical Lead
2013 - 2014Team Atomic, Inc.- Co-founded a company with my business partner at the time as the technical lead and CEO.
- Created pixel-perfect web development from PSD mockups; including custom CSS, HTML, and JavaScript.
- Solved client problems as efficiently as possible.
- Developed the business; performed client acquisition and administration.
Technologies: JavaScript, CSS, HTML, REST APIs, Functional Programming, Functional Reactive ProgrammingFront-end Developer
2013 - 2014Tangerine Bank of Canada- Implemented responsive web design using Bootstrap and custom CSS.
- Developed a custom plugin using jQuery and jQuery UI.
- Single-handedly developed all of the client-side functionality for the new Tangerine's "Forward Banking" blog using the AngularJS JavaScript framework. The application uses WordPress as a REST service, allowing users to read and write to the blog through the API. Created custom directive development to add support in AngularJS for the existing libraries and plugins, including Modernizr for feature detection, as well as the official Angular support for the popular Picturefill plugin for responsive images.
- Developed and implemented client-side JavaScript templating solutions using AngularJS and Handlebars.js; included core structural template logic as well as a library of reusable components for rapid development.
- Supported the front-end team with front-end frameworks, build tools, problem solving, troubleshooting, and version control with Git.
Technologies: AngularJS, JavaScript, jQuery, Less, CSS, HTML, REST APIs, Functional Programming, Functional Reactive ProgrammingFront-end Developer
2012 - 2013Sheridan College- 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.
Technologies: JavaScript, jQuery, CSS, HTML, REST APIs, Functional Programming, Functional Reactive ProgrammingWeb Designer | Web Developer
2011 - 2013Funding Matters- 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.
Technologies: WordPress, jQuery, CSS, HTML, JavaScript