Hello all! My name is Will and I am a current second year at Cal studying applied mathematics and computer science. I grew up on Cape Cod, Massachusetts and received my International Baccalaureate Bilingual Diploma from Sturgis Charter School in 2019.
Although my true passion lies within a branch of discrete mathematics called graph theory, I have been the subject of a healthy bit of seduction from computer science since moving out west. At Berkeley, I lead the curriculum and teaching teams for Opportunity Through Data and am on the course staff for Foundations of Data Science.
Currently, I am working as an undergraduate researcher with Goodly Labs' Demo Watch project in an attempt to use supervised machine learning and statistical models to identify patterns of conflict escalation during government demonstrations.
just for fun
When I am not frequenting the Costa Rican jungle, you will probably find me meticulously curating my Spotify playlists, eating bluefin tuna at a sushi bar, or writing pop songs with the world-renowned Jinho Shin.
When the weather is cooperating, I love to play tennis or run on the Berkeley fire trails. Come winter time, shredding the freshest pow becomes my top priority; one day I hope to conquer Corbet's Couloir in Jackson, Wyoming.
I find relaxation in los versos sencillos of José Martí and Neruda's Poema 20. Their work inspired me to persevere in my quest of Spanish fluency, so much so that I began to dabble with the quill through lines of my own.
And there's that one time I broke my back while sledding, but I'll save that for another day.
Over the past several years, my love for the Spotify platform has grown unconditionally. As a direct result of this obsession, I have become what I will call the Spotify Triple Threat.
Avid Consumer: Raking in well over 250,000 listening minutes on Spotify, it is clear that I know the brand from a consumer's perspective inside and out.
Spotify Developer: Working with Spotify's Web API and the Spotify for Developers platform has allowed me to understand what working backstage is truly like.
Verified Artist: Familiarity with Spotify for Artists and a heightened awareness of the music distribution process prove invaluable when working on features used by top artists today.
Visualizing My Music Taste
As an avid Spotify user and a lover of all-things-data, the endless possibilities of what I could do with music streaming data have always been at the forefront of my mind. This curiosity inspired me to dive head-first into a microcosmic Spotify project using the Spotify for Developers platform. The project is broken into four main sections -- each with its own Jupyter Notebook. The four sections are as follows:
Exploratory Data Analysis: Within this section, I used my personal streaming data over a one year period in order to identify any significant listening patterns or habits. Additionally, this section walks through certain statistical tests such as A/B testing in order to determine if there was any significant statistical differences in regards to my top artists and songs.
Spotify Web API: The primary focus of this section was to use Spotify's Web API (by means of the Python module Spotipy) in order to obtain the audio features of each unique song within my listening history. It uses manual filtering of "White Noise" tracks or "Podcast Tracks". After using Pandas in order to create a DataFrame of all songs, it saves them to a CSV file for easier access.
k-Means Clustering via PCA and tSNE-Reduction: The obtained songs from above, along with their audio features provided the basis for my k-Means clustering model (scikit-learn). I employed both t-distributed stochastic neighbor embedding (t-SNE) and principal component analysis (PCA) to reduce the higher dimensional data into a two-dimensional dataset. To visualize my clustering model, I used Python packages Seaborn and Matplotlib in order to showcase the distinction of genres.
Playlist Analysis: Using Spotify's Web API, I constructed a series of Python Classes (CurrentUser, Playlist, Track) that stores the necessary information for a given Spotify user. A simple call to the CurrentUser constructor will extract all songs from all of the user's playlists and their associated metadata. Using this object-oriented approach, I created tools to compare two different playlists using a visualization of their audio features and a theoretical matching score.
Code available upon request for course projects.
Please don't hesitate to reach out to me about anything! My (virtual) doors are always open.
Once I see your message, I'll drop everything to get back to you as quickly as I can.
Please don't hold me to that.
Curated for my own enjoyment, available for all to view. I'd called this a fair, albeit limited, representation of myself.