GitHub Repo: https://
I created an Autoencoder with the goal of classifying numbers and positions of transistors through image recognition. I used a 5-layer convolutional network for the encoder and the same for the decoder so that the network was able to recreate the most general pictures of the transistors. The autoencoder used about 220,000 parameters and could easily identify the whether a transistor was in the correct position, pictured above. If you want to learn more about my autoencoder, click here.
GitHub Repo: https://
Using the same WM-811k Wafermap dataset on Kraggle from real manufacturing plants, I created a 14-layer neural network with augmentation, feature extraction, and classifier layers to predict wafer maps with greater accuracy compared to classical machine learning methods. Using convolutional and pooling layers, the features of the wafer maps are identified and exemplified, to make classifying each map easier for the classifying layer. To find out more about what algorithms were used and how I created the features, click here.
GitHub Repo: https://
Using the WM-811k Wafermap dataset on Kraggle from real manufacturing plants, I used machine learning algorithms from SciKitLearn combined with feature engineering and wafer map standardization to predict the classification of wafer maps, which manufacturers use to find errors in their production steps. This kind of prediction allows manufacturers to tweak their processes to decrease the fail rate of chips on their wafers. To find out more about what algorithms were used and how I created the features, click here.
DevPost Repo: https://
I participated in the 2021 Stanford TreeHacks and our group created an algorithm that allowed us to track how certain tweets tagged with a ticker symbol of a stock affected that stock's price. We used past stock price data to see how the two were related. For a more in-depth write-up, click here.
GitHub Repo: https://
I created this Python script to easily search for the courses that were recently offered at UCSB for any area of study. This repo offers an easier way of planning around the courses that are still on the course catalogs but have not been offered in the past year. It also provides an easier way to see what quarter certain sequences, which are mandatory to complete, occur and when required classes are taught. Find out more here.
GitHub Repo: https://
In this project, I used Dokku as a database and server to deploy and run the backend of my webapp, for which I used React and Java to create a page which has Google Authentication built into it. The Authentication also enabled me to store users in the database and attach info to their accounts, allowing them to save data from past visits to the site. To learn more about the technologies I used and what I learned in my Advanced Applications class click here.
GitHub Repo: https://
In this project, I used Dokku as a database and server to deploy and run the backend of my webapp, for which I used React and Java to create a page which has Google Authentication built into it. The Authentication also enabled me to store users in the database and attach info to their accounts, allowing them to save data from past visits to the site. To learn more about the technologies I used and what I learned in my Advanced Applications class click here.
This website uses CSS and HTML to display all the information about me. I used Bootstrap for the website design and added to those designs with styling, backgrounds, and overall outline of the webpage. I have also made form input designs and used javascript to allow for submission, however, they have been excluded for greater simplicity and cleanness.
A classmate and I built a functional multi-cycle Pipelined MIPS processor using what we learned from Computer Architecture. We built out each cycle of the processor and learned how to store intermediate data and use each cycle most efficiently. Our processor ran those instructions at 75 MHz and used 751 logic cells to function. Overall, we learned a lot about how to speed up execution time, increase IPC in processors, and decrease the amount of hardware and power needed for computational tasks.
A classmate and I built a functional single-cycle MIPS processor using what we learned from Computer Architecture. We built out all the functions and tested them using data files that were read into the instruction memory and executed. Our processor ran those instructions at 40 MHz and used 3354 logic cells to function. Overall, we learned a lot about the storage of data in a system, the execution of tasks per clock, and how to control the processor using logic design.
I used a Nexys A7 100T to create projects based on embedded systems, such as polling, interrupts, timers, scheduling, hierarchal state machines, and display drivers. I made multiple projects, that used these concepts, such as a chromatic tuner that predicted a note played using sampling rate and FFT, Fast Fourier Transform, and calculations. Further, I made a state machine that allowed certain functionality that you would find on a smartphone, such as a volume and mode controls using buttons and a rotary encoder. I created and connected all the modules in the Vivado Design Suite that allowed these projects to function.
This FPGA project involved using a rotary encoder to simulate changing volume, with it being bounded from 0 to 65, and being able to reset by pushing a button. This involved setting up interrupts to change the volume value and also driving the background and volume indicator on the display. My classmate and I used multiple functions to limit the debouncing of the encoder to provide a smoother experience. We also set up a state machine using QP Nano, so that the code was modular and extensible.
This FPGA Project involved using FFT to calculate the frequency of notes with a 2-3% accuracy within milliseconds. To accomplish this, we pre-calculated the values of sine and cosine functions that could be used with 256-point FFT. This process sped up the calculation time, meaning that it could be done in more real-time.