🟢 Open to Co-op Opportunities — Spring/Summer 2027 Open to Co-op — Summer 2027

Hi, I'm Jonathan.

I'm a 3rd-year Electrical Engineering student at Carleton University.

I'm passionate about hardware, wireless systems, robotics and artificial intelligence.

A bit about myself

I grew up in Ottawa with a longstanding interest in how things work at a physical and mechanical level. That curiosity shapes how I approach engineering throughout my studies and personal projects. I like taking an idea from a rough sketch to something that actually works, testing it until it breaks or reaches its limit, figuring out why, and then fixing it properly. I've picked up a broad set of practical skills that way and constantly try to gain more experience in whatever ways I can.

Outside of school, I work as a lifeguard, swim instructor, and first aid instructor with the City of Ottawa. I have coached and competed nationally in competitive speed skating, which has helped me build up a good set of interpersonal and self-development skills through both the work and sport avenues. I also have an interest in personal finance and economics, which has grown into a broader curiosity about practical AI and where it genuinely fits into engineering and finance, rather than the superficial hype around it.

Check out my builds!

A growing list of projects and challenges I have tackled - click Learn More → on any card for the full story.

Modular Bicycle Lighting System
PROJ-01

Modular Bicycle Lighting System

Designed and built a weatherproof RGBW lighting system for bicycles using a custom PCB coupled with Arduino and Adafruit components.

KiCadPCB DesignC++ / ArduinoCAD + 3D Print
Learn More →
Electric Go-Kart
PROJ-02

Electric Go-Kart

Built a 1.6kW electric go-kart from a hand-built steel frame to a complete electrical power system.

Three-Phase SystemsMotor ControlMetal WorkingFabrication
Learn More →
Power distribution board layout for the C-130 drone
PROJ-03

Avionics & Power Distribution PCB for RC Plane

Building the flight controller, power system and wireless control for an RC drone team project.

Drone ControlCommunicationsSignal ProcessingComponent SelectionRF
Learn More →
Orange Pi Zero 3 on My Desk
PROJ-04

Full-Stack AI Secretary For Enhanced Personal Decision Making

Set up an AI-powered personal secretary that manages my time by merging different sources and my investment portfolio into one prioritized daily brief; displaying core insights on a webpage and an ESP32 controlled LED wall

API'sLinux & CLISQLiteESP32Embedded Systems
Learn More →
MOSFET Switched Off-Road System
PROJ-05

MOSFET Switched Off-Road System

Integrated high-power LED lighting into a vehicle using MOSFET switching. Conducted a full thermal analysis of the system to ensure safety

MOSFETsPower ElectronicsHeat DissipationCircuit DesignAutomotive Electronics
Learn More →

Skills

Design

  • Altium Designer
  • KiCad
  • Autodesk Fusion CAD
  • Component Selection
  • Breadboarding

Programming

  • C / C++
  • Verilog HDL
  • Python
  • Jupyter Notebook
  • Java
  • Git Version Control
  • Node.js

Platforms, Testing & Simulation

  • Arduino
  • Raspberry & Orange Pi (Linux)
  • STM & ESP32
  • FPGAs & AMD Vivado
  • Oscilloscope / Multimeter

Industries that interest me

Cutting-edge robotics

Cutting-Edge Robotics

Legged and humanoid robots closing the gap between lab demos and real-world deployment. I'm most interested in advancements with actuator technology and integrations with machine learning.

RF and space communications

Wireless & Space Communications

6G and IoT requirements are pushing wireless communication to its limits. I have a fascination for satellite constellations and am keen to understand antenna designs and endless uses for wireless communication.

AI and AGI datacenter

Machine Learning & AGI

Looking past the buzzwords, I am excited to see the real use cases for AI systems within certain sectors like transport, industry, chip design and global finance. I am trying to embrace tools as they become available and learn how they can become powerful personal and corporate systems.

Contact

Let's connect.

I'm currently looking for a 2027 Summer Co-op placement. Always happy to talk about a project, a role, or just electronics and technology in general.

← Back to projects
PROJ-01

Modular Bicycle Lighting System

