LuisMPablo

About

Previously, a Senior Software Engineer / Tech Lead at Wayfair in Toronto, Canada.
Prior, a Software Engineering Manager at Influitive, and before that,
a full-stack Software Engineer at Canopy Labs (acquired by Drop) until 2017.

Graduated with a double major in Computer Science and Linguistics from the University of Toronto.
As well, a General Assembly alum for Product Management.

I work mainly with Python, Java, JavaScript (React & Svelte[Kit]), and some Golang.

Native speaker of English and Filipino, 簡単な会話だけできる日本語と, étage élémentaire de français.
Hobbies in photography, guitar, and sim racing.

Projects

Granite

Helping Canadians with personal finance

Built with: SvelteKit, FastAPI

Granite (prev. MoneyBuddy) will be an AI-powered stock tracking tool designed to help Canadians gain a clear, consolidated view of their financial health. By integrating multiple investment accounts, it delivers insightful analytics, performance tracking, and AI-driven recommendations to optimize portfolios. Whether it's monitoring market trends, tracking dividends, or assessing diversification, Granite empowers users to make smarter financial decisions with ease.

Ladder+Sudowoodo

A ping-pong ladder system with a chatbot interface

Built with: HTML/CSS, jQuery, Python, Flask, MongoDB, nodeJS

Ladder is a simple leaderboard and ladder platform to keep track of office ping-pong stats of its employees (not company property). The system uses the Elo rating system to calculate the relative placements of the participants. The platform was built with Python on Flask and it's Jinja templating to display profiles and using MongoDB as its backing.

The personal profiles of the particpants featured:

  • their Elo Score history
  • Slack profile picture + handle
  • Win streak, lose streak, average points per game
  • Game stats breakdown per opponent

The platform itself did not have a UI portion to input scores or match results, but instead relied on the Slack chatbot "Sudowoodo". The chatbot received commands in Slack with match outcomes which it then parsed and recorded through the Ladder API with HTTP calls. The chatbot supported several recognition patterns for inputting match results and querying stats. It was also able to provide opponent suggestions and other basic conversational skills.

OverParse

A screenshot parser for the game Overwatch

Built with: Python, OpenCV2

As part of our ongoing efforts to compete within the videogame/e-sport Overwatch, a friend and I have been keeping track of our stats of our 1v1 matches. This includes win-loss rates, win-loss rates on specific hero matchups and preferred heroes.

After every 1v1 game, Overwatch provides a match result summary that gives the following information:

  • Hero usage
  • Round results
  • Final scores
OverParse is a simple screenshot parsing tool built for myself to easily extract stats from the results screen of a 1v1 match onto a CSV or JSON file that can be easily copy pasted to the rest of the existing results.

The final result is to have the entire process automated and provide the user (me) with the visualized result of our stats and perhaps even opening the tool the gaming community.

HTML5 Tetris

The classic game of Tetris

Built with: HTML/CSS, TypeScript, JavaScript

Originally implemented using HTML5 Canvas with vanilla JavaScript, I've recently ported it over to TypeScript as a means to learn the language. As part of the port, the code was refactored for better code organization and simplified code logic in some sections. As a challenge, no external graphic assets were used -- everything is drawn using the Canvas API.

Features include a basic scoring system, hold piece functionality, and a ghost piece-guiding system.

Contact

Reach me at me[@]luismpablo.com

Photography

Gallery currently unavailable.

Please visit my instagram account instead.