Here's a brief overview of my work. My Resume again, for reference.


Education
Sept 2023 - May 2024 Masters of Science in Machine Learning
Carnegie Mellon University
Sept 2019 - May 2023 Bachelors in Artificial Intelligence and Math
Carnegie Mellon University [selected coursework] [full transcript]
GPA: 4.0/4.0
Sept 2015 - June 2019 High School Diploma
Thomas Jefferson High School for Science and Technology
GPA: 4.1/5.0
Publications
laptop Efficiently Learning the Graph for Semi-supervised Learning
Dravyansh Sharma, Maxwell Jones
[paper] [code] [poster]
UAI 2023
laptop A Systematic Study of Bias Amplification
Melissa Hall, Laurens Van der Maaten, Laura Gustafson,
Maxwell Jones
, Aaron Adcock
[paper] [code]
NeurIPS 2022
Experience
Summer 2023 Academic Research Generative Intelligence Lab - CMU
Summer 2022 Software Engineer Intern FAIR Labs - Meta
Summer 2021 Software Engineer Intern Probabilistic Machine Learning - Meta
Summer 2020 Data Science Intern Fiat Chrysler Automobiles
Teaching
Carnegie Mellon University
Fall 2022 Head Teaching Assistant, Concepts of Mathematics (15-151/21-128)
Spring 2021 Teaching Assistant, Theoretical Computer Science (15-251)
Fall 2021 Head Teaching Assistant, Concepts of Mathematics (15-151/21-128)
Spring 2020 Teaching Assistant, Theoretical Computer Science (15-251)
Fall 2020 Teaching Assistant, Concepts of Mathematics (15-151/21-128)
«

Selected Coursework


Spring '23

Fall '22

Spring '22

Fall '21

Spring '21

I've had the privilege of working on a lot of super cool projects with awesome people over the years. Here are some of my favorite projects!

BattleCode!
Annual strategy-based coding competition run by MIT

Cozmo Depth Map!
Final Project for Cognitive Robotics

Spot your mood!
Hackathon project for spotify song recomendations

Football with linear algebra!
Term project for predicting NFL playoffs using linear algebra

WalkSafe!
App for finding safe walking paths at night

Origami Social Networking!
Fullstack project to create origami social networking platform

Cozmo Depth Map!

[presentation slides] [codebase]

«

Partner: Akshath Burra


My senior year I took Cognitive Robotics, a course in which you program Cozmo, a robot with a camera sensor. Thanks to CMU, cozmo also had access to a ~8 GB GPU. For our final project, my partner Akshath and I decided to use MiDaS, a monocular depth model, to predict depth at every frame that Cozmo sees.

Since MiDaS only gives relative depth, this depth map is not grounded with real world depth values. However, when Cozmo sees a light cube, a special object with an aruco marker, he knows how far away this light cube is. Using light cubes as a sparse depth signal, we calculate an optimal scaling factor to multiply to the relative MiDaS depth map to give an accurate depth map of the image, which can then be queried at any pixel. Feel free to look at the slides linked above for a full explanation and proof of optimality for our scaling factor!

BattleCode! (homepage)

«

Partners: Winston Cheung (left), David Lyons (not shown), Bharath Sreenivas (middle)


Battlecode is an MIT AI competition run every year throughout the month of January with 100s of teams and thousands of participants entering code. As a general overview, games consist of two teams, each with control of some number of robots. These robots have different abilities(making money, attacking, creating more robotos, etc), and can only communicate through bitFlags whose messages must be coded up in some finite range. Some strategies for performing well include implementing fast pathfinding to navigate terrain with different levels of movement allowed per square, clustering troops to place them strategically across the map, and using map symmetry to infer the location of the enemy base long before actually exploring the entire map.

There are multiple tournaments throughout the month, ending in a tournament for the top 16 teams getting flown out to MIT for cash prizes. We were lucky enough to be in the top 16 for the past two years, with monotonically decreasing rankings for each year. Our first year, we placed 9th-12th, the best performance out of all first time teams. The next year, we placed 7th-8th, and our final year we placed 3rd.

2023 Overview

[Full Code] | [Full Post Mortem]

This year, we worked really hard to make a post mortem that is both easy to read and informative for any level of reader. Please feel free to give it a skim/read some paragraphs that are of most interest (the table of contents has links to each section, so you can just click on a section to go there)!

2022 Overview

[Full Code] | [Full Post Mortem]

