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 my Comet Statistics Website here (links to an external
site) (links to an external site), 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.
This website, apart from using
Google Fonts, 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.
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 my
project on New
York City waste trends from my Intro to Data Science class at
UMD. While the
methods behind data analysis are important, I believe that developing projects
ethically and understanding their
results properly are the most critical parts of any data-based project.
Scripting & Sys Admin
My scripting experience is primarily in
Python, although I also have experience with Bash and
Ruby. I also have experience setting up YAML workflows to automate project builds in
GitHub. I have mainly used scripting
for automation and system administrator purposes.
Recently, I made some of this website's functionality much more streamlined using Python, shell
commands, and YAML. By setting up a GitHub Actions workflow,
the site now uses a template to automatically generate its navigation bar and footer. This allows
for
better integration with third-party tools like Cloudflare's email obfuscation, and also makes
it
easier to update.
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.