Profile picture

Hello, my name is Benjamin Choi

I'm a Software Engineer 👨🏻‍💻

Thanks for visiting my website!

More about me

About

I am currently working full-time as a Software Engineer at Arrowstreet Capital, a discretionary institutional asset management firm in Boston, MA. Before that, I worked as a Software Engineer at Volant Trading, a high-frequency options trading firm in New York, NY. In between, I worked full-time on creating a technical documentation web app called NewBee.

I graduated from Washington University in St. Louis (WUSTL) Magna Cum Laude with a MS in Computer Science (with a Certificate in Data Mining & Machine Learning) and a BS in Computer Science (with a second major in Economics, a minor in Mathematics, and a Certificate in Financial Economics). While at school, I was an active member of Tau Beta Pi and Zeta Beta Tau, and also worked part-time for the university's CSE (Computer Science & Engineering) department.

Outside of work, I enjoy tackling new food projects, traveling, Judo, Brazilian Jiu-Jitsu, weightlifting, and snowboarding!

View my resume

Projects

NewBee

NewBee is a web app made to help organizations create, update, and maintain technical documentation. Inspired by the tendency of technical documentation to slowly wither into obsolescence on existing documentation platforms, it focuses on making it easy for teams to keep their documentation maintained and up-to-date.

Built using: (language) TypeScript; (database) PostgreSQL, Solr; (backend) Nest; (frontend) Angular; (styling) Tailwind; (testing) Jest, Storybook; (DevOps) Docker, Nx.

Course Manager demo screen

Course Manager

Course manager is a course grading and lab checkout app originally designed for WUSTL's Intro to CS class. Necessitated by the course's popularity and the skewed TA/student ratio, the app speeds up the lab checkout process by assigning a unique QR code per student per lab, which can then be scanned and marked as completed by an instructor via their phone camera or computer.

Built using: (language) Python, JavaScript; (database) PostgreSQL; (backend) Django, Django Rest Framework; (frontend) React, React Native; (styling) Bootstrap.

Picturesque demo screen

Picturesque

Picturesque is a forum meant to connect buyers looking for custom art with artists hoping to find commission work. Built for the art world, the site has a focus on placing images as the focal point of its UI while keeping other elements simple and clean.

Built using: (language) Python, JavaScript; (database) PostgreSQL; (backend) Django, Django Rest Framework; (frontend) React; (styling) Bootstrap.

FIFA Rating Predictor summary screen

FIFA Rating Predictor

FIFA Rating Predictor is a dot product kernel Gaussian Process regessor capable of predicting the overall ratings of FIFA 19 players with a median absolute error of 1.2 points (out of 100).

Created for WUSTL's Bayesian Methods in Machine Learning course, implemented in Python using Scikit-learn.

k-Means Geo Clustering in NJ

k-Means Geo Clustering

My team of 3 implemented a k-means geo clustering algorithm to determine the most effective locations to place rehabilitiation centers in the state of NJ, based on data collected from the DEA's database of opioid pill transactions.

Created for WUSTL's Cloud Computing with Big Data Applications course, implemented in Python using Spark.

Twitter Sentiment Analyzer summary screen

Twitter Sentiment Analyzer

My team of 2 implemented a sentiment analyzer trained to classify tweets into one of three categories: positive, neutral, or negative. Trained on a dataset of tweets directed at airlines, our sentiment analyzer is able to classify tweets with around 80% accuracy.

Created for WUSTL's Crowdsourcing and Human Computation course, implemented in Python using Scikit-learn and NLTK, specifically with a linear kernel SVM on a bag of words representation of tweets.

Congestion Game diagram

An ε-Greedy Approach to the Congestion Game

Examined whether an ε-greedy multi-armed bandit algorithm can be used to find the Nash equilibrium for the classic highway congestion game associated with Braess' Paradox. Results showed the approach converged to the correct equilibrium in most cases, but coverged best when: the number of runs increases, the max iterations parameter increases, ε increases, or agents gain perfect information.

Completed for WUSTL's Multi-Agent Systems course, implemented in Python.

Copyright (c) Benjamin Choi