2022Timeline
Solo ProjectRole

The Idea

I created a PCB layout for a personal project of mine. The aim was to build a novel, programmable, and controllable RGBW lighting system for my bicycle and electric scooter. The intention was to potentially commercialize the final product, since I felt there weren't any options on the market providing the same functionality.

Prototyping the Idea

I initially started prototyping with raw wires and generic component boxes. Over a few iterations, I added and removed certain additional functionality, like chimes and signal clicks, along the way once I decided they were unnecessary.

prototype v1
Fig. 1 — Layout V1, first prototype
prototype v2
Fig. 2 — Layout V2, compact circuit

Designing the PCB

I designed the PCB in EasyEDA to support the control module (an Arduino Nano) and have all the required connections in functional locations for final assembly. This was based on the circuit layout I developed during the prototyping phase. The process involved learning how to use the PCB design interface and researching best practices for vias and hole tolerances for various components. It was useful to cross-reference by measuring pin diameters with a precision caliper at home to make sure no major mistakes were being made.

pcb raw
Fig. 3 — Raw PCB as received
pcb populated
Fig. 4 — Components being added

Assembly & Testing

Before combining everything with the 3D printed casings, I ran the assembly through a couple of testing phases. The first pass was missing the physical switches, which I simulated with keystrokes on the Arduino-connected laptop while programming. That stage also included soldering the Adafruit NeoPixel strip boards onto the outer portion of the pixel design. The final circuit shown below includes the real switches and was tested exactly as it would be used on the bike.

final circuit
Fig. 5 — Final circuit assembly on PCB

Hardware & Mounting

Next, I needed to make sure the system was weatherproof for rainy days and outdoor storage. I designed three different casing models in CAD and 3D printed them for front, rear, and a compact version aimed at scooters or racing bikes. The circular case uses the same PCB as the linear one, though the connections for the side NeoPixel strips are simply left unused on that version.

The design was originally meant to be easy to construct and produce, simple and scalable enough to sell at a reasonably competitive price. I never ended up trying to sell any, mainly due to cost and manufacturing time, even though the final design came close to being a finished product.

casings
Fig. 6 — Different casing designs (front, rear, compact)

Summary and Takeaways

Overall, I really enjoyed working on this project since it gave me immediate, practical benefits: having programmable lighting while biking at night. I was able to take the idea from concept to a final product and made significant improvements in durability and reliability along the way. I also enjoyed working with online development environments and making all of the decisions (and mistakes) that came with PCB and CAD design as a first-time solo designer.

← Back to projects
PROJ-05

MOSFET Switched Off-Road System

2025Timeline
Solo ProjectRole

The Problem

I wanted to retrofit some high-powered LED lights onto the roof rack of my vehicle. I researched ways to connect this system to an existing Arduino I already had installed in my dash for modular projects like this. I settled on using MOSFET components to act as quick-response relays for flash patterns, connecting the system to a switched fusebox source through the MOSFETs. The whole system is button-controlled via the Arduino, since using a microcontroller let me build more complex rapid flash patterns based on button presses and switch sequences.

Initial Design

I first designed a rough draft of the circuit on paper based on my research into MOSFETs and Arduino pin control. This served as a template for prototyping the circuit.

hand sketch
Fig. 1 — Hand-drawn sketch of wiring and plan

Prototyping & Testing

I assembled the design on a breadboard and tested it with a modular power supply to make sure there wouldn't be any issues with overloading or heat dissipation once it was fully installed on the car.

installed lights
Fig. 2 — Final install, static yellow mode

This project still serves me during the summer months, and I've since tweaked the design to be more easily removable with modular weatherproof connectors that I soldered onto both the car wiring outputs and the roof rack connections.

Summary and Takeaways

