Hey there! I'm Michael.

Nice to meet you!

  • Hey! My name is Michael Le and I'm in my final year of computer science at the University of Waterloo. I'm a software engineer primarily interested in game development, computer graphics, and C++! I've had a diverse set of experiences, ranging from gameplay engineering at Riot Games, to compiler and AI research at Huawei, to fullstack web development at several other internships. I'm always trying to learn something new by reading CS books or research papers. When I'm not coding, I like to play soccer, hit new PRs at the gym, and play all kinds of video games!

  • Feel free to contact me or take a look at my resume below!

  • Github

  • LinkedIn

  • Resume

  • Email

Experiences

  • Riot Games

    Los Angeles, California

    May 2023 - Aug 2023

    Software Engineer Intern

    • Developed an enhanced pathfinding system in League of Legends using HavokAI, reducing search times by up to 33%.
    • Refactored core game and engine code in C++ to support WASD controls for the League of Legends game mode, Swarm.
    • Built in-game debugging tools using ImGUI to visualize pathfinding and movement data, aiding development efficiency.
    • Shipped bug fixes for in-game UI and character spells via Perforce, improving the experience for millions of players.
  • Huawei

    Markham, Ontario

    Jan 2023 - Apr 2023

    Compiler Software Engineer Intern

    • Wrote SYCL kernels for operators such as fused multiheaded attention with zero padding, using NVIDIA’s Cutlass library, manual synchronization of shared memory, and vector algebra to reduce execution time by 75%.
    • Implemented double buffering to minimize delay between reading and writing data, increasing kernel speed by 10%.
    • Researched and tested AI/ML operators to profile and improve Huawei’s BiSheng C++ abstractions.
  • Riot Games

    Los Angeles, California

    May 2022 - Aug 2022

    Software Engineer Intern

    • Engineered a multi-team rate-limiting solution using Go, capable of handling over 100,000 API requests per minute.
    • Spearheaded the project by authoring system architecture design documents and planning tasks in advance using Jira.
    • Utilized Redis as a distributed cache with replica nodes, enhancing efficiency and eliminating downtime if a node fails.
    • Created Jenkins multibranch pipelines to automatically test, lint, build, and deploy changes on push.
  • Applyboard

    Waterloo, Ontario

    Sep 2021 - Dec 2021

    Software Engineer Intern

    • Built backend services with Ruby on Rails and MySQL for precise searching/filtering through thousands of programs.
    • Secured APIs with a permission system to prevent unauthorized users from accessing the database using Pundit.
    • Actively built and deployed code to production using CI/CD tools like Docker, Jenkins, AWS CodeBuild.
  • Newtopia Inc.

    Toronto, Ontario

    Jan 2021 - Apr 2021

    Software Developer Intern

    • Created new API endpoints with improved security protocols using JWT validation, protecting 10,000+ monthly users.
    • Refactored React Native android application into TypeScript and simutaneously reduced memory usage by 25%.
    • Managed application and user state with Redux to handle asynchronous data fetching.
    • Implemented support for assistive technologies to meet WCAG accessibility requirements.
  • Manulife

    Waterloo, Ontario

    May 2020 - Aug 2020

    Salesforce Software Engineer Intern

    • Created a data aggregation framework using Apex and SOQL, that helps diagnose over 33% of service issues.
    • Used HTML and JavaScript to display 6,000+ logs daily on a custom web app featuring tables, graphs, and filters.
    • Successfully handles 6000 + logs every day in real time with no impact on server performance

Projects

avatar

C++ Ray Tracing Framework

A custom ray tracing framework capable of rendering modelled scenes and is easily extensible.

  • Created a ray tracer featuring sphere/box/mesh intersection, particle systems, Phong illumination, anti-aliasing, reflection, hierarchical modelling, and transformations.
  • Accelerated rendering time by 85% using multi-threading and bounding volumes around meshes and particles.

C++

avatar

Bank Note Forgery Classifier

A neural network trained to classify forged vs real bank notes.

  • Trained a neural network in Python to classify forged banknotes from a UCI ML dataset with 97% accuracy.
  • Implemented k-fold cross validation, gradient descent, and backpropagation using numpy and pandas.

Python

avatar

Spatial.DJ

A web app that allows you to listen to music with friends! Features chat, playlists, and proximity audio.

  • Silver prize winner (top 20 overall project) at Build on Redis 2021 Hackathon (see blog post below!)
  • Designed UI prototype using Figma and implemented responsive layouts using React.js
  • Created Socket.IO events in Express.js to allow real time communication between users.

Express.js, Node.js, React.js, Redis, Socket.IO

avatar

crowd.data

A crowdsourcing platform where you can request data or contribute your own data sets.

  • Placed top 4 out of over 30 submissions for the Dropbase API prize at Hack the North 2020++
  • Integrated DropBase API to instantly upload user files to database from Node.js backend.
  • Designed website components with React to handle form data and file upload.
  • Featured in DropBase's blog post below!

Express.js, Node.js, CockroachDB, DropBase API, React.js

avatar

Constructor

A CLI based board game

  • Engineered a C++ game based on Catan that can be played entirely on the command line.
  • Designed code base using OOP principles and design patterns such as Observer pattern.
  • Debugged various issues using GDB to ensure a high quality final product.

C++

avatar

comp.gg

A League of Legends team composition selector based on each player's best champions and desired composition style.

  • Utilized Riot Games API to fetch each players champion mastery and played games to calculate their most proficient champions
  • Built REST API endpoints with Node.js and Express.js to communicate with third party APIs and send data to client side efficiently.

Express.js, Node.js, Riot API, React.js

avatar

HootGuard

An android app built using Firebase's Machine Learning kit that can help drowsy and distracted drivers stay focused on the road.

  • Produced an android application with Java and XML that detects a driver’s face and predicts whether they are drowsy/distracted, successfully tested on 10+ users.
  • Utilized the Machine Learning kit from Google’s Firebase API to track facial features in real time.

Java, XML, Firebase API, Android Studio

avatar

Magnetic Field Tachometer

A tachometer using Arduinos that detects the speed of nearby rotating magnetic fields

  • Implemented a C++ program to control motors and sensors, and calculate rotations per minute with an accuracy of ±0.05 RPM

C++, Arduino

Michael Le

Updated June 18, 2024