Engineering Protfolio

A collection of engineering projects spanning ocean science, robotics, control systems, and quantum computing, built from curiosity and a bias toward making.

01

Robotics Embedded C++ PID Control
Microplastic Filtration Robot
Independent Project, Bermuda
+

Purpose

I built a fully autonomous robot from scratch, integrating mechanical design, embedded systems, and sensor-based navigation into a single working system.

Description

The robot drives across a surface using a vacuum to lift sand and microplastics, then sifts the mixture to separate plastic into a collection bin while returning sand to the surface. It is built on a modified chassis with 3D-printed structural parts and controlled by an Arduino Mega managing four motors: two for drive, one for the vacuum, and one for the sifting mechanism. A BNO055 IMU and PID controller keep the robot on a straight, lawn-mower-style path.

Microplastic robot side view Microplastic robot front view

Skills Needed/Learned

CAD/3D Printing PID Control IMU Integration Multi-Board I2C Communication C++ Embedded Systems Wiring and Soldering

Process

I started with a problem I found interesting and worked backwards: figuring out what hardware, skills, and software I would need to solve it. With limited access to parts and tools in Bermuda, I sourced components from Amazon and repurposed household items into a functioning frame. During the school year I 3D-printed structural components requiring precise measurements. Back in Bermuda, I wired and assembled the full system, then tackled the software: coordinating four motors simultaneously, implementing a PID controller with encoder feedback, and integrating IMU-based heading correction into a unified navigation loop.

Results

The core systems performed as designed: the robot navigated in a straight line using PID control. The biggest takeaway was the experience of independently driving a complex, multi-disciplinary project from idea to working prototype under real constraints.

Higher quality motors and encoders would allow for much better PID control. The navigation and coordination concepts explored here are ones I'd like to build on in future, larger-scale robotics projects.

02

Arduino Control Systems Matlab/Simulink
Self-Balancing Mini Motorcycle
Independent Project
+

Purpose

I received an Arduino self-balancing motorcycle kit. Rather than using the code provided in the kit, I decided to design my own so I could learn more about control systems.

Description

This project is a desktop motorcycle running off an Arduino Nano 33 IOT with the Nano motor shield. I used Simulink and Matlab to develop a modified PID controller containing only the proportional and derivative terms. The code takes Euler angles and angular rate from the onboard IMU, runs them through unit conversions and proportional gain blocks, and converts the result to a motor command between 255 and -255. This drives a motor that spins an inertial wheel perpendicular to the motorcycle, applying an equal and opposite torque to the frame to correct for tipping.

Skills Needed/Learned

Matlab Simulink Systems Design Laplace Transform (For modeling) Wiring

The motorcycle balancing itself by applying torque to the inertial wheel.

The future of this project would be to get the bike to balance when running through WiFi. This would give me the versatility to run it anywhere and not be constrained by the length of wire that I have. I would also like to try sizing this up and using more powerful motors.

03

Python Computer Vision OpenCV
Fish Detection Software
BIOS, Bermuda Institute of Ocean Sciences
+

Purpose

I developed this fish detection algorithm during my internship at BIOS to process deep-sea baited camera footage, removing frames without movement to cut down on empty frames the human classifier has to review.

Description

This algorithm uses OpenCV to convert video into successive grayscale frames, then subtracts consecutive frames to produce a map of pixel-level change. After thresholding, blurring, and pooling, it computes the ratio of motion frames to total frames. If this ratio falls within a predetermined range (fine-tuned through testing), the pair is classified as a motion event. The algorithm then determines when each motion event occurred, applies time-based processing to filter noise, joins nearby intervals, and exports the results as a text file and motion clips via moviepy.

Left: raw footage from a camera I deployed. Right: motion map applied to the same footage.

Skills Needed/Learned

Python Computer Vision Moviepy

This program is being used by the people at BIOS to detect fish motion, reducing the manual analysis time by 80%. In the future, I hope to integrate a convolutional neural network to classify the fish in these clips.

04

Python Quantum Mechanics Numerical Methods
Schrodinger Equation Numerical Integrator
Independent Project
+

Purpose

After reading a book on the Schrodinger equation and completing a course on numerical integration, I decided to explore the connection between these two topics.

Description

This project is a Python program that uses the Verlet algorithm to numerically solve the Schrodinger equation for normalizable eigenstates. I created a position vector spanning the target interval using NumPy, then ran two initial conditions through the Verlet algorithm to find the remaining solutions. I then normalized the result and used matplotlib to plot the wave function and probability distribution as a function of position.

