website@MichaelBradley
----------------------
Program: Bachelor of Computer Science
Stream: AI & Machine Learning
University: Carleton (Ottawa)
Major CGPA: 11.68/12 (A+)
Languages: Python, TypeScript, Java, C,
C++, Haskell, SQL, Rust, Bash
Applying for: Co-op term May-August 2024
████████████████████████
████████████████████████
I use a highly customized Arch Linux installation on my desktop and laptop, so I created the repository to help sync the configuration files.
Created a GitHub Pages site to securely deliver private messages to friends and family. When given a link with a decryption key, the appropriate message would be unencrypted, run through a custom minimal Markdown parser, and displayed to the recipient. Along with the message, a deterministically random "snowflake" graphic would be generated with the p5.js library for each unique recipient.
Analyzes the (fictional) heartbeat of the user, and displays the statistics it generates. Completed in a group of 4 for a class project using Qt C++. I personally worked on the heart rate sensor data generation, functionality to save sessions, various bug fixes (including tracking down memory leaks), as well as some documentation in the planning stage before any code was written.
Fills a grid with various types of "trash", and then simulates agents moving through the grid to clean it up. Completed in a group of 3 for a class project using Python. I personally came up with the controller API, implemented the faster "independent" agent controllers, and implemented the UI using the Textual framework (including a variety of helpful debugging and configuration tools).
My most recent co-op job was as a Software Developer at Emids, where I worked on their InQ Telehealth solution. While there, I contributed to a new service (the RAAM One Front Door) throughout its entire development life cycle, adding new pages and features, and optimizing UI components.
Most of my work was done on the front-end in TypeScript using React, which prior to the position I had almost no experience in but picked up so quickly that I became one of the driving forces in enforcing stricter typing and reducing the use of "Any". Despite having never used React before, I became so proficient in it that by the end my superiors informed me that I was one of the best co-ops they’d ever had and nominated me for Carleton University’s Co-op of the Year award.
I also added new features to the back-end after quickly learning the in-house functional language it was written in. During this work I found that working on something that made its way directly to customers gave me an extra drive to improve my work, as every extra little bit that I did might make someone else’s life easier.
May-Aug 2023
After my 8-month co-op term at Ross Video was complete, I was re-hired on a part-time basis to research tracing Python library function call stacks to automatically generate unit tests, as well as updates to the structure of their internal testing framework.
Jan-Mar 2023
At Ross Video I completed an 8-month co-op where I worked as a Test Automation & Software Developer (a DevOps role) on the Enablement Team. I started by using an in-house testing framework to automate web app security tests that needed to be run as part of any product release to ensure that no vulnerabilities had been introduced. By integrating the OWASP ZAP and tenable.io Python APIs with an internally developed testing framework, I made it simpler to ensure that the web apps we were releasing were safe.
I then made a large refactor to the testing framework itself. In the refactor I edited about 15 thousand lines of Python code to standardize the return types of the internal library functions, improve older test cases which were not well-written, and add type-hinting to provide additional information to developers.
Finally, I used Jenkins to create generic CI/CD jobs that could build and test the firmware for any of the products we were working on which help developers be confident that the features they’re introducing are not silently adding bugs. As the feature set of Jenkins did not meet our needs, I became proficient in shell scripting to add any missing features required to create our pipelines.
May-Dec 2022
In 2021, I was awarded the Dean’s Summer Research Internship. I worked under a Carleton Professor in the Graphics, Imaging, and Games Lab examining using circle-packing to create a polycurve enclosing an arbitrary area. This work was done with the goal of being a tool for future GIGL publications in image stylization. After writing this code in Java with the Processing graphics library, I used LaTeX to create a report for the lab. The work was done remotely and independently, and it taught me how to effectively manage my own time and create realistic deadlines.
May-Aug 2021
Progressed from basic implementations of gradient descent on simple linear models to using SciPy functions to optimize kernel-based models on the outputs of unsupervised learning methods like principal component analysis. Analysed neural networks of various types (deep, convolutional, recurrent), but a fuller understanding and implementation will come about as a result of a course I am currently taking dedicated to neural nets.
A+
Analyzed alternate methods of computer intelligence including graph search, Bayesian inference, fuzzy rules-based systems and reinforcement learning. Final project was to create controllers for three garbage-collecting robots operating on a simple grid to collect trash in an optimal manner. I optimized my agents with a heuristic penalizing potential targets based on their distance from the convex hull of the set of trash, ensuring that they would work their way inwards instead of taking a random walk.
A+
Built up knowledge of robotic control techniques in the Webots simulator. Started from basic wheel control, and moved on to simple video analysis, LiDAR, object detection, terrain navigation, and pathfinding in complex environments. Final (group) project was to create controllers for 3 robots that would run in sequence to detect, pick up, and move small objects to specified endpoints.
A+
Created simple interactive programs using C++ and OpenGL, including programming some basic shaders in GLSL. Final project was to create a more involved game including a larger scrolling environment, basic AI enemies, win conditions, and more advanced controls. I was forced to complete my final group project individually after my group-mates dropped the course, and still managed to receive an A.
A+
Learned the mathematical basis of quantum algorithms, and analyzed how some standard algorithms operate on entangled qubits to probabilistically determine the answer in asymptotically better runtime.
A+