Currently a Senior Software Engineer
at Wayfair
in Toronto, Canada.
Previously 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.
Most recently, a General Assembly alum for Product Management.
I work mainly with Ruby, Python, JavaScript, HTML/CSS, and some Golang.
Varying professional experience with: Apache Spark, AngularJS,
Apache Mesos, MongoDB, MySQL, Postgres, NodeJS/Express, React, and VueJS.
Native speaker of English and Filipino, 簡単な会話だけできる日本語と,
étage élémentaire de français.
I also enjoy taking (mostly) landscape photography with the Nikon D7100 and playing my guitar.
Built with: VueJS, Netlify
MoneyBuddy is a personal project that came from my own journey of learning more about personal finance. As someone who learns through general trial and error, it gave me an idea to create a set of "calculators" and visualizations that help demonstrate various concepts in personal finance, such as how dividend payouts are calculated, the power of compounded interest, and even the pitfalls of not paying credit card bills in full.
The entire website (as of writing) is written in Nuxt.js/VueJS and statically generated and loaded from Netlify.
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:
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.
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:
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.
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.
Reach me at me[@]luismpablo.com