Verlet algorithm procedure code Wave function graph Probability distribution graph

Skills Needed/Learned

Quantum Mechanics Differential Equations Linear Algebra Python
GitHub Repository

I may look to find a way to include non-normalizable eigenstates as well as the normalizable ones. Since non-normalizable states propagate in complex spacetime, I will need to improve my Python graphing techniques to handle three or four dimensions.

05

CAD Mechanical Design Ocean Science
Autonomous Niskin Deployment Mechanism
BIOS, Bermuda Institute of Ocean Sciences
+

Purpose

I designed and built an Autonomous Niskin Deployment Mechanism (ANDM) as part of my internship at BIOS. The lead researcher needed an untethered way to collect deep-sea water samples from up to 3500 meters for environmental DNA (eDNA) analysis, avoiding the cost of kilometers of cable. This eDNA data is used to determine which fish were present in a water sample within 48 hours, informing local protection plans.

Description

This design attaches a Niskin bottle to a repurposed BRUVS rig containing a float, carbon fiber rod, acoustic release, and sacrificial weight. The mechanism works by attaching the Niskin's trigger to the carbon fiber rod while allowing the Niskin itself to slide over the rod independently. While falling, the greater downward force on the center rig pins the Niskin in its open position. When the system hits the bottom, the sacrificial weight's tension slackens, reversing the force direction through the rod while the Niskin's force remains downward, triggering water capture.

Full ANDM system design

Test deployment in 6 meters of water. The Niskin stays open during descent, then slams shut on contact with the bottom.

Skills Needed/Learned

Workshop Skills CAD Skills Math/Newtonian Physics

The design shown in the pictures is for a 5-liter Niskin, but I also designed an extra component for the 12-liter Niskin for more collection capability. Both designs are going to be used as the primary way of collecting deep-sea water samples as soon as the next round of funding is approved. An extension to this design would be to incorporate a microcontroller to trigger the closing when the system reaches a predefined depth for added versatility.

06

Electrical Circuit Design Workshop
Solar Car
School Engineering Project
+

Purpose

My school had an old solar car that had been sitting in a garage for 20 years. Our goal was to resurrect it while making a few upgrades.

Description

We changed the batteries and the charging architecture from parallel to series, decreasing the current running through the wire to increase safety and durability while still keeping the discharge in series. We also changed the solar and wall charge controllers to newer tech and removed many unnecessary wires. We replaced the ignition and key slot by combining them into one; finally, we replaced the speedometer and dashboard user interface.

Solar car exterior Updated circuit diagram
Dashboard before Battery bank after modification Dashboard after

The car being driven after restoration.

Skills Needed/Learned

Wiring Reading Circuit Diagrams Workshop Skills Circuit Laws

We got the car to drive and charge properly. Now that this car is built, it can regain its title of a campus artifact. The next round of ambitious students could also consider upgrading the motor to reach higher speeds.

07

CAD Fabrication
Milk Lock
High School Dorm Project
+

Purpose

There was a persistent theft problem in my high school dorm. Milk would disappear from the kitchen in less than a day, so I decided to make a lock for it.

Description

The lid for my specific milk jug did not have any indents or a screw cap, so I could not attach one there. Instead, the lock had to be two separate parts joined together by padlocks with a bar that passed through the handle of the milk jug so it could not be lifted.

Milk lock CAD drawing

The lock in action.

08

Fabrication
Homemade Barbells
High School Workshop
+

Purpose

My high school did not have an EZ-bar, which I like for training triceps and biceps. Rather than buying one, I decided to make one.

Description

I bought rebar online for its low cost, grip texture, and malleability, then used a vise to bend it into equally segmented parts at a 30-degree angle. I attached barbell collars to the ends using 3D-printed adapters and metal pipe sections.

Homemade EZ-bar

Since I have graduated from my high school, I donated this barbell to one of the students in my dorm. He actively uses this barbell in the gym to this day.

Research Paper

Assessing the Viability of Qiskit and IBM Quantum to Solve QUBO Problems with Publicly Available Quantum Computers

This paper explores the aircraft loading optimization problem, a QUBO problem that can benefit from quantum speedup via quantum annealing. Accessible quantum hardware was tested using quantum-classical hybrid solvers through Qiskit. Local quantum simulation failed at scale; IBM Quantum runtimes proved incompatible with Qiskit optimization packages, leaving medium-size QUBO problems unsolvable by open-source quantum computing tools.

Read the Paper