Biography
About Me
I graduated with my Math PhD from the University of Tennessee, Knoxville on May 20th!
I'm interested in anything that has a good overlap between math and programming. I have strong problem solving skills and a serious drive to push through challenges. I'm also interested in origins of math words and conventions. If you know any interesting etymologies, let me know!
Research
My research focuses on computations in the ring of Witt vectors and canonical liftings of elliptic curves.
I successfully defended my dissertation, Computational Aspects of Mixed-Characteristic Witt Vectors and Denominators in Canonical Liftings of Elliptic Curves, on April 3rd, 2023! You can download it below. The final chapter of my dissertation, which focuses of the structure of the ring of Witt vectors, has been submitted for publishing.
Programming Languages and Tools
I have been programming since I was 11, when my dad taught me the basics of Lua, and I've been learning ever since.
Expert: Python, Sage, LaTeX
Proficient: C, C++, Java, Git
Familiar: OpenCV, R, Javascript, PHP, Lua
Education
Work
Hobbies & Interests
-
Programming
-
Racquetball
-
Video Games
-
Hiking
-
Space
-
Board Games
Projects
Witt Vectors in SageMath
Open-Source Contribution
An implementation of Witt vectors and their operations in SageMath. Includes optimizations from this paper by Dr. Finotti and original research of my own, which is summarized in this paper. The code is functional, but there are still tests and documentation to be written.
Advent of Code 2022
Programming Challenge
From adventofcode.com: "Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like." I completed all 50 problems in 2022 and wrote up some of my thoughts/solutions on the GitHub page.
Advent of Code 2021
Programming Challenge
From adventofcode.com: I completed all 50 problems in 2021 too!
Project Euler
Math/Programming Challenges
From projecteuler.net: "Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve." The image above shows the current state of my account. I haven't worked on these problems in a few years, but I would definitely recommend them to most mathematicians! The skills required are in my sweet spot.
Twitch Chat Bot
Volunteer Programming Work
This was written for the (now inactive) Twitch streamer bounceyboy in 2020. At the time, he was playing a Super Mario Sunshine challenge run, and wanted a game where the chat would guess how many times Mario died during the run. I reached out to him and built this bot for his chat. You can see it in action here, under the username "honeyskipmaster."
Ultimate Tic-Tac-Toe
Hobby Programming
Ultimate Tic-Tac-Toe is a much more interesting version of tic-tac-toe that has you playing on nine different boards simultaneously. Playing on paper gets a little tedious, so I decided to make a computerized version for myself and my friends. It also includes some (poor) netcode that works on a local network.
Toy Interpreter
Hobby Programming
I followed along with the first half of Crafting Interpreters to make this, including doing some of the "extra credit" to expand the language features. I always wanted to understand how the internals of a compiler worked, and Robery Nystrom's explanations were phenomenal. The compiler went from a black box to a clear box after I worked through this book. In fact, I think working through this improved my programming ability, as I now understand what's going on in the compiler's "head" when it throws an error.
Perler Bead Sorter
Hobby Programming
Perler beads are small, meltable beads that can be used to make art projects. I find them incredibly fun to make things with, but the most common way to buy them is in huge, unsorted buckets. So this project was an attempt to make a sorting machine. I successfully built a prototype using a Raspberry Pi with a camera and an Arduino Uno as a servo microcontroller. I used OpenCV to detect the beads and L*a*b color difference to do the sorting.
Budget Software
Hobby Programming
I prefer what's known as envelope budgeting. While there is software available to do this, to get all the features usually requires a monthly fee. I decided that I could easily build the software to do this for me, so I did. It includes automatic monthly budgeting (because I currently get paid monthly) and also interacts with an iPhone automation to automatically add all my card transactions.
Math Research
Computational Aspects of Mixed-Characteristic Witt Vectors
Submitted April 2023.
Abstract: The ring of p-Witt vectors is typically difficult to study computationally, as the sum and product polynomials grow exponentially in both the prime p and the index n. However, some isomorphisms are known, e.g. W(𝔽q) for q = pr is isomorphic the unique unramified extension of the p-adic integers of degree r. In this paper, we find an analogous result for ℤ/pαℤ, including an explicit isomorphism that is computationally useful.
Computational Aspects of Mixed-Characteristic Witt Vectors and Denominators in Canonical Liftings of Elliptic Curves
Doctoral Dissertation (Defended April 3, 2023)
Abstract: Given an ordinary elliptic curve E over a field k of characteristic p, there is an elliptic curve E over the Witt vectors W(k) for which we can lift the Frobenius morphism, called the canonical lifting of E. The Weierstrass coefficients and the elliptic Teichmüller lift of E are given by rational functions over 𝔽p that depend only on the coefficients and points of E. Finotti studied the properties of these rational functions over fields of characteristic p ≥ 5. We investigate the same properties for fields of characteristic 2 and 3, make progress on some conjectures of Finotti, and introduce some conjectures of our own. We also investigate the structure of rings of Witt vectors over arbitrary commutative rings and give a computationally useful isomorphism for Witt vectors over ℤ/pαℤ.
Finiteness of Posets Structured by 2x2 Integer Matrices
Undergraduate Thesis (Presented April 2017)
Abstract: In the late 19th century, Wilhelm Killing discovered a famous classification of the finite-dimensional complex simple Lie algebras. This result was later refined by Élie Cartan and is now referred to as Killing–Cartan classification. This result inspired many other algebraic classification results, and also manifested itself in classifications of seemingly unrelated structures. In this paper we begin an attempt to extend Killing–Cartan to encompass a certain family of ranked partially-ordered sets. We specifically focus on those posets whose structure may be described with a 2×2 integer matrix, and analyze the (in)finiteness of said posets.