top of page

Background

This page is dedicated to some of my favorite courses that I've taken and the work that i've done. 

Internet of Things

One of my favorite courses at UC Berkeley was Internet of Things, I learned how to combine my coding and circuitry skills and connect devices to the internet. We used a Huzzah feather flashed with micropython, where we did numerous labs using MQTT. Two of my favorites labs were a weather station and self-balancing car.

1. Solar Powered Weather Station

Our weather station uploaded pressure, humidity and temperature data to Adafruit's IOT application every 15 seconds. We choose a 15 second duty cycle that switched the microcontroller between sleep-modes to conserve battery life as the solar panel charged it.

2. Self Balancing Car

For the self-balancing car we used the gyroscope from a BME680 sensor connected over I2C, a H-Bridge, and motors with encoders. With the given hardware, we wrote the code for a simple PID control system.

Design of Microprocessor-Based Mechanical Systems

 Another course that I really enjoyed was Design of Microprocessor-Based Mechanical Systems, which was a project-driven class in C using a PSOC 5LP microcontroller. This course exposed to me to C and working with a microcontroller that had a very small online community. The small online community really forced our team to rely only on the company's documentation, which I thought was a unique challenge.

1. Path Following

Our team designed a path-following vehicle that is wirelessly connected to the user's computer via Wi-Fi socket and follows a line drawn by the user. For more information go to the project link on the side.

Data structure and Algorithm (CS61BL)

Finally, I took CS61BL which is a Data structure and Algorithm class in Java. My favorite projects besides bear maps which were: Deque, Gitlet, and Bearmaps.

1. Deque

​ With Deque, we implemented a circular, resizing array list and a doubly linked list.

2. Gitlet

Gitlet was definitely the most open ended and challenging project because we were required to implement a simple version of GitHub in two weeks, with no skeleton code. This forced my teammate and I to fully draw and design everything out before we started. We also learned about serialization and SHA1 encryption. Once the project was done, users were able to add, commit, merge, branch, rm and etc, just like regular Git, but locally. 

bottom of page