π About Me
Software Engineer
I am a software engineer with years of experience specializing in full-stack development and data engineering, with a focus on creating exceptional user experiences. With strong proficiency in React/Flow, Python, and SQL, and a passion for building efficient and intuitive applications and big data pipelines, I strive to deliver impactful solutions that meet both user needs and business objectives. I am dedicated to continuously expanding my skills and collaborating with cross-functional teams to drive innovation and create remarkable software experiences.
Background
My interest in computers and programming actually began in middle school, when I began toying with HTML and JavaScript, but I began pursuing it in earnest when I noticed a coworker typing code in an IDE while I was working at EcoFactor, using what turned out to be SQL. My coworker was nice enough to show me the ropes of how SQL worked. I realized I could leverage what they had taught me and, presumably, a general-purpose programming language to automate a manual process I'd been assigned that took an entire day every week, so I decided to teach myself Python to make it happen. After 3 months spending an extra 4 hours a day in the office after normal work hours, I had completely automated that painstaking process and was so thrilled by it that I became determined to make programming my full-time job.
Since then, I secured a job at Meta and never looked back. I have had the opportunity to work with and learn from extremely intelligent people and it was an incredible experience.
π§πΌβπ Projects
I've worked on projects professionally, as well as in my
personal time to hone my skills, and just to make life easier around
the house. Here are a few of my favorites.
π¨π»βπΌ Professional
In my professional experience, I've worked on projects ranging from building data pipelines tracking the spread of COVID-19 to creating internal tools and UIs of all sorts and developing APIs. Here are some of my favorites.
-
π‘οΈπ€ Algo Managment Tool
This was the first professional software project I developed while I was working at EcoFactor. I had been put in charge of managing what proprietary energy efficiency algorithms set thermostat values would run on the thermostats managed by EcoFactor and knew a computer could complete the job faster than a human using Excel, so I decided to figure out how to do it.
3 months and countless extra hours after work later, I had a working system that completely removed all of that manual work.Technologies Used:
- Python
- MySQL
-
πͺοΈπ£ Disaster Tracking Data Pipelines
This was my first experience developing data pipelines. While at Meta, I worked on numerous data pipelines, including those that would track things like natural disasters and the potential spread of COVID-19. It felt good to be working on systems that would benefit humanity. These datasets were uploaded to The Humanitarian Data Exchange.
Technologies Used:
- Dataswarm (Similar to Airflow)
- Python
- SQL
- Presto
- Hive
-
πΊοΈπ€ The Eisenhower Project
On the same team where I developed disaster tracking pipelines, I also worked on a set of map data evaluation pipelines. These pipelines evaluated the completeness and accuracy of map data derived from satellite images. In short, it checked if map features like roads, buildings, population estimates, etc existed and were plotted where they would be expected to exist. This was also my first experience on a cross-functional team.
Technologies Used:
- Dataswarm
- Python
- SQL
- Presto
- Hive
- Spark
-
π¨π»βπ»π οΈ Network Partner Portal CMS
I tend to keep an eye out for inefficiencies because I hate them, especially when they result in unnecessary manual work. The first time I noticed this at Meta was when I was testing an update to what we called the Network Partner Portal, which was used by ISPs to order caching servers for Facebook data. I kept having to enter the same system specs and delivery information and thought "Wow, this is annoying. It's probably annoying for ISP employees who have to enter this info too." So I decided to fix it. I built a contact and system spec management system feature with a UI created with React that would save this information to a Hive table for future use by ISP employees (and Meta employees who don't like typing the same things repeatedly while testing) and upon subsequent visits to the portal, would be available to simply click once to enter all necessary information, still allowing the user to update any specifications that may have changed.
Technologies Used:
- React
- SQL
- Presto
- Hive
-
π¨π»βπ»π οΈ The Keyword Tool
Sometimes, even at large software companies, inefficiencies persist where there just hasn't been time to build tools to address them. There was one such case during my tenure on my most recent team. Long story short, project managers would decide to change the selection criteria for posts that my data pipelines were evaluating and would ask me to make those updates, which were relatively straight-forward, but distracting. So I built a tool to enable them to make those changes themselves. In the process, I collaborated with a few of these PMs to explore additional useful features that could be included. One such feature was the ability to temporarily activate or deactivate the selection criteria for posts. So I built the MVP such that it could be extended with that functionality in the future. I created the UI in React and the API in PHP/Hack.
Technologies Used:
- React
- PHP/Hack
π¦Έπ»ββοΈ Personal
My unconventional education in programming forced me to find my own projects to work on, which I found in the form of building home automation solutions from scratch. I noticed that there were things around my home that I often forgot to do, like turning my closet light off, or watering my plant, so I turned these tasks into projects.
-
ππ‘ Motion Sensor Light Switch
This was my first hardware project. I used an Arduino, a PIR sensor and a simple circuit to replace the wall switch in my closet.
Technologies Used:
- Arduino
- C++
-
π±π‘ Remote Light Switch
After forgetting to turn my bedroom light off one too many times, I decided to use computers to solve that too. I created a Raspberry-Pi-controlled light switch circuit that was controlled with both a wall switch and through a simple Android app. This project went through a few iterations and technologies and in the process, I learned a lot. Not only did I find new applications for Python and write my first app, but I also learned more about hardware communication and circuits. To extend the learning opportunities with this project, I decided to add a SQL database to track the IP of the requester since I hadn't implemented one from scratch before. It was completely unnecessary, but a lot of fun.
Technologies Used:
- Arduino
- Raspberry Pi
- Python
- Serial Communication
- C++
- PHP
- SQL
- Android (Java)
-
π±πΏ Automatic Plant Sprayer
As I got more interested in home automation projects, and hadn't figured out how to care for a plant, I decided to have a computer help me. For this hardware project, I used a simple program on an ESP-8266, which hosts a very simple web GUI, to enable manual watering, and is controlled by a server, functioning as a home automation hub, to implement a watering schedule. years later and the plant is still alive!
Technologies Used:
- Arduino
- C++
- HTML
π¨π»βπ» Work History
Software engineer
2023-Present
Develop mapping technologies for autonomous robo-taxis.
Technologies used: SQL, Python, JS, Typescript, HTML/CSS, Linux, Git, ArgoCD, Bazel, Amazon S3
Software engineer
2016-2023
Worked throughout the stack on multiple teams, from logging to satellite-image-based mapping to an in-app feature focused on positive stories on Facebook. Focused on frontend rewriting and updating UIs, backend building and maintaining APIs, and data engineering building data pipelines to produce map data analysis which is hosted on the Humanitarian Data Exchange (HDX).
Technologies used: SQL, Presto, Spark, Scuba, Hive, Python, Hack/PHP, JS, Flow, React, HTML/CSS, Linux, Mercurial, Dataswarm, Amazon S3
Applications Administrator
2015-2016
Implemented and supported first and third-party applications for staff and faculty. Created reports using internal tooling for various departments regarding student, staff and faculty data. Redesigned the main intranet website used by faculty/staff, from a set of static pages to a single interactive solution. Recreated multiple web-based tools as training assets.
Technologies used: HTML/CSS, JS
Operations Analyst
2012-2015
Wrote several tools for monitoring and reporting, as well as an algorithm management tool, which planned the updates of proprietary energy efficiency algorithms on customer thermostats, eliminating a 5-hour weekly manual process and required the input of multiple team members to complete.
Technologies used: Python, MySQL
Teacher/Director of Operations
2009-2012
Taught a mixed class of 10 students in grades 2 through 5. Duties included creating daily lesson plans, assigning/grading homework. Subjects taught included: Math, Reading, Writing, Science.