Full-stack Senior Software Developer looking to work with a team building responsive web applications using the latest technologies. Deliver consistently fast and rich user experiences to users through desktop and mobile browsers. Learn the latest programming frameworks, libraries, technologies and tools. Write clean functional and testable code that is reusable.
Work Experience
Founder / Lead Software Developer — Reveller — Hilo IT Inc
Toronto, Ontario, Canada
April 2026 – Present
• Designed and shipped Reveller on Google Play, a Flutter screen-time tracking and app-blocking app with group accountability challenges, leaderboards, and CBT-based coaching content, co-founded as a two-person product studio
• Implemented native Android screen-time tracking and app blocking in Kotlin via UsageStatsManager event streams, a narrowly-scoped AccessibilityService, and Android 14 special-use foreground services, re-armed on boot and surfaced through a native home-screen widget
• Built a real-time OpenGL ES / GLSL chroma-key video renderer on ExoPlayer compositing green-screen “mindful companion” overlays over any app, verified by a cross-language Kotlin↔Dart shader parity test suite
• Architected the self-hosted backend with Dart (Shelf) and PostgreSQL — JWT auth with rotation (Google, Apple, anonymous), groups with five scored game-mode seasons, Centrifugo WebSocket realtime, self-hosted push, and Claude API-generated coaching content — deployed with Docker on Coolify
• Integrated subscription monetization with RevenueCat and Google Play Billing, including server-side webhook entitlement reconciliation and a remote-configurable paywall catalog that ships copy and pricing changes without an app release
• Built the iOS Screen Time parity layer in Swift (FamilyControls, DeviceActivity, ManagedSettings, shield extensions), pending Apple's Family Controls distribution entitlement
• Managed the Google Play release cycle end to end: store listing and Data Safety declarations, sensitive-permission justifications (usage access, accessibility, overlays), and remediation of a Play accessibility-policy rejection through to approval
Founder / Lead Software Developer — Poekito — Hilo IT Inc
Toronto, Ontario, Canada
May 2026 – July 2026
• Spun out and shipped Poekito on Google Play, an Android app of animated screen pets and mindful overlay timers, extracting Reveller's overlay engine into a standalone Flutter/Kotlin app
• Implemented the native overlay service in Kotlin: SYSTEM_ALERT_WINDOW application overlays, an Android 14-compliant special-use foreground service, and foreground-app detection via UsageStatsManager, using the policy-compliant package-visibility queries approach instead of QUERY_ALL_PACKAGES
• Built 42 chroma-keyed “mindful video” overlay styles rendered with ExoPlayer and OpenGL ES, streamed on demand from a CDN-backed asset server to keep the app bundle lean
• Integrated a one-time Google Play Billing unlock with swappable RevenueCat / Play Billing backends, anonymous JWT entitlements against a shared multi-tenant API, promo codes, and referral deep links via Android App Links and the Play Install Referrer API
• Built a localized Next.js marketing site in 5 languages with GA4 (consent-gated) and Sentry, deployed with Docker on Coolify
• Wrote Dart and Kotlin JVM test suites, including cross-language contract tests asserting Kotlin↔Dart overlay-style parity
Founder / Lead Software Developer — Chatelope — Hilo IT Inc
Toronto, Ontario, Canada
January 2026 – June 2026
• Built Chatelope, an AI conversation manager that imports, backs up, searches, and analyzes chat history from ChatGPT, Claude, and Gemini — a Next.js 16 / React 19 web app live at chatelope.com plus a Flutter client targeting Android, iOS, Windows, and macOS from one codebase
• Architected a tri-modal deployment (server / local-first client / hybrid) behind one data-access interface: Drizzle ORM + SQLite server-side, Dexie/IndexedDB browser-local, and Drift on mobile
• Implemented encrypted-at-rest storage on mobile by compiling SQLite3MultipleCiphers into the Drift database, with key management in platform secure storage and plaintext↔encrypted migration support
• Built a Google Drive-backed cross-device sync and backup engine (manifest, device records, snapshots, change log) implemented in parallel on web and Flutter, authenticated via NextAuth v5 Google OAuth with the Drive scope
• Created a multi-provider AI layer spanning OpenAI, Anthropic, Google, DeepSeek, Qwen, and self-hosted Ollama / LM Studio, plus TTS/STT with ElevenLabs, Kokoro, and fal.ai, with first-party token-cost analytics dashboards
• Implemented import parsers for ChatGPT/Claude/Gemini exports and a server-side Puppeteer share-link extractor; configured a GitHub Actions cron that syncs the model catalog from OpenRouter daily and commits changes automatically
Lead Software Developer — MicroPeace.org
Barcelona, Spain
February 2026 – May 2026
• Built a greenfield full-stack nonprofit web and mobile platform from the ground up utilizing Next.js, TypeScript, Node.js, Payload CMS, PostgreSQL, and Tailwind CSS
• Architected Payload CMS as a headless content layer, empowering non-technical staff to manage site content, media, and translations independently
• Implemented OAuth authentication flows with Google and Apple as identity providers for secure user account creation and login
Lead Software Developer — Scotiabank
Toronto, Ontario, Canada
November 2024 – November 2025
• Developed new Next.js micro application for Scotiabank loyalty rewards program that is shared between both banks Scotiabank and Tangerine
• Implemented new OAuth flow for Scotiabank loyalty micro app as the client and Tangerine as the authentication provider
• Used React Styled Components to create multiple CSS themes for Scotiabank and Tangerine to share the same micro app between banks
Founder / Lead Software Developer — PricedOff.com
Toronto, Ontario, Canada
May 2023 – October 2024
• Created Amazon product price search, tracking and history web application to enable users to find the best product prices by different metrics
• Used Playwright to scrape Amazon product listings and add them to a MongoDB database
• Created AWS EC2 to self host the React frontend application and Node.js API on one instance and MongoDB on a second instance in the same VPS
Team Lead Senior Software Developer — Allstate
Toronto, Ontario, Canada
April 2022 – May 2023
• Developed financial payments gateway services using Node.js for the backend and React payments application to centralize customer payments across Allstate Canada's websites. Implemented JPMorgan Chase payment gateway SDK to enable payments for all major credit cards
• Configured Apache Tomcat servers using Jenkins and Maven for CICD to deploy React frontend and Java backend API applications
• Managed a team of four frontend developers building React components and reviewing Git pull requests. Documented application code and testing processes in Confluence
Senior Software Developer — Telus Enterprises
Toronto, Ontario, Canada
November 2021 – April 2022
• Worked on a dashboard application used to remotely manage building infrastructure, such as reverse work spaces such as desks and meeting rooms
• Used Next.js framework, React, TypeScript, and Styled components to create full stack features from backend to frontend. Features such as a user profile page with edit functionality
• Functional code using React hooks with tests written with Jest and Reacting Testing Library
Senior Software Developer — Loblaw Digital
Toronto, Ontario, Canada
March 2020 – July 2021
• Worked on shop.shoppersdrugmart.ca e-commerce modernization initiative to recreate the customer shopping experience using latest frontend technologies like React, React hooks, GraphQL, CSS modules and Webpack
• Functional code using React hooks with tests written with Jest and Reacting Testing Library
• Built accessible frontend components that are populated through API calls to GraphQL using Apollo such as desktop and mobile navigation, product filters, product tiles, drop down menus, buttons and other essential components
Senior Software Developer — RBC Ventures
Toronto, Ontario, Canada
August 2018 – February 2020
• Worked on Ownr.co an RBC Venture company that helps people easily register or incorporate a business
• Used React, Redux, RxJS, Tachyons and redux-form to create Ownr front-end components and features that are mobile responsive
• Fully tested components using Jest and Enzyme for unit tests. Cypress for end to end integration tests
Software Developer — Metrolinx
Toronto, Ontario, Canada
May 2017 – July 2018
• Worked on Metrolinx's real time train tracking and management applications called TrainTrac and Trip Manager 4 (TM4) used by the Metrolinx transit control center
• Used HTML, CSS, JavaScript ES6, React, Redux, Mobx and material-ui on the front-end to create UI components for creating, updating or displaying train map data
• Used Axios to implement API calls to get or post data to Node.js and ASP.NET Core backend services
Senior UI Developer — RBC
Toronto, Ontario, Canada
April 2017 - May 2017
• Worked on the final stage of RBC's fraud detection web application called Retina that will replace an existing third party application
• Used HTML, CSS, JavaScript ES6, React, material-ui and ui-router on the front-end to create sections of the dashboard application. Worked with fixed data tables for React and form components with material-ui. Used RxJS to manage the state
• Learned Java Spring 4 and Hibernate 5 to create an API to do CRUD operations with ORM, DAO and Services
UI Team Lead and Senior UI Developer — TD Bank
Toronto, Ontario, Canada
July 2016 - April 2017
• Used HTML, CSS3, Bootstrap, SASS, Grunt, jQuery, AngularJS 1.5+ to help create TD Canada Trust and Mobile Appoint Booking responsive redesign
• Created Mobile Appointment Booking project based on Angular 1.5 using component architecture and ui-router
• Setup entire project workflow process including: directory structure, test and build using npm tasks and Grunt with grunt-parallel
Team Lead and Senior Web Application Developer — Bell Media
Toronto, Ontario, Canada
August 2014 - July 2016
• Maintained and created new features for the Flash desktop video player, including: closed captioning with sidecar and embedded CEA708 subtitles with OSMF using ActionScript 3
• Used HTML, CSS, JavaScript, jQuery, React and video.js to create new HTML5 video player features such as responsive: video player UI, video playlists, share dialogs, and shareable video player
• Involved in the rollout of the newest version of Bell Media's video player to all websites including: CraveTV, CTV, CTV News, Discovery, TSN, MTV, Much Music and many more
Web Application Developer — The Infinity Network
Toronto, Ontario, Canada
August 2011 - November 2012
• Used HTML, CSS, JavaScript, jQuery, jQuery UI and jQuery Mobile to develop JavaScript single page applications (SPAs) for interactive site tours and user sign-up forms for online dating sites using MVC pattern for reusability
• Used ActionScript 3 and Robotlegs MVC framework to create interactive sites, tours and video players
• Used JS Render and AngularJS to display user profile data using templates
Flash Application Developer — Shaw Media (formerly Canwest Digital Media)
Toronto, Ontario, Canada
August 2008 - April 2011
• Developed and integrated third-party HTML5 and Flash Video Players from thePlatform into Video Centers across all of Canwest's specialty channel websites
• Coded multiple custom Video Player plug-ins, including: Google DoubleClick Interactive Media Ads, Double In-Stream Ad Insertion, Omniture, Google Analytics, ComScore, Video resize functionality, Bandwidth stream switching, and custom Video Player control skins
• Created custom embeddable Video Players for blogs and third party websites using Adobe Flash Builder 4.5
Earlier roles at Baldhead Systems, Planeteye — details on LinkedIn.
Education
• 3 year degree in Computer Science as a Programmer Analyst — Sault College, Sault Ste. Marie, 2005
Full-stack Senior Software Developer looking to work with a team building responsive web applications using the latest technologies. Deliver consistently fast and rich user experiences to users through desktop and mobile browsers. Learn the latest programming frameworks, libraries, technologies and tools. Write clean functional and testable code that is reusable.
Technical Skills Matrix
React + TypeScript + Modern Frontend
★
★
★
★
★
7 years
Node.js + Express + Backend Architecture
★
★
★
★
★
9 years
AWS Cloud & DevOps
★
★
★
★
★
4 years
Web Scraping + Automation
★
★
★
★
★
2 years
Payment Systems & Financial Integration
★
★
★
★
★
2 years
Testing & Quality Assurance
★
★
★
★
★
7 years
React + TypeScript + Modern Frontend(7 years)
★★★★★
Node.js + Express + Backend Architecture(9 years)
★★★★★
AWS Cloud & DevOps(4 years)
★★★★★
Web Scraping + Automation(2 years)
★★★★☆
Payment Systems & Financial Integration(2 years)
★★★★☆
Testing & Quality Assurance(7 years)
★★★★★
Experience
Founder / Lead Software Developer
Reveller — Hilo IT Inc • April 2026 – Present
Toronto, Ontario, Canada
• Designed and shipped Reveller on Google Play, a Flutter screen-time tracking and app-blocking app with group accountability challenges, leaderboards, and CBT-based coaching content, co-founded as a two-person product studio
• Implemented native Android screen-time tracking and app blocking in Kotlin via UsageStatsManager event streams, a narrowly-scoped AccessibilityService, and Android 14 special-use foreground services, re-armed on boot and surfaced through a native home-screen widget
Founder / Lead Software Developer
Poekito — Hilo IT Inc • May 2026 – July 2026
Toronto, Ontario, Canada
• Spun out and shipped Poekito on Google Play, an Android app of animated screen pets and mindful overlay timers, extracting Reveller's overlay engine into a standalone Flutter/Kotlin app
• Implemented the native overlay service in Kotlin: SYSTEM_ALERT_WINDOW application overlays, an Android 14-compliant special-use foreground service, and foreground-app detection via UsageStatsManager, using the policy-compliant package-visibility queries approach instead of QUERY_ALL_PACKAGES
Founder / Lead Software Developer
Chatelope — Hilo IT Inc • January 2026 – June 2026
Toronto, Ontario, Canada
• Built Chatelope, an AI conversation manager that imports, backs up, searches, and analyzes chat history from ChatGPT, Claude, and Gemini — a Next.js 16 / React 19 web app live at chatelope.com plus a Flutter client targeting Android, iOS, Windows, and macOS from one codebase
• Architected a tri-modal deployment (server / local-first client / hybrid) behind one data-access interface: Drizzle ORM + SQLite server-side, Dexie/IndexedDB browser-local, and Drift on mobile
Lead Software Developer
MicroPeace.org • February 2026 – May 2026
Barcelona, Spain
• Built a greenfield full-stack nonprofit web and mobile platform from the ground up utilizing Next.js, TypeScript, Node.js, Payload CMS, PostgreSQL, and Tailwind CSS
• Architected Payload CMS as a headless content layer, empowering non-technical staff to manage site content, media, and translations independently
Lead Software Developer
Scotiabank • November 2024 – November 2025
Toronto, Ontario, Canada
• Developed new Next.js micro application for Scotiabank loyalty rewards program that is shared between both banks Scotiabank and Tangerine
• Implemented new OAuth flow for Scotiabank loyalty micro app as the client and Tangerine as the authentication provider
Founder / Lead Software Developer
PricedOff.com • May 2023 – October 2024
Toronto, Ontario, Canada
• Created Amazon product price search, tracking and history web application to enable users to find the best product prices by different metrics
• Used Playwright to scrape Amazon product listings and add them to a MongoDB database
Team Lead Senior Software Developer
Allstate • April 2022 – May 2023
Toronto, Ontario, Canada
• Developed financial payments gateway services using Node.js for the backend and React payments application to centralize customer payments across Allstate Canada's websites. Implemented JPMorgan Chase payment gateway SDK to enable payments for all major credit cards
• Configured Apache Tomcat servers using Jenkins and Maven for CICD to deploy React frontend and Java backend API applications
Senior Software Developer
Telus Enterprises • November 2021 – April 2022
Toronto, Ontario, Canada
• Worked on a dashboard application used to remotely manage building infrastructure, such as reverse work spaces such as desks and meeting rooms
• Used Next.js framework, React, TypeScript, and Styled components to create full stack features from backend to frontend. Features such as a user profile page with edit functionality
Senior Software Developer
Loblaw Digital • March 2020 – July 2021
Toronto, Ontario, Canada
• Worked on shop.shoppersdrugmart.ca e-commerce modernization initiative to recreate the customer shopping experience using latest frontend technologies like React, React hooks, GraphQL, CSS modules and Webpack
• Functional code using React hooks with tests written with Jest and Reacting Testing Library
Senior Software Developer
RBC Ventures • August 2018 – February 2020
Toronto, Ontario, Canada
• Worked on Ownr.co an RBC Venture company that helps people easily register or incorporate a business
• Used React, Redux, RxJS, Tachyons and redux-form to create Ownr front-end components and features that are mobile responsive
Software Developer
Metrolinx • May 2017 – July 2018
Toronto, Ontario, Canada
• Worked on Metrolinx's real time train tracking and management applications called TrainTrac and Trip Manager 4 (TM4) used by the Metrolinx transit control center
• Used HTML, CSS, JavaScript ES6, React, Redux, Mobx and material-ui on the front-end to create UI components for creating, updating or displaying train map data
Senior UI Developer
RBC • April 2017 - May 2017
Toronto, Ontario, Canada
• Worked on the final stage of RBC's fraud detection web application called Retina that will replace an existing third party application
• Used HTML, CSS, JavaScript ES6, React, material-ui and ui-router on the front-end to create sections of the dashboard application. Worked with fixed data tables for React and form components with material-ui. Used RxJS to manage the state
UI Team Lead and Senior UI Developer
TD Bank • July 2016 - April 2017
Toronto, Ontario, Canada
• Used HTML, CSS3, Bootstrap, SASS, Grunt, jQuery, AngularJS 1.5+ to help create TD Canada Trust and Mobile Appoint Booking responsive redesign
• Created Mobile Appointment Booking project based on Angular 1.5 using component architecture and ui-router
Team Lead and Senior Web Application Developer
Bell Media • August 2014 - July 2016
Toronto, Ontario, Canada
• Maintained and created new features for the Flash desktop video player, including: closed captioning with sidecar and embedded CEA708 subtitles with OSMF using ActionScript 3
• Used HTML, CSS, JavaScript, jQuery, React and video.js to create new HTML5 video player features such as responsive: video player UI, video playlists, share dialogs, and shareable video player
Web Application Developer
The Infinity Network • August 2011 - November 2012
Toronto, Ontario, Canada
• Used HTML, CSS, JavaScript, jQuery, jQuery UI and jQuery Mobile to develop JavaScript single page applications (SPAs) for interactive site tours and user sign-up forms for online dating sites using MVC pattern for reusability
• Used ActionScript 3 and Robotlegs MVC framework to create interactive sites, tours and video players
Flash Application Developer
Shaw Media (formerly Canwest Digital Media) • August 2008 - April 2011
Toronto, Ontario, Canada
• Developed and integrated third-party HTML5 and Flash Video Players from thePlatform into Video Centers across all of Canwest's specialty channel websites
• Coded multiple custom Video Player plug-ins, including: Google DoubleClick Interactive Media Ads, Double In-Stream Ad Insertion, Omniture, Google Analytics, ComScore, Video resize functionality, Bandwidth stream switching, and custom Video Player control skins
Languages
English
Interests
Web developmenttravelexercisevolleyballtechnologyinvestingkiteboardinglearning new languagesplaying guitar
Education
• 3 year degree in Computer Science as a Programmer Analyst — Sault College, Sault Ste. Marie, 2005