About Me

Hello there! I'm so excited you're here! On this page you can find an in-depth description of who I am, both as a person and an engineer, so you can know if I match what you're looking for.

My History

A brief overview of my experience:

FactSet Research Systems

Software Engineer

Context:

FactSet provides its clients with a wide variety of company-level financial data (e.g. stock prices, company assets, company financial statements, etc.) which then they use to assess risk, track earning insights, and make investment decisions for their stock portfolios.

Main responsibilities:

  • Provided support for, implemented features, and helped maintain the infrastructure for FactSet's main ETL pipeline. This pipeline is used by hundreds of internal employees to onboard & update hundreds of databases containing millions of rows of financial data used directly by clients.
  • Added new infrastructure to automate & validate deployments of SQL-defined views from the dev environment to staging to production. Previously, users were manually copying & pasting SQL definitions from one environment to another, with little oversight or validation.
  • Acted as a 24/7 on-call engineer & responded to support channel requests on a monthly rotation.

Primary Languages and Technologies Used:

  • Python
  • Golang
  • Bash
  • SQL
  • GraphQL
  • AWS
  • Github
  • Github actions
  • SonarQube
  • Visual Studio
  • Dremio
  • Databricks
Johnson & Johnson

Product Planning & Logistics

Context:

I worked for a subsidiary company of Johnson & Johnson called Ethicon, which specialized in surgical technologies, wound closure, and medical devices. My position was located in a raw-materials manufacturing plant in Cornelia, GA. This plant was used to produce dermabond, sutures, and needles. The sutures and needles were then shipped to our finishing plants to be attached together, sanitized, packaged, & distributed to customers.

Main responsibilities:

  • Ordered the production and shipment of nylon, prolene, and silk sutures.
  • Responsible for processing & recording all requests for destruction of expired/damaged materials in compliance with state and federal regulations. Facilitated the transfer of this process from paper format to digital.
  • Wrote SQL scripts to pull information from company database for reporting purposes, data validation, and in support of internal & external audits
  • Facilitated updates to material specifications, procedures, and bill of materials of highly regulated medical products.

Primary Technologies Used:

  • SQL
  • Oracle
  • JD Edwards
  • Excel
  • Powerpoint
Georgia Institute of Technology

I completed my bachelors in computer science with a specialization in user interface. My school work was written in Java, C++, and TypeScript.

My Style

A few things about how I work:

Software Development

How I go about developing software:

Organized and Detail-Oriented

I thrive off of structure & organization; my head is already scatterbrained enough, so the last thing I need is for my code to be just as chaotic.

Every function, class, & file is modular and has one specific purpose. Every section of logic has its own inline explanation.

I hate looking back at my own work and having difficulty understanding what and why I did things.

Scalablility

Having worked on large, evolving systems, I've learned that scalability is essential if you want to build a system that lasts.

That means I'm always on the lookout for any step in a process that requires manual or tedious work and take the initiate to replace it with an automated process. When designing systems or features, I focus on structuring the code so new pieces can be added or old ones removed with ease.

To accomplish this, I rely on techniques like dependency injection, SPP, and class inheritance to keep the architecture modular, adaptable, and easy to extend.

Simplicity

Raise your hand if you've ever inherited a codebase that is the most tedious thing in the world to understand. Or better yet, you have to go back and fix some code you wrote several years ago (if you're not an engineer, imagine a billion people raising their hand).

When I write code, I want a new born baby to be able to read it and fully understand what it's doing (slight exaggeration). The ultimate goal is for other engineers to look at my code and involutarily fall to their knees with an exclamation of relief escaping their lips; for they have been saved from hours of grueling navigation through an endless list of files and code architecture that makes no sense.

Test driven & user focused

Everyone can list numerous products they've seen released by companies that fall flat on their face upon release. No one wanted Google glasses. No one wanted a smart car. No one wanted a $500 machine that squeezed juice out of a bag.

I'm a firm believer that quality control paired with thorough & frequent consultation with users helps prevent such outcomes; communication creates products people want and an automated testing framework creates products that work. Creating good software is the same as creating any other product; quality comes from listening, learning, and fixing problems before they're even problems to begin with.

Collaboration

How I go about collaboration:

Positivity

I make it a point to bring positivity wherever I go. Being negative sucks, why would anyone do that. If I'm in the room, you WILL feel comfortable & at ease, whether you want to or not. I will ALWAYS encourage people to speak their mind so they're heard AND NO ONE CAN STOP ME !!!

Open & Accepting

A key part of achieving a positive & productive environment is being accepting of everyone, regardless of who they are or their walk of life.

I would never judge someone over something that doesn't matter. I welcome a variety of perspectives and believe diversity of thought creates wellroundedness.

Communication

I think the best way to learn or figure something out is to reach out to an expert. I've learned my leason from spending hours on an problem and then getting an immediate solution once I talk to someone with more experience.

I also value thorough communication of my work so any of my colleagues can pick up where I left off if I ever need to shift my focus or they need to build upon/debug my code.

Connection

When it comes to my teammates, I like keeping things casual & lighthearted. Work is more fun when you get to connect with the people around you.

AI

How I go about using AI:

It's clear that AI's integration into our workflows as software engineers is inevitable. It is an incredibly powerful tool, and I believe it's just as incredibly important that we priortize using it appropriately. The last thing we want is to end up with a bunch of AI generated code of poor to mediocre quality in production, and then have no idea what it does when it breaks.

That's why I'm mindful of when & how I use AI.

Taking ownership

I always take ownership of all design and implementation decisions for any code I put on a PR.

When incorporating AI into my work, I first write up single-purpose stubs with detailed inline comments of their purpose, the logic they implement, and how they string together. The only thing I leave up to AI is tedious language and package specific details.

Working this way has enabled me to create well designed tools with a thorough understanding of how those tools work, all while expediting my output ten fold. I love that I can focus on the structure of my code instead of spending hours trying to debug annoying syntax errors on a programming language I'm not familiar with.

Use it for the little things

I find AI to be great at reviewing PR descriptions, giving function/file name suggestions, generating documentation, and assisting me with debugging (while we're on the topic - no, none of this was written by AI LOL).

Thorough review of generated code

As useful as it may be, I still make it a point to thoroughly review & understand everything that was generated with AI.

I never want to push some changes to production, be asked what I did or why I did something a certain way, and then not have an answer.

My Motivation

A couple things that motivate me:

Feeling Accomplished

Nothing is more satisfying to me in my workday than clicking a checkmark on my to-do list.

I feel the most motivated when I'm able to reflect on my work and be proud of what I've accomplished.

Being able to see tangible output of my efforts is important to me, whether it be an entire application I built from the ground up or a list of bugs I've resolved within the last sprint.

Helping Others

I also love helping others and feeling like I've made someone's day easier.

Some of my favorite projects I've worked on are internal tools used by other employees to improve their workflow efficiency (see the My Projects page for some examples).

I have a knack for seeing pain points of complex systems and coming up with solutions to ease those issues so my collegues can focus on feature implementation instead of damage control.

My Hobbies

A little bit about my hobbies:

Illustration

In my free time, I like to do a little bit of drawing, both traditional & digital.

See some of my work here.

Weightlifting

I do a little bit of weightlifting here and there. Am I good at it ? No. Do I still try ? Sometimes, when I feel like it ...

My bench is 135lbs & I can do like, 10 push-ups. Fear me.

And more fun facts !