Software

Experienced in the use of mobile development software tools on both IOS and Android as well as the use of C programming to utilize microcontrollers at the register level such as the Atmega328p and STM32. Have also worked at a higher level in full stack development and designing various projects in Arduino and Raspberry Pi using C and Python respectively

LC4 Processor

Currently Working to implement a pipelined LC4 processor using Verilog with 16 bit instructions and accompanying stall and bypass logic for highest throughput.

FPGA Data Compression Pipeline

Designed a software only (ARM Processor) and a hardware/software codesign (Ultra96 FPGA) implementation of a data compression pipeline meant to take in data at 770Mb/s and output the compressed data over ethernet. Used tools such as Vivado, HLS, OpenCL, and Xilinx Analyzer to complete this implementation in steps of content defined chunking, SHA-256/384, LZW, and verification while making use of multiple threads, Neon units, built in hardware accelerators, loop unravelling, and FPGA capabilities to take advantage of pipelining, parallel processing, and optimal clocking.


Simulink Robot Calibration

Using Matlab Simulink and an Arduino based motor controller, a two wheel robot was programmed and calibrated to complete an automatic navigation through sets of waypoints using techniques such as Kalman filters, Dead Reckoning, Discrete-Time PID, Beziers, and Pure Pursuit.

Video of Robot updating position on cone identification

Stunited

Helped work on a mobile app using full-stack development including the use of Amazon Web Services, C, Javascript, and React-Native to create an App focused around connecting students with similar educational interests for social and intellectual connectivity

Photos: Example Screenshots from the App

Real Time Operating System

Using C based Real Time Operating System techniques, created both a functional queue system and automated verification program that would automatically allocate TAs to students in a queue using Rate Monotonic Scheduling (designed to fail in some cases as part of requirments)

Internet of Things Fishtank

Using Arduino and Raspberry Pi, created a wireless connected fishtank that automatically monitored and maintained an aquarium utilizing data such as temperature, pH, ambient light, and a live video feed to not only minimize the amount of human interaction required to safely run a fish tank but also to provide users with a real time view and data log of the tank