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
Lead Software Developer — Scotiabank
Toronto, Ontario, Canada
November 2024 – Current
• 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
• Implemented REST API to manage the stateless flow of the micro app
• Integrated micro app with multiple third party vendors to offer rewards
• Jest unit and Playwright E2E tests
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
• Used Event Bridge to schedule Lambda functions to launch EC2 spot instances to scrape Amazon domain data, store in S3 and upsert documents to MongoDB
• Configured AWS Cloudfront and WAF as CDN for the pricedoff.com domain
• Configured Ubuntu and NGINX proxy to point to PM2 service serving Node applications
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
• Created agile user stories for sprint epics with the project manager in JIRA
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
Lead Software Developer
Scotiabank • November 2024 – Current
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