Electrical Engineering Student

Ammar Arain

Hey! I am a 4th year Electrical Engineering student at UBC. I have compiled a list below of some of the projects I enjoyed working on the most. They highlight my interests in RTL design, design verification, firmware and PCB design.

I hope you enjoy browsing through my projects, if you have any questions feel free to send me a message on LinkedIn :)

Ammar Arain
Scroll

Work

Rivian Rivian & VW Tech
Embedded Software Engineer Intern

Developed real-time C-based diagnostic systems for 12V batteries across Rivian, Audi, and VW platforms; optimized fault detection algorithms to meet rigorous automotive safety standards and extend battery longevity.

Replaced legacy software by engineering a Python-based automation framework and custom GUI for thermal chamber hardware control, automating battery characterization and ensuring consistent data logging via DAQ.

Led on-site firmware validation for VW/Audi labcars in California via UDE and CANalyzer.

Refactored LV diagnostics firmware to gain finer control over fault conditions, reducing code complexity by 43%.

Created unit, SiL and HiL tests in C++ and Python for vehicle firmware, increasing test coverage by 82%, reducing regressions and improving software reliability.

Telebotics Telebotics
Autonomous Vehicle Systems Engineer Intern

Developed safety-critical STM32F407 firmware in C using FreeRTOS with concurrent task architecture (communications, safety watchdog, actuator control) for an autonomous vehicle actuation controller

Implemented MicroROS on STM32 over UART transport, enabling bidirectional ROS2 topic communication with a Jetson Orin Nano host computer

Alvia Systems Alvia Systems
R&D Electrical Engineer Intern

Developed a low-cost autonomous VTOL aircraft using an STM32F405-based flight controller and Ardupilot firmware, capable of remote operations for fire detection.

Engineered a 2-layer Altium PCB optimized for high-speed SPI, utilizing a continuous bottom ground plane to ensure signal integrity and increase telemetry packet success rate by 96%.

Integrated flight controller, power distribution board, GPS, radio receiver and other electronic modules, ensuring reliable communication and control of the VTOL platform.

Designed and 3D printed custom mounting brackets in SolidWorks, ensuring secure mechanical integration of the flight controller and ESCs while optimizing internal layout.

Personal Projects

08 projects
2026
SystemVerilog RTL Design Test Benches FPGA Development

ARC4 Stream Cipher Cracker

I designed and implemented, in SystemVerilog, a parallel brute-force key-cracking engine using two simultaneous decryption cores, each searching a disjoint half of the 24-bit key space, achieving roughly 2x speedup over a single core-implementation.

The project involved building the complete ARC4 algorithm from scratch, including state initialization, key-scheduling and pseudo-random byte generation across modular hardware components communicating via a ready/enable handshake protocol. The on-chip M10K SRAM blocks were used extensively for cipher state and message storage, and correctness was verified through RTL and post-synthesis simulation testbenches. The design was also deployed on a physical DE1-SoC FPGA board, where correct decryption was verified by inspecting live memory contents and decoded key values on the seven-segment displays.

2026
PCB Design Altium PCB Assembly Flight Controller

High-Density H743 Flight Controller PCB Design

I designed this 4-layer PCB flight controller using STM32H743 to support a 13-servo payload with a custom power architecture using four independent buck convertors for redundancy and to isolate noise.

This board features built in IMU, barometer, analog OSD video chip, CAN tranceiver, SPI flash memory and multiple connectors/headerpins for external SPI, UART and CAN sensors. I have also included a built in option to enable a 120 ohm terminator resistor for the CAN bus. To ensure reliability, I added in ESD protection on both the USB and CAN connectors as well as overvoltage and reverse polarity protection on the power pads. As a way to future proof the design for my needs, I added both analog and digital video OSD. High-speed traces were routed as short as physically possible and are surrounded by a ground plane to protect against noise.

This project demonstrates my ability to bridge the gap between custom PCB layout and low-level firmware integration.

2025
ArduinoBLE ESP32 ML/AI Computer Vision Control Systems

Self-Balancing Robot

I created this self-balancing robot along with two other members in my group. The base requirements were to have a robot balance by itself on 2 wheels and the ability to control it wirelessly using an Arduino Nano BLE.

By implementing and tuning a PID controller in C++ and programming a remote control system in Python communicating via Bluetooth, this requirement was met. I also trained an object detection ML model uploaded to an ESP32 WROVER to detect objects.

Extra features: Matrix LEDs via ATMega328p over I²C · UDP packets from Ableton to make the robot dance to music · Ears that move toward detected signs.

2024
STM32 Circuit Design Python C++ SPI

Wireless Remote

I designed this remote to control a Python program I made, as well as output PWM on the receiver. Both the receiver and remote are powered through USB-C.

Wireless communication is done through an NRF24L01 module, programmed using STM32 Blue Pill. The remote collects analog voltage inputs from joysticks and sends RF signals to the receiver, which interprets them and outputs 3 PWM pins.

2024
C Python Microcontrollers RF Circuit Design

Metal Detecting RC Robot

In a group of 6, we designed and built a metal detecting remote controlled robot. The robot could be controlled from the remote, detect metal, send metal strength back to the remote and pick up metal with an electromagnet.

I focused on assembling the robot, making the circuits and programming the communication between the robot and remote using JDY-40 radio transceivers. The remote used ATMega 328p and the robot used EFM8, both programmed in C.

2024
C Python Microcontrollers Assembly Language

Reflow Oven Controller

In a group of 6, we designed and built a reflow oven controller used to solder surface mount components. A K-type thermocouple detected temperature and sent values to an N76E003 microcontroller programmed in assembly, which output PWM to control the oven.

I focused on designing and building the circuit and programming the finite state machine. Key features included temperature reading from 25°C–240°C, PWM power control, button input for state changes, and a Python-based temperature strip chart.

2023
C Microcontrollers

Line Following Robot

In a group of 3, we programmed a line following robot using a PIC18F46K42 microcontroller. We implemented functions to handle distractions, sharp turns, end-of-track recovery and landing pad stops — all in C.

The robot used infrared sensors to detect the track. Extensive testing was required to find correct threshold values for smooth operation.

2022
System Integration Structural Design

RC Plane

I built a remote controlled plane twice — first alone, then in a group of 4. The second time I taught my group members how the plane worked and how to build it, from electrical hardware to the body.

Built from foam board, wood, and fiberglass. Features a brushless motor with 1kg max thrust, servos on control surfaces, and a 2.4GHz receiver. Weighed 450g with an estimated 45-minute flight time.

A bit
about me.

I'm an Electrical Engineering student at the University of British Columbia, based in Vancouver. I enjoy working at the intersection of firmware and hardware, from developing code to designing circuit schematics and PCB layouts. I also enjoy creating RTL designs in SystemVerilog and exhaustively testing using testbenches and uploading the design onto an FPGA!

When I'm not spending my time in technical projects, I usually love to go hiking, biking and love to take pictures of nature.