Here are some of the cooler features from this year:

  • Like in 2021, we used a stack to store states (look at the first bullet 2021 for more info)
  • We used a distributed k clustering algorithm for troop movements. All troops reported enemy troops in their range to the main tower, which then found at most 3 main enemy clusters. From here our troops went towards their closest cluster
  • We spent a lot of time on troop to troop micro-interactions. for deciding whether to attack at a micro level, we considered how many troops we had vs how many troops the enemy had as well as health, cooldown, and land passability

2021 Overview

[Full Code] | [Full Post Mortem]

Here are some of the cooler features from this year:

  • Our home base towers used a stack to store different States. With this in place, we could switch from a state like Default to defending, while pushing Default to the stack. Once we were done defending, we could pop the State Stack and go back to Default mode. This allowed us to do a lot of tasks as intermediates while still having main tasks
  • We used priority queues that stored locations of enemy bases, giving priority to those that had the least amount of money, to effectively take over enemy bases when possible
  • We used bit manipulation to communicate between towers, which all had 24 bit flags that robots in sensor radius could see

«

Spot your Mood! [Full Code]



Overview


We used the Spotify API in conjuction with Google's NLP API to create an app that classified the mood of your songs. In addition to classification, we were able to query certain moods from a user and output songs that had the most correlation to the mood that the user wanted.

Implementation


Given a user mood, we first transformed it into a mood vector. From there, we used Spotify's API to find a subset of songs with similar mood vectors. From here, we created a further embedding that used both spotify's mood vector and our sentiment analysis result and found the song with the highest dot product with the original user mood vector

We also used a similar process to generate a curated playlist given a specific mood, as well as added ability to log in to your current spotify account and save said playlilst. Finally, we created a function to plot mood over time, so the user could see how the mood of their music changed over some time period.

«

Football with Linear Algebra!


[Full Writeup]

Partner: Eric Gan



Overview


The main goal of this project was to take data from the regular season of the NFL and predict the playoffs be computing rankings for each team.

Implementation


We employed two main strategies:

In the first, we try to find rankings of teams, such that for every game between teams i and j, the difference between team i's score and team j's score is equal to their difference in ranking. This method didn't work well at first, but after taking all nonzero terms in our matrix and making them small values 10^(-15) it was very efficient. We surmise that this is because we were able to increase the stability of the matrix through perturbation

In the next method, we created a matrix that is 32 by 32, such that every entry Aij is equal to the total number of points scored by team i against team j, with some normalization. Next, we tried to find some strength vector S such that, when multiplying A by S, we get a vector proportional to S. This becomes an equation where we can use eigenvalues and eigenvectors to find a solution. It worked better than a naive version of strategy 1, but worse than the perturbed values.

«

WalkSafe! [Full Code]


Partners: Tanvi Bhargava, Jason Chadwick, Adrian Kager



Overview


Our goal was to create a program that, given a start and end location, gives a user the safest timely walking path to their destination. We used Manhatten as a test area since they had a lot of crime data for us to use.

Implementation


First, we downloaded all street nodes from OSM, a mapping API. Next, we assigned each node a value based on the amount of crime in the area, specifically weighting crime intensity via a function that took in severity of a crime as well as decayed in value deending on distance from a node. We also only considered crimes within a certain latitude longitude value of a given node. From here, given a path, we would then run an A* search on the start and ending nodes, with the weight of each node being the crime rating we had assigned.

All nodes used for our A* Search

Heatmap of Manhatten, with red/brighter areas representing more crime

«

Origami Social Networking!


[Full Code]



Overview


The idea of this project was to create a platform that origamists could share their work with each other and also share models that they made with each other along with instructions

Implementation


I first added a login feature with hashing passwords using MD5 so users can be authenticated in a secure manner in the backend. From here, users can look at the designs of their freinds, add their own designs, and create new designs via a python program embedded into the webpage.

Origami


Models


I've been folding origami for over a decade now, and over time I've been able to become skilled enough to fold some great models. Nowadays I do most of my folding at CMU's origami club. Here are some of my favorites from my origami instagram page


Teaching


I've been teaching origami since I was in middle school. Here are some pics of me teaching from when I was younger:

Me in 8th grade teaching origami to kids in South Carolina

Me in 9th grade teaching origami to kids in Kenya

Me in 10th grade teaching origami to kids in Myanmar

Basketball


I've been playing basketball since around second grade, and I currently play club basketball at CMU. One of my big goals for basketball was being able to dunk. Here's a video of me dunking :)

Email:

mjones2 [at] andrew [dot] cmu [dot] edu