THE ORIGIN STORY
Hello!
Thank you so much for taking the time to read this. Today I would like to talk to you about a recent project I worked on for an amazing nonprofit called Human Rights First. HRF is an amazing organization dedicated to the defense of human dignity and the rights & freedom of people everywhere. It was truly a privilege to work with them and the project we are building for them will help asylum cases throughout the country. Keep in mind we are not talking about mental asylums here 🤔. The type of asylum HRF deals with are legal cases where someone not from the United States is requesting to come live in the US for their own protection. Pretty awesome cause to fight for!
Ah but there is some intrigue lurking in the background here 👀. As it turns out right now there is no aggregation of asylum case data. This type of dataset exists for many other types of legal cases in the US but not for asylum cases. Because of this many people who need help have not gotten it and have had to suffer.
Enter stage left: HRF and their amazing goal of aggregating this case data from trustworthy sources! After collecting the data this tool will make it easily accessible to asylum attorneys seeking to aid their clients! Not only that it will also allow policy shakers & movers to find ways of improving our legal system! This is where I and my team of amazing developers step in, ready to deliver some beautiful code.
I am going to throw in a quick spoiler here. This was actually the first real-world team project that I had worked on 👀. I was absolutely terrified, especially because we only had a month to work on it. I had never worked with such a large team before or on such a large codebase and was genuinely flabbergasted as to how everything was going to mesh together smoothly. I understood what I was capable of and comfortable working on, but not so much for the rest of my team. Some wanted to do frontend, some backend, and the data scientists also used a completely different language! What was I going to do?
THE MINI BOSS
So here I am thrown into this unfamiliar codebase, with unfamiliar pieces of data, on a team I had never worked with before, and all three were huge! Great😅. After taking a few deep breaths to get my bearings in this ocean of unknowns, I began to see a light….it was….my problem-solving framework UPER! Understand Plan Execute Reflect. Well, the first step is understanding…time to set aside my coding fingers, put on my reading eyeballs, and dive into this codebase!
After swimming around in the code for days on end with nothing to sustain me but objects and promises a bit of understanding started to trickle in. What I found was genuinely beautiful and terrifying. The project that I had worked with had been meticulously crafted and very well thought out, I was very pleased and proud to inherit it. Alas, every silver cloud has a not so silver lining…that’s the saying, right? Anyway, it was becoming more and more apparent to me that in certain areas of the application, especially where the actual points of data were concerned, there seemed to be a breakdown of communication. Some things that needed to line up just we’re not lining up.
So I began to formulate a plan 🤔. An overhaul of sorts. We needed unification in certain key areas of our app. It was intended for users to be able to upload case documents, have them be scrapped by our brilliant data scientists document scraper, and then be added into the database pending approval from an admin. These three features required everything to line up perfectly on the frontend, the backend, and the data science end. Thus my goal was formed. I would become the bridge between them, I would become THE AVATAR! Okay, I still can’t control elements but you get the idea… and so my next task was set…
THE FINAL BOSS
Here we are then, we have found what appears to be the biggest problem needing solving for this project… TIME FOR UPER! My first step in understanding was to familiarize myself as much as possible with the data we would be working with. I reached out to my DS teammates and spent much zoom time working with them to hammer out the data points and return values for the scraper. It was a fascinating dive into their world of algorithms and I can’t wait to study more in the future. After getting as much information as I could from DS it was time to have a look at the backend holding all our case information. Boy, I wish I could have avoided that! Looks like an entire storage rework for the cases is on the agenda!
This is finally where I was able to dive in and start coding. I began by making all the necessary adjustments to the backend. This included a complete restructuring of the cases table and recreating all of our seed cases with the new table structure…. Wow, my fingers were tired after that. During the process, I made sure to let my teammates in the backend know about the changes to the data structure so they could adjust their work as needed.
Once the backend was nice and shiny the process of going through everything on the frontend and getting it adjusted was next on the list. Thankfully with modern tools, it was not too painful. Drifting on over to the front end, by the light of the moon, I snuck my branch in making changes wherever they were needed. In the morning I made sure to communicate the changes to my frontend teammates, of course, so they could adjust accordingly!😇
THE SPOILS
Goodness, gracious I am exhausted!
The team working on this project all put in an amazing amount of effort to deliver some very real and very powerful progress in a limited amount of time. We got many parts of the main functionality of the app up and running and are leaving a solid groundwork for the next group of developers.
After all of this incredible effort from such a diverse team both technically and demographically, a great realization finally dawned on me. I’m sure you have all heard or read it before, communication is paramount!
The actual truthiness of this fact did not become clear to me until this very moment, in this very project. NO ONE is going to ever know all the things! The KEY to building a successful full-stack app is FULL-STACK COMMUNICATION Don’t you ever forget it!
Thank you for reading! 🙂