With this project I gained valuable hands-on experience designing and building a practical electronics system for my car. It involved learning to design a control system using an Arduino to manage the high-power LED lights and create custom flash patterns. I developed skills in power electronics and interfacing by selecting, testing, and implementing MOSFETs, which turned out to be the best option for my goals. A major takeaway was around prototyping and quality assurance: I started with a rough sketch, built it on a breadboard, and tested it extensively to make sure the components wouldn't overheat or fail in a real-world automotive setting, with internal vehicle temperatures ranging anywhere from -35°C to 40°C in worst-case scenarios. I also learned how to handle automotive electrical systems by safely wiring the finished circuit into the vehicle's existing fusebox with the proper fuses and load resistors.

← Back to projects
PROJ-02

Electric Go-Kart

2019Timeline
2-Person TeamRole

The Idea

An earlier project of mine was inspired by Formula One, when a friend and I wanted to take on the challenge of building a soapbox racing kart just for fun. It quickly evolved into a fully-fledged 1.6kW powered metal machine and taught me a lot about three-phase motor control and manufacturing.

Frame

The frame was initially planned out using wood beams cut to size, to check the size and maneuverability of a simple rectangular box with bracing. Once the design was proven to work conceptually, the whole kart was cut from rounded square box-section steel with sheet metal for the flooring. With limited tooling, this proved to be a real challenge even with careful measurement. You can see the repurposed kid's bike wheel below, standing in as a makeshift steering wheel while we tested rolling resistance and steering angles.

