Welcome to Patrick's Website

About Me!

Patrick is motivated (maybe too motivated), educated (probably too educated), and enthusiastic (definitely too enthusiastic!). He is currently working at Riverside Research on their geospatial intelligence programs.


Read Patrick's resume if you haven't already!


Read some of Patrick's written work.

Project Highlights see all projects

Reinforcement Learning in Two Player Games

This research project focuses on reinforcement learning in multiplayer competitve environments. I developed novel algorithms that combine ideas from reinforcement learning, game theory, and meta learning. Read more about this research here! Also if you are interested in getting a deeper understanding of the key ideas in RL I highly reccomend YouTube courses by Sergey Levine and David Silver.

Satellite Scheduling

I began working for Riverside research as an intern in summer 2020. Applying mixed integer programming and tools from machine learning I developed an alternate approach to Riverside's satellite forecasting algorithm. I am continuing to work on geospatial intelligence and satellite planning projects at Riverside Research.

Other projects

For the rest of my machine learning, software development, and computer science projects please look through my Project Page and Github

Informative Path Planning

In this project I explore the effectiveness of various sampling algorithms in solving the informative path planning problem. In this case the task is to learn a 2D field (e.g. temperature map). The belief state of the field is modelled using a Gaussian Markov Random Field (GMRF) which is sequentially updated with Bayesian conditioning. The paths are planned to minimize the variance of the belief state.

Mixture of Gaussians

In this project I implement the expectation maximization (EM) algorithm for a mixture of Gaussians model. Here the EM algorithm iteratively updates the covariance matrix, and mean and weight of each cluster.

Connect-4 AI

In this project I create connect-4 AI players using a minimax tree search algorithm with alpha-beta pruning and other added heuristics (e.g. favoring the middle, and favoring having rows of 2, 3).