I am well versed in an array of areas including power electronics, embedded systems, machine learning/artifical ingelligence, web design (with database development/management), amogst others.
I will seperate projects by general topic. Code that I choose to share is avaliable on my GitHub.
Solar Bench Project
I am the lead electrical engineer for the on campus Innovate, Design, Sustain (IDS) club. We are designing a bench that incorporates a PV system to store energy and allow students on campus to charge their devices outside.
As lead electrical engineer, I lead weekly meeting with general members and do the heavy lifting in terms of system sizing and safety considerations. Benches are expected to be installed on campus Summer 2023.
This project showcases four basic CPU scheduling algorithms, inclduing First Come First Serve, Round Robin, Rate Monotonic, and Earliest Deadline First. User can input up to four tasks, each task having an execution time, period, and release time. The dashboard assumes each task is predictably periodic after the initial release. Check it out here.
The code is modular and dynamically generated, it can be updated to include additional tasks with minimal work. The code is found here
This project involved designing a 32-bit instruction CPU. The CPU follows ARM instruction decoding communicates using a 16-bit address bus (2^16 RAM size). CPU has been testbenched in ModelSim. The entire program was written in Verilog.
Machine Learning and AI
Distributed Sensor Network for Production System Monitoring and Control
This was my capstone project for my B.A.Sc., it involved designing a low power wide area sensor node that had an onboard microphone and machine learning classifier. The sensor node would read in audio data, then the audio is filtered and processed to a particular audio sample where there is a disturbance. The onboard classifier would then make a decision about what was happening in the manufacturing plant. The data is then sent to a PLC where the control system makes a decision based on the data recieved from the node.
Each node uses LoRaWAN networking protocol, the ML classifier is onboard a Raspberry Pi running a Python script for collection and classification. The video above shows the entire system working.
This project involves training a machine learning algorithm to differentiate between three unique Lego brick shapes that vary by colour, orientation, and location within the image. The final algorithm can accept new images, and sort the object in the image into one of the three categories (square, rectangle, circle). The classifier is 96.3% accurate.
The classifier uses an sophisticated edge detection algorithm to generate features to clasify images.
In this project an alpha-beta pruning minimax algorithm is implemented to play against other players or against other AI in the Game of Amazons (Chess spinoff). The AI searches a board state and scores moves based on a simple moves available heuristic. The AI also has a built in validity check for each of the opponents moves to alert the game server if an illegal move is made.
The algorithm was developed to interface with a API from a server hosted on the UBCO campus for the specific course.
This project invloves a forum website that is capable of storing posts, comments, as well as user profiles and admin controls. While simple and not fully styled, the forum is completely functional with an integrated database. Coded in PHP interfacing with a custom made MySQL database.
I am the webmaster of the IEEE student branch and developed the branch’s website, it is a static site coded using Jekyll. The site is complete with homepage, about page, and discussion posts where the IEEE branch makes regular updates. The documentation page has features including author sidebars, category grouping, and easy to develop posts.
Website you are on now, I made it myself with the help of a Jekyll theme to style the page. Site features extensive SEO, a miminal style, and compatability for blogs if I choose to create one.
This project invloves taking a single frequency tone and adding noise to it. The heart of the project is to design a filter that can remove the noise from the audio file and return the single frequency tone.
The filter implementes a Hann window to single out the desired frequency. All programming is done in MATLAB.
Involves a thorough data analysis of a used German car sales marketplace. The purpose of the analysis was to understand trends in the car market, and develop a Tableau dashboard to visually present the data. The analysis was done on Python using Pandas, Seaborn