A collection of my experience.
I am a software engineer working at Microsoft in the Fort Lauderdale area. I graduated in 2020 from U of Waterloo, Canada with a bachelors of Computer Engineering. You can get in touch with me here.
I have had the opportunity to work at 6 great companies and focus on platform, mobile and fullstack. Check out my resume for more information!
AccuTrack - Microsoft Imagine Cup North American Finalist
AccuTrack is an intelligent IOT system that can track the way a blue collar worker moves, while they are working, and determine their risk of ergonomic Injury. We have developed custom built flex sensors that bend with the way a persons limbs moves. These sensors can be attached to clothing at the elbows and knees to track the angles of these limbs. It transmits this data to the cloud in order to recognize risk of repetitive strain injury, overworking, and poor posture. We use Azure IOT to coordinate all of our hardware sensors. The backend includes Azure SQL to save the user data and Azure App Service with a Machine Learning pipline to process the information to provide ergonomic insights. The web portal is currently live at accutrack.me.
- Tensorflow/ML
- Azure IOT
- Azure App Service
- Azure Notification Hub
- Python
- Android
- Electrical Circuits
SeeMe - Microsoft Imagine Cup Canadian Finalist
The SeeMe project uses hardware sensors, Azure, and Xamarin to track elderly in their home to determine if there might be a problem. It uses custom hardware
sensors in order to track the location of the person in the house and sends this information to a Python Flask app running in Azure. The app saves this data
to an Azure SQL DB including the room entered, the time entered at, and how long they stay there. The Python app regularly uses this information to retrain a
Tensorflow model which predicts how long a person will stay in a room. If they stay too long, the system sends an alert to the caretakers mobile phone saying that
there might be a problem. The system also finds concerning movement that my be early onset of dementia, insomnia, and other conditions.
A more descriptive explination can be found in the competition submission document here
- Tensorflow/ML
- Azure
- Python
- C++
- Electrical Circuits
- Hardware Design
Genomify - GenomeLink Hackathon (2nd Place)
Genomify is a user friendly mobile app that leverages the GenomeLink API to make learning about your genome more interesting.
GenomeLink API allows for users to upload their genome data and exposes a variety of information about it including likelihood of diabetes,
endurance, etc. My app 'Genomify' allows users to take a picture of their surroundings which is then processed by Google Vision API. The
objects of interest that Google Vision finds is then related to your genome. For instance, taking a picture of a treadmill would show your genome
information on endurance, a picture of a cake shows your likelihood of diabetes, etc.
- Google Vision
- Android
- Python
- GenomeLink API
EzBot Microcontroller
EzBot is a microcontroller and software package I developed over the course of 3 years. EzBot has pins to connect multiple servos, lights, speakers and sensors. Without any programming, users can use the EzBot mobile app to wirelessly control all of the hardware they connected to the board. This is done using the built-in drag-n-drop layout creator within the app. The EzBot app also hosts a server that allows the phone to become part of the robot and connect to another phone or computer on the WiFi. A python and C# library was also developed for more advanced control of the EzBot.
- Electrical Circuits
- Hardware Design
- Soldering
- Kicad
- Python
- C#
- Android
- Bluetooth API
- Local WiFi Communication
EzBot powered robotic arm
This 6 degree-of-freedom robotic arm with motorized wheels, distance sensor, and moving camera jig is fully controlled by an EzBot. The EzBot wirelessly connects to the computer over WiFi using the phone as a middle-man communicator. Another EzBot is connected to 3 potentiometers which track the movement of a model arm and simulate it on the robot. This project was made to test the capabilities of EzBot. In fact, the robot required under 150 lines of code!
- Electrical Circuits
- Hardware Design
- Python
- UDP
Automation Anywhere Hackathon
The Automation Anywhere hack was created to help deliveries go more smoothly during Covid-19. It worked by creating a unique shipping code for every package. When a package was deliveried, the driver would take a picture of the package, then send it as an email to the delivery company. The email would then be parsed on the recieving end to extract the delivery code, as well as the delivery location from the image metadata. It would make sure this delivery location was correct according to the customer order spreadsheet. If its correct, it would send this image to the customer saying their order shipment was complete. If not, it would send an email to the delivery driver with an alert that the delivery was not done correctly. All of this would be updated live on the customer orders spreadsheet.
- OCR
- Python
- Automation Anywhere
ENVR - Velocity Fund Finalist
ENVR is a small device that attaches to a VR headset and pairs through Bluetooth to the phone within the VR.
It contains vibration motors, fans, and a mist generator in order to replicate the Virtual Reality experience
that you are in. We have created demos using popular 360 videos as well as an API for developers. ENVR is the
product of a startup company I am making with a co-founder.
Velocity wrote an article about us here!
- Unity
- C#
- Solidworks
- Electronic Circuits
- NRF51 Series
- Arduino Pro Mini
- HC-06
- Soldering
For the Genesys Hackathon we decided to create an application that performs facial and emotion tracking for client-representitive video calls. The benefit of this application was to ensure that the customer was not confused or angry during a call, track customer information (age, gender), and notify the supervisor if the customer was getting upset. We used Mircosoft's Face/Emotion API and fed it screenshots from the video call as Genesys did not support 3rd party video monitoring. The emotion/facial tracking results were then sent to Firebase which was pulled from a web app that displayed all of the information in tables and graphs.
- Genesys API
- Emotion API
- Face API
- Firebase
- C#
Roambot was a project I completed for Local Hack Day at York University in 8 hours. The robot was controlled by a person's movement which were detected by an Xbox Kinect. The computer sent the Kinect's command using UDP to an Android phone that was sitting on the robot. The Android then sent the same instruction over Bluetooth to the Arduino which controlled the motors to drive while also streaming video of what the robot sees back to the computer (video was 3rd party). Worked independently.
- Kinect API
- Arduino
- Bluetooth API (C# & Android Java)
- UDP Protocol
- C#
- Java
- C++
- Electrical Circuits
TD Strip - Finhacks
(1st Place)
The TD Strip was a project developed for the TD - Cisco hackathon which focused on solutions that helped clients with financial decisions. Users used our chatbot to develop a savings goal which was then displayed on an Apple Smartwatch, Website and the hardware "Strip" with LEDs. Tapping the Android phone to the NFC chip on the Strip would prompt the Strip to blink a pattern and verbally say your current savings balance using the phone inside of it. When reaching your goal, the Strip verbally congratulates and displays a unique LED pattern. Worked with 5 other members. Focused on hardware, server-hardware communication, text to speech.
- Arduino
- Esp8266 WiFi Chip
- Firebase
- Text-to-Speech API
- NFC API
- NFC Tag
- UDP
- Java
- C++
- Electrical Circuitry
I created Dispensebot at the 2017 Dementia Hacks hosted in Toronto's MaRS center with three other team members. The purpose of the project was to automate the process of providing medicine to those with dementia that live in group homes. The hole in the front cover is where the phone sat and acted as an interactive display that showed the amount of pills and any information about a patient. The pill dispenser connected online and provided a notification on the screen when it was time to dispense somebody's pill. We made a web portal for doctors to use in order to update the medication remotely which would be updated in the dispensebot real-time.
- Arduino
- Android Bluetooth API
- UDP Protocol
- Java
- C++
- Electrical Circuits
TenderTool
TenderTool is a mobile application that allows building managers and contractors to safely and efficiently fill work orders. A building manager creates a tender (task) which includes images, dimensions, task required and contractors that they would like to work with. Contractors can then see these tasks and provide a bid. This application is being developed in conjunction with a building manager in order to improve the current workflow of handling tenders as well as to conform to the amendments with the Ontario Condominium Act.
- Java
- XML
- Firebase
- AsyncTask
- Fragment Manager
Crypt Raider
Crypt Raider is an Android app that I developed based on my favourite flash game of the same name. The point of the game is to get the mummy to put the orbs into the teleportation device to escape. There are many obstacles in the way including exploding TNT, quicksand, locks with keys, and an explorer trying to catch you. This app was developed completely from scratch other then a few assets and basic libraries (gameview control, vibration lib, page scroll, etc) using B4a - a Visual Basics to Java translator.
- B4A
- Gameview
- XML
- Photoshop
- Skill: Animation
- Skill: Runtime efficiency
Crypt Raider Level Creator
In order to be able to create levels for the Crypt Raider I developed a python application that allowed for a drag and drop interface. The program then exported a file that would be read by the app.
- Python
- Pygames
Speech to Clipboard
Speech to Clipboard performs multiple actions using speech recognition. Swiping up from the home menu would launch the app which would immediately start listening. Users are able to copy their dictation to the phone clipboard, dictate text from the clipboard, perform arithmatics, open apps, search online/Google Play/Youtube, etc. I get many emails from people that have suffered a stroke or are visually impaired that mention how well this app has helped them use their phone :)
- Android
- Speech Recognition
- Clipboard Access API
- Widget
Quickstart App
Quickstart is an application that I developed in order to make accessing applications easier and personalized. Users were able to create a custom notification including editing the text size/colour, background colour and icon. By pressing the notification, users could launch an application or open a folder which contained a group of apps.
- Android
- Notifications API
- XML
- Widget
- Service
Touchless+
Touchless+ is an application that turns on your phone by hovering your hand over it or swiping above it. It runs a service in the background that watches for a change in the proximity sensor and turns on the phone screen. The app displays a background relevant to the time of day as well as the time, date and battery status/charge.
- Android
- Sensor
- Wake_Locks
- Sticky Service
Passcode door opener
During highschool I frequently visited the school's computer engineering lab, but usually found it locked. As my final project, I decided to fix that by installing a touchpad on the outside of the door that allowed only myself and a few close friends to enter the lab with a code. The keypad connected to the Arduino which verified the code and engaged a servo to pull the door handle up and play a song. We installed a camera to see who tried to enter the combination incorrectly and generated an image using a Python program. We found janitors, teachers, and the occasional frosh trying to crack the code!
- Python
- Arduino
- Webcam Lib
Large Robotic Arm
This robotic arm project was probably the largest physical robot I have ever created. It reached 1.5m long fully extended and 1 m high! When I made this robot I only knew how to program 1 platform, the Boe Bot, which supported only 2 servos. This prompted me to created a switch system for the two servos that allowed me to control a lot more motors in the project. The robotic arm has 4 DOF and rotated on the spot because of the mechanism I implemented for steering.
- Boe Bot
- Electrical Circuitry
- Hardware Design
Bluetooth Traffic Light
The traffic light is able to connect through Bluetooth to an Android phone. The user is able to control the light combination with toggle buttons in the app. Inside of the traffic light was a AC-to-5V-DC 1A phone charger, an Arduino Pro Mini with Bluetooth, and 3 relays for each light.
- Java
- Arduino
- HC-06 Module