A computer screen with the text output of a program on it - the output is a list of processing logs of comet observatory data

Technical Background

In addition to a BA in History, I earned a BS in Computer Science at the University of Maryland. Most of my professional experience has been involved in supporting scientific research. My first internship was as a web developer with the NASA PDS Small Bodies Node - a group located at the UMD Astronomy Department that primarily researches comets and minor planets.

In addition to my professional experience, I have encountered a diverse set of theoretical and practical topics through coursework and personal projects. I am especially interested in programming language theory (compilers and runtime verification) and data structure use cases.

My primary technical specialties are web development and data engineering and analysis, however I also have experience with cloud services (AWS and Azure), Android app development, scripting, automation, sys admin, and Windows Runtime APIs.

Feel free to check out some selected details and examples below!

Web Development & Web APIs

I have extensive experience creating websites both for work projects and personal projects. With more recent projects, I have begun to focus on accessibility via semantic HTML. I also have significant experience using web APIs, including best practices (e.g., rate-limiting), API keys, and data verification. Alongside this, I have a working understanding of basic security measures such as preventing SQL or code injections.

You can find one of my websites here (links to UMD Astronomy Department), which I presented remotely at the 33rd annual Astronomical Data Analysis Software & Systems (ADASS) conference. To note, the backend of the site is primarily based on scripting and automation.

You can also find the source code for this site here (links to GitHub). Apart from using Google Fonts, the site is built entirely from scratch. Ordinarily, I might use something like Bootstrap to help with stylization, but I wanted to do everything myself for this site to boost my experience and to give the it a more customized look and feel. Please note that the GitHub repository is not where the live site files are hosted - the public repository is only intended for making the source code easily accessible.

Data Engineering

I have professional experience optimizing and refactoring large databases with hundreds of millions of records across dozens of tables using PostgreSQL. I am familiar with optimization techniques including indexing and materialized views, which have sped up work-related queries by a matter of hours or in some cases entire days.

I also have experience with other relational database management systems including MariaDB and SQLite. Additionally, several of my projects have been based around file-based data such as CSVs or JSONs - this typically is not my preferred approach, but I have encountered several scenarios where it is either necessary or it is the simplest solution.

In addition to traditional databases, I have also worked with graph databases using Neo4j. I have experience using Cypher, Neo4j's custom query language, to transform relational data into graphs, which are better able to represent complex relationships between data.

Data Science

Data analysis has been a core part of much of my professional experiences. Through work projects and school projects, I have analyzed large datasets (tens or hundreds of millions of rows) using Python, SQL, Neo4j, and Azure Databricks. This has included scraping and cleaning data, finding basic statistics, researching optimized algorithms for large datasets, and training ML models.

More importantly, my experience with data analysis includes developing and understanding insights derived from those methods. An example of my work with both methods and insights is available at this link, which is a project from my Intro to Data Science class at UMD. While the methods behind data analysis are important, I believe that understanding those results properly is the most critical part of a given project.

Scripting & Sys Admin

My scripting experience is primarily in Python, although I also have experience with Bash and Ruby. I have mainly used scripting for automation and system administrator purposes.

I have basic system administrator experience from managing a private Ubuntu server through AWS as a personal project, including editing user privileges, setting system and program configurations, and basic security and system monitoring measures. I originally set up the server as a centralized place for me to work on school projects - instead of switching between my laptop and desktop and having to keep track of packages, versions, etc., I was able to use a single machine and access it remotely. Outside of school projects, I used this as an opportunity to become familiar with many of the basic aspects of managing a server.

Low-Level Programming

Recently, I have started working with Windows Runtime APIs for personal projects. Currently, I am (slowly) working on an application written in C++ that calls several Windows libraries to get and display power status information on the taskbar.

I am generally interested in compilers and runtime verification, and have taken project-based lectures on both where I have successfully implemented them. The low-level side of programming language theory has always been very interesting to me, however I do not have specific research experience in the field.