frame assembly
Fig. 1 — Mostly assembled frame (with a repurposed kid's bike wheel standing in as the steering wheel during testing)

Power System & Electronics

The power system consisted of four 12V lead-acid batteries, generally used for emergency lighting systems, wired in series. These provided the necessary voltage to the 1.6kW-rated motor controller. The motor is normally used for large garage door mechanisms or electric outboard motors for boats, but the mounting plate and torque ratings made it a good fit for this application. The gear ratio was chosen for low-speed pickup and rougher terrain use, since it multiplied the torque almost tenfold. That meant the real challenge became keeping the motor running near its max RPM and current rating for any mid to high-speed cruising at that gear ratio, and we ran into plenty of issues with chain tensioning and brackets bending under heavy acceleration.

battery pack
Fig. 2 — Assembled battery pack
motor assembly
Fig. 3 — Motor assembly

I ended up having to research and swap out the actuator pedal for the motor controller so it had a larger analog travel range. The original one was nearly impossible to map into smooth RPM increase, even with a lot of practice, and since there was no way to reprogram the controller itself, replacing the pedal was the easiest fix for the jerky acceleration.

Final Result

With the electronic controls in place and some torque and power delivery optimizations, my friend managed to hit 49 km/h in a straight-line test on paved road, not bad for a build carrying a 200+ lb driver. Under more regular use, like cruising around neighborhoods and parks, the 15 Ah battery pack gave us 3 to 5 hours of stop-and-go runtime. We looked into adding regenerative braking to recharge the battery as a generator, but it quickly became clear the extra three-phase battery control hardware needed would blow past our budget.

final gokart
Fig. 4 — Final construction

Summary and Takeaways

The Go-Kart project was one of the first times I combined my interest in mechanical design and fabrication with my fascination for electronics and electrical systems. It took a lot of labour to put together, but it was well worth it. Troubleshooting the throttle sensitivity and power delivery issues taught me a lot about trial-and-error problem solving, and it's honestly the project that pointed me toward electrical engineering in the first place.

← Back to projects
PROJ-03

Avionics & Power Distribution PCB for RC Plane

OngoingTimeline
Electronics TeamRole

The Project

I lead the power distribution hardware and flight-controller electronics within our three-person electronics subteam, part of a larger project team of around six or seven people building an RC airplane inspired by the C-130 Globemaster. A multi-engine airframe is hard on its electronics: big motor current draws, voltage spikes when the motor controllers switch, and enough electrical noise to mess with GPS and other sensors if the power system isn't handled carefully. So before touching the flight computer, my first job was a Power Distribution Board (PDB) that takes raw 4S battery power and puts out clean, separate rails for everything downstream.

Power Distribution

The board splits the battery into four rails:

  • Raw power straight to the motor controllers
  • 12V rail for video gear and other extras
  • 5V rail for the flight controller, servos, and radio receiver
  • 3.3V rail just for the IMU and other sensitive sensors.
Power distribution board schematic: 12V, 5V, and 3.3V regulator stages
Fig. 1 — The regulator schematic: three rails plus the battery input

I designed and laid out the board in Altium Designer, my second real PCB overall but my first time using Altium. Before sending it off to be made, I had a teammate review it, which turned up a few real problems worth fixing now: the 12V regulator is a linear part (it just burns off the extra voltage as heat instead of stepping it down efficiently), so it can't hold up once the battery sags under heavy motor load, there's nothing yet to absorb the voltage spikes the motor controllers throw off, and we also figured it would be more convenient to mount detachable XT30 or 60 connectors instead of the big ESC solder pads.

3D render of the power distribution board
Fig. 2 — The board, rendered in Altium

What's Changing for V2

Here's what I aim to fix with the next design: the 12V regulator swaps from that linear part to a small buck converter, so it stays regulated even as the battery sags under load and wastes a lot less as heat. I'm adding a diode and a bulk capacitor across the battery input to catch the voltage spikes the motor controllers throw off before they reach anything downstream, plus small decoupling caps right at each regulator's input pins to keep switching noise contained near the source instead of spreading across the board. The output capacitors on that rail are also getting bumped up to a higher voltage rating to have more margin. And the high-current paths are moving from routed traces to solid copper pours tied together with vias, which spreads the current and the heat out more evenly.

Flight Computer

The flight computer is built around an STM32, which will handle the motor and servo outputs, read the IMU and GPS, and run the control logic for autonomous flight. The toolchain is up and running, and I've got the 9-axis IMU wired in and being tested on the bench; next is bringing in the GPS module and building out the actual flight-control code.

STM32 dev board wired to a BNO085 9-axis IMU on a breadboard
Fig. 3 — Bench-testing the STM32 against the IMU before it goes on the plane

Radio Link

I set up and tested the drone's wireless link based on the newest ExpressLRS communication protocol. I chose the RadioMaster Pocket transmitter talking to a RadioMaster RP4TD receiver over ELRS. It's bound, holding a stable connection, and reading all 16 control channels cleanly. Left to do: mapping which stick and switch drives which channel, soldering permanent wiring, and connecting the channels to actual servo and motor control.

Testing the RadioMaster Pocket transmitter and RP4TD receiver link
Fig. 4 — Testing the RadioMaster Pocket / RP4TD radio link

Where It Stands

The power board is close to being sent out for fabrication, pending one more review from a teammate. The flight computer toolchain and the radio link are both working; the sensors and motor/servo control are next. I'm hoping to share the flight-controller firmware on GitHub once there's something worth publishing.

← Back to projects
PROJ-04

Full-Stack AI Secretary For Enhanced Personal Decision Making

OngoingTimeline
Solo ProjectRole

The Idea

I have always wanted something closer to an actual personal secretary than a chatbot: a system that understands what's actually on my plate and helps me manage it, not just answer questions when I ask. That means real calendar awareness, real deadline pressure, and a sense of priority: what's genuinely urgent today versus what can wait. A side benefit is that I'm not re-explaining my own schedule and context to some AI tool every time I open a new chat. The system already knows.

I built a backend that pulls my Gmail, Google Calendar, investment holdings, and school deadlines into one place, and turns that into a single prioritized brief every day. The part that actually makes it feel like a secretary rather than a dashboard is memory: it tracks what it's already shown me, what I've dealt with, and what's still open, so it only surfaces what's new or genuinely still urgent.

V1: Hermes

The first version installed and configured Hermes, a self-hosted AI agent that operates through existing LLM providers' API keys. I set up its plugins and markdown configuration files around the tasks I actually wanted automated day to day: daily weather updates on a cron job, a Telegram-delivered investment summary pulling from Yahoo Finance, and turning saved Instagram Reels into structured notes in my Obsidian vault. It worked, but I was limited to whatever the platform let me configure. I was never able to get it feeling truly "smart," even after an expensive API upgrade to Anthropic's Opus 5 model. No real state, no real prioritization logic, no actual UI. The ceiling was the architecture, not the model, and that's what pushed me to rebuild it as V2.

hermes telegram bot demo
Fig. 1 — The Hermes/Telegram setup from V1, in action

V2: The Rebuild

V2 is a custom system: a Node.js/Express backend on an Orange Pi Zero 3 (4GB) at home, a React dashboard, and, as of the newest round, a physical LED wall display in my room.

A note on how this was built: I designed and iterated the system myself: the architecture, the data sources, how prioritization should work, the hardware. But with the complexity and scope of this project, I went all in with Claude Code and Codex to actually write the functional software from my specs. My job was direction, decisions, and testing; theirs was the code. Worth saying plainly rather than implying otherwise, since I'm still very early in learning to code this type of system myself.

Stack: Node.js 22, Express, and SQLite. I migrated off a flat JSON file once it stopped scaling to the complexity of the different data sources and cache requirements. It pulls from Gmail and Calendar over Google's OAuth, live Yahoo Finance prices for my holdings, and D2L Brightspace deadlines via an .ics feed. The frontend is React 18 + Vite across six pages: Day, Week, Tasks, Portfolio, Stats, and Wall. DeepSeek handles the AI backbone by default, with Claude available as a swappable provider. DeepSeek's developer API won out mainly on cost, with consideration for the data-security tradeoffs of that choice for now.

orange pi zero 3 close-up
Fig. 2 — The Orange Pi Zero 3 the backend actually runs on

What's Working

Calendar and Gmail are fully connected, merging every calendar in my Google account and my university's Brightspace feed into one view.

week dashboard page
Fig. 3 — Week page: busy score for the next 7 days, pulled straight from my calendar

Portfolio tracking pulls real prices for 40+ holdings, synced from my own Obsidian notes rather than typed in by hand. I was inspired by the GitHub commit tracking screen and built a portfolio performance tracker with a similar feel. It tracks day moves, streaks, and other stats which was a lot of fun to see working at first.

stats dashboard page
Fig. 4 — Stats page: daily portfolio moves and the year in numbers

There's also a "Worth a look" feature that researches and surfaces real stock candidates from live market data and my actual sector allocation, built so it can't invent a pitch it doesn't have data for.

worth a look stock idea card
Fig. 5 — "Worth a look": a real stock idea, sourced from live market data

A couple of things didn't survive the first round of real-world use, and I think they're worth mentioning: portfolio prices used to live in a manually updated config file with zero connection to anything real. I've since wired it to pull live from my Obsidian vault instead, so it can't quietly go stale. Market news started out as raw scraped search queries; I migrated it to a real fetch so it's never faking a headline. Neither was a huge fix, but they're the difference between something that looks like a demo and something I'd actually trust to run unattended and make real decisions with.

LED Panel Display

The newest piece, and the one that turns this from a browser project into something physical: an ESP32-S3 driving three HUB75 LED matrix panels (192×32 px total) that I'm mounting as a wall display in my room, so I don't need to open a tab to see my brief. It polls the backend over WiFi on two separate schedules: a slower one for data and summaries prepared and cached on the Pi by DeepSeek and my sorting algorithms (portfolio, calendar, market moves), and a fast-refresh one just for live control, so pinning a screen or pushing a notification from the dashboard reaches the wall in near real time instead of waiting out the slow data cycle.

Firmware is fully written for the dedicated ESP32-S3, including a parallel simulation build that prints the same logic to a serial monitor so I could validate the WiFi and rendering logic before ever touching the physical panels. Physical bring-up, actually wired up and running on the real hardware, is the piece I'm still confirming end to end.

wall control page
Fig. 6 — The live control page: enable/pin screens and push notifications straight to the hardware

Looking Ahead

So far I built an AI-powered personal secretary that manages my time by merging Gmail, Calendar, and investment data into actionable info on a self-hosted Orange Pi, with persistent memory and a physical LED wall display for real-time updates. I drove the architecture and design decisions; Claude Code and Codex handled the implementation. My next ambition is adding a conversational "ask it anything" layer on top and continuing to expand the technical features, reliability and eventually maybe even running my own local LLM to save on API costs and increase security.