About Me
Hello, my name is Foster Angus. I am currently a student at UC Berkeley studying applied math. I am interested in machine learning and software development.
I got my start programming in ninth grade during the pandemic using Haravd’s CS50 where I learned C, Python, SQL, Flask, Jina, HTML, CSS and Javascript. Over the past few years I have built upon this base with personal projects, hackathons, internships and jobs. At this point I have a lot of experience with React, Firebase, Flask, NLP tools, and mobile app development.
Python
Firebase
React
Flask
Django
Jinja
Tensorflow
Gensim
scikit-learn
Pandas
SQL
C
Javascript
CSS
HTML
Flutter
Bootstrap
OpenAI
Google Cloud
Java
Venta
I worked on Venta, a tool for managing events pertaining to greek life on college campuses, with a friend to learn about Flutter. I built the emergency contact feature and all integrations with google maps among other things. Venta is available on the IOS and Android app stores.
Running Ranks Website
My friend and I created a website called runningranks.firebaseapp.com where you rank the top 12 athletes in the world for each track event (according to the World Athletics ranking system). We ask you to compare athletes two at a time and tell us who you think is faster. The website then aggregates data from all users to rank each of the 12 athletes on the list. We ensure up to date data by refreshing the athlete lists and asking users to rerank weekly. Runningranks.com provides a way for track fans to engage with the sport much the same way as fantasy football or sports betting. This website can give you an idea of the favorites going into a major championship or race and you can use it as a tool when making predictions. I built it using React and a Firebase backend. This website displays some data with Recharts. We also scrape data from worldathletics.org using Beautifulsoup in python.
NLP Vector Search
I used a combination of word and sentence vectorization to create a firebase function serving as a backend for settings search. I used both word and sentence vectors because they can make up for each other’s shortcomings in some situations. This function accepts text which it efficiently compares to textual data for each setting, generating a combined similarity score. This is deployed for a real company. Here is the UI I made for testing the results.
EAT Portal
I volunteered to help build a portal for a universal basic income program for formerly incarcerated people run by Equity and Transformation, a Chicago based non-profit. The portal is a React app with a firebase backend. I helped design the website, manage the database, login users, and integrate with several external APIs.
Patent Processing NLP
I can’t talk much about this because it was for a company, but I made a Python CLI package that took a CSV with a patent data corpus and extracted and ranked key phrases by importance.
GetTam
Based on 2048 and GetMit, you must combine high schools in our county to eventually get Tam, our school. This game has become surprisingly popular at our high school—likely because it is the most interesting game that isn’t blocked on school-issued computers. Get tam is hosted on GitHub Pages and built with P5.js and Firebase. I mainly worked on the website development on this project, but I am proud to say I copied and pasted the get and setCookie functions from W3Schools.
Locate a Loo!
We entered the Gunnhacks 8.0 hackathon. After struggling to find an idea, we settled on an open-source bathroom location service because we liked the name. Locate a Loo is a Flask web app that allows you to add, locate, rate, and report loos. We used leaflet.js to construct the map and the Geoapify API to turn addresses into latitude and longitude. I mainly worked on the backend and the forms.
Marin Covid Data
Over the 2021 winter holidays, I decided to make my first web app on my own. I choose to try out Django because Replit recommends its template. The app draws and processes Marin County COVID-19 data from multiple sources along with supplementary California state-wide data to estimate the COVID-19 case rate among vaccinated and unvaccinated people of different ages. The data is displayed using Charting.js. Although the approximations my app makes may not be very accurate, I learned a lot and I learned that I don’t need Django for such a simple project.
Neural Network Final
For my CS50 final, I decided to make a neural network from scratch, despite having little idea how one works. I based the workings of my network on a random tutorial explaining how to make a perceptron I found on the internet. There are many problems with my network that decreased efficiency: I could have used matrix multiplication from TensorFlow, I could have back propagated in batches instead of every pass, I could have used a different activation function but I didn’t understand them well, and I could have tried to make a convolutional neural network for picture classification. My goal was to make a network that classified cat and dog photos better than random chance, and I managed to get a stunning 60% accuracy. If you are still interested in my very inefficient neural network, it is very well documented on GitHub.