Jack

Jack

I’m a software engineer with an eye for graphic design. I have professional experience in DevOps with Amazon Web Services but my passion lies in systems development. Whether it’s genetic programming and game development in Clojure, infrastructure management and deployment, Docker orchestration, or distributed network routing algorithms in C++, I love learning new technologies and taking on new projects.

I am currently working on research in the field of Genetic Programming. My project, PoolGP, seeks to evolve human-competitive pool players using the principles of evolution to explore the search space. PoolGP is designed as a distributed system using Docker and Amazon Web Services.

I have a BA from Hamilton College in Computer Science and I will be working on a Masters of Engineering degree from the University of Pennsylvania in the Fall.

Projects

Poolgp

PoolGP

poolgp_version
Developing spacial intuition in pool players using the principles of evolution.

Genetic Programming is a field of Artificial Intelligence that takes inspiration from the theory of evolution, seeking to evolve code in order to solve a specific task. Pool (a cue sport) is the game where players attempt to pocket half of the balls on the table before their opponent pockets his or her own. Developing an artificially intelligent agent for pool requires target selection and shot execution in a variety of scenarios. My project, PoolGP, uses Genetic Programming to evolve pool players using a variety of vector based instructions and inputs about the table. Because of the computationally expensive nature of the simulation, our system can be distributed across multiple machines. Individuals evolved using PoolGP displayed a rudimentary knowledge of the game and were able to hit the cue at the balls assigned to them, pocketing balls occasionally.

PoolGP
HALite

HALite

halite_version
Analysis interface for data collected through laser ablation spectroscopy.

Two peers and I developed HALite for the Hamilton College Analytical Laboratory. HALite provides users with a unified interface for data analysis. Ben Parfitt and I are continuing its development.

HALite
gpdistribute

gpdistribute

Library for distributing the analysis of Clojush genetic programming individuals.

Asynchronous distributed system architecture for Genetic Programming. This project is currently in progress and is designed to generalize the distributed system used for the PoolGP project.

gpdistribute