Background#
I am currently a second year Ph.D student at the University of Wisconsin, Madison studying computer science. Before moving to Madison, I got my undergraduate degree in Computer Science at Michigan Technological University, graduating in December 2022. Currently I am a head teaching assistant in CS 400, Programming III this semester after being a standard teaching assistant last fall. While at Michigan Tech, I served as a Learning Center Coach for four semesters, Teaching Assistant for two semesters, and a Lab Instructor for one semester. During the summer of 2021, I participated in the Google Summer of Code by working with NetworkX on implementing an Asymmetric Traveling Salesperson Problem approximation algorithm. Blog posts from that project are available on the Scientific Python blog. The next summer, I was part of a Research Experiences for Undergraduates (REU) program funded through the National Science Foundation. Working with Dr. Satish Puri, I developed a multi-threaded C++ system for finding the approximate nearest neighbor for polygons.
For more information, please see my curriculum vitae or résumé.
Research Interests#
My interests have moved solidly into programming languages, and more
specifically program verification. Through my experiences as a teaching
assistant and coach for computer science students, I’ve developing an interest
in how we can use methods from programming languages research to help students
write better code and assess the behavior of a piece of code in a safe way.
Recently I’ve been learning to use the coq
proof assistant, which is a
fabulous piece of software. My venture into the field of programming languages
has been extremely rewarding, blending all of the aspects I love about theory
with practical applications about how we can reason about the behavior of
programs. Right now I’m working on a project to generate verified code for
marshaling and unmarshaling messages for go
code.
Through my work with NetworkX and several graph theory classes at Michigan Tech, graph theory is another passion of mine and I would like to explore how graphs and particularly trees can be used in these problems.
Moving Forward#
Right now, I’m looking for connecting with the professors at UW-Madison to find potential advisors and join a research group. After getting a Ph.D, I’d like to stay in academia and become a professor myself. While working at Michigan Tech in a variety of student-facing roles, I developed a passion for teaching and sharing my knowledge with other students. Education has been an important life-long journey for me and I would like to share that with other students.
Other Interests#
Outside of my academia interests, I am passionate about open source software, which I believe is important for a private and secure digital experience. In my free time, I enjoy playing tabletop role-playing games such as Dungeons & Dragons or Stars Without Number, watching movies, exploring the outdoors and cooking. You can even find a collection of recipes on this website.
Timeline#
NetworkX - New Graph Visualization API
Jun 2024 - Aug 2024
Indpendent Contract
Rewrote the existing visualization API to be agnostic to the visualization tool (in this case
matplotlib
), provide more flexibility and the potential for visualization dispatching in the future.Tutorial - Software Tools for Supporting Network Science
June 2024
International School and Conference on Network Science
I presented a tutorial titled Software Tools for Supporting Network Science along with Tamás Nepusz from
igraph
and Tiago Peixoto fromgraph-tool
at NetSci 2024 in Québec City.OPLSS@BU
June 2024
Attended the 2024 Oregon Programming Languages Summer School at Boston University. The topic of the conference is Types, Semantics and Applications.
Began Graduate Studies
Sept 2023
University of Wisconsin, Madison
Pursuing a Ph.D. in Computer Science.
Graduation
May 2023
Michigan Technological University
Graduated with a B.S. in computer science, minor in mathematical studies.
Lab Instructor
Jan 2023 - May 2023
CS 1121 Introduction to Programming I
Worked with Sarah Larkin to teach CS 1121 Introduction to Programming I. This course is an introductory Java programming course covering objects, loops, methods, code design, documentation and debugging programs. My responsibilities included running a weekly lab assignment, grading, holding office hours and proctoring exams.
Undergraduate TA
Aug 2022 - May 2023
CS 3411 Systems Programming
Worked with Dr. Soner Onder (Fall 2022) and Dr. Jean Mayo (Spring 2023) to teach CS 3411 Systems Programming. This course includes file I/O using system calls, process creation and management, linking and libraries, interprocess communication and socket programming. My responsibilities included grading, holding office hours, proctoring exams and developing automatic graders.
Research Experience for Undergraduates
May 2022 - Aug 2022
Marquette University
Worked on finding the approximate nearest neighbors of polygons using locality sensitive hashing. The work resulted in a multi-threaded C++ system using the developed techniques.
Google Summer of Code
May 2021 - Aug 2021
Worked with NetworkX implementing the Asadpour et al. algorithm to approximate the asymmetric traveling salesperson problem. For more information, see
Learning Center Coach
Jan 2021 - Dec 2023
College of Computing - Michigan Technological University
Help students completing assignments for beginning and intermediate classes at Michigan Technological University, on topics including
- Data Structures
- MIPS and C programs
- Introductory Java programs
Michigan Technological University
Aug 2019
Began courses at Michigan Technological University pursuing a degree in computer science.