Some fun things.

Robot Juggler

Robotic control project.

A project to create a robotic arm that juggles a ball about a central axis, despite the starting coordinates of the ball. This project was done in PyDrake for MIT's course 6.881 - Intelligent Robot Manipulation.

The main principle of this project is implementing a mirrored kinematics controller, and then applying constraints to prevent divergence. See the paper and presentation below for further details.


Federated Learning

Attacks and defenses against federated learning.

A project to implement attacks and defenses for federated learning. This project was done in PyTorch for MIT's course 6.867 - Machine Learning.

We implement several attacks including: label flipping, random label assignment, GAN reconstruction, and universal adversarial perturbation (UAP). The novel application of the latter, UAP, is the main innovation of our work and we implement it against a PCA-based label flipping defense.

Blacktip Research is a joint venture that strives to increase financial clarity. It was born as a result of the following frustrations:

  • Directly accessing public company records is insanely slow. To compare several companies across several years would require downloading a bunch of CSVs and manually parsing them.
  • Data aggregators that do the above for you are prohibitively expensive. They range from several hundred dollars per year just for access to the data, up to tens of thousands for top of the line services like a Bloomberg terminal. The former only gives you the (publicly available through the SEC) data, and the latter has bells and whistles but is too expensive for the average Joe.

For these reasons we've developed a Python library for public company fundamental analysis. It remains in early development, and in the near future we plan to extend its capabilities to include fund data, further analysis metrics, and expansion into the private sector. In the future, the goal is whole-market analysis quickly and cheaply.

Matt Beveridge


Personal website.

This website was built from scratch using HTML, CSS, and Javascript. It was done as an exercise to hone my web development skills — skills that I did not acquire during my educational journey.

Looking at the repo for the website you'll see several branches. The first of which, pure, is a pure HTML/CSS/JS version of this website. This is the version in which I began my web dev journey.

However, creating a website solely using these 3 languages is very tedious. When I am less busy I will rebuild this website using a more scalable framework (e.g. Django, React, Bootstrap).

Currently, the website you are viewing is built from the pure branch.

Discrete Cosine Transform

A research paper delving into the discrete cosine transform.

For the quick and dirty, check out this Jupyter notebook for an overview of the discrete cosine transform (DCT) and my paper.

This paper goes into more detail and gives context for what is covered in the Jupyter notebook. In it, three algorithms are discussed for computing the DCT: the naive algorithm, DCT using the fast fourier transform, and Lee's algorithm. The latter is the culmination of the paper and its performance is compared against industry standards.

Assymetric Processes

A research paper delving into assymetric processes.

This paper presents several different theorems related to the behavior of assymetric processes (Markov chains) under different conditions. We examine 2 specific cases: the closed markov chain (a loop) and the open markov chain (open-ended line). Further, we show the two are equivalent under the right conditions.

On a personal note, the state diagram shown above is the culmination of my LaTeX knowledge. Made from scratch, it's my favorite diagram I've made.

Additionally, there are several Jupyter notebooks in the repo used for empirical results in the paper.

Percolation Theory

A research paper delving into percolation theory.

Timely that I wrote a paper relating to disease spread during a pandemic...

This paper presents several different theorems related to the rate at which something spreads across a population. Percolation refers to the act of water dripping through coffee grounds, or something of that sort. Thus, we are interested in just how far that water will travel before it stops and under which conditions that water will travel infinitely.

Additionally, there are several Jupyter notebooks in the repo used for empirical results in the paper.

\[ H(X) = - \sum_{x\in X}p_x \log p_x \]

Information Theory

Several research papers regarding different aspects of information theory.

The first paper discusses decoding in the Z-channel. The second paper is a longer paper discussing roulette betting strategies. In this paper, I use the the Horse Racing Problem of information theory as a launching point. This same idea applies to portfolio theory in the stock market.

Additionally, there is a Jupyter notebook detailing some simulations used for empirical results in the second paper.

Python CLI Blackjack

Simple Python CLI game where users can play Blackjack.

Blackjack... you know the premise. Future work includes implementing a webfacing ascii-based interface.

© Matt Beveridge