Working on Team Projects

Wei Wu
4 min readMay 27, 2021

The Beginning…

Hello! This is a blog post about how my first experience working on a big team project went and how I realized the importance of communication is key to any team collaboration.

The project I have had the pleasure of working on was a online legal research database for the non-profit organization called Human Rights First, as the name suggests, they are a organization dedicated to the defense of human dignity and the rights & freedom of people everywhere. It was truly amazing working with them on this project and the realization that I was taking part of the creation of this application that would help HRF with their mission, really drove home the fact anyone could help make the world a better place in their own unique ways.

The Project

Now, you might be wondering “Well, what exactly is the project?”, and that is precisely what I am going to explain.

The project, named Human Rights First Asylum (pending official name), or HRFA, is a research database meant for asylum lawyers and policy-makers. In case you didn’t know (I didn’t), asylum (in this case), refers to asylum seekers or “ a person who leaves their country of residence, enters another country and applies for asylum (i.e., international protection) in this other country. An asylum seeker is an immigrant who has been forcefully displaced and might have fled their home country because of war or other factors harming them or their family ” (quote taken from Wikipedia), and these asylum seekers are the client for asylum lawyers. Now that we know who are the users of the application are, how does it help them? HRFA is a database that aggregates asylum case data which would allow the asylum lawyers to better prepare their cases and allow policy-makers to find ways of improving our legal system.

Getting Started

When we (me and the team) inherited the 10,000+ line codebase we, as you would expect, were very, very, confused (or at least I was). It was the first time I worked with such a large codebase and in such a large group, we had around 20 members with a healthy mix of 8 Web Devs and 12 Data Scientists. Now, along with the codebase we were also given a roadmap for the features requested by HRF with a deadline of one month, thankfully the list of requested features was not long and I, in one way or another, ended up being responsible for two of them, bulk case upload, which would allow users to be able to upload files in bulk (at that time users were only able to upload one file at a time), and a case upload queue, in complementary to bulk uploading which would allow the user to be able to see the status of their bulk uploading queue.

Building

The first feature, bulk upload, was quite honestly, very easy to implement, the existing upload system in place only needed a few tweaks to allow it to handle multiple files, so props to the previous team for making it so easily configurable but the case upload queue was not so agreeable. Since this was a brand new feature I had to create a whole new component for this feature. Now normally, this would not be a huge issue, however, the codebase we inherited was composed of a mix of Material UI components and Ant Design components and I was not sure which one I should use. Thankfully, after approaching this topic with other members of the team, we decided to hold a meeting to make a decision either keep both MUI and AntD or, discard one and convert it over to the other and after much discussion and debate, we decided to keep stick with just AntD.

With this decision made, I now had a direction to pursue with the front-end side of the feature, however, the back-end was another issue. The issue I had with the back-end was that I had concerns with the database schema and how it was set up so I needed to overhaul the schema. Fortunately with the consent (and help) of the team we were able to clean up the database and make it ready to hold the new data for the new front-end component. Now that the front-end and back-end were completed all I had to do was combine them and voila, a new feature built completely front-end to back-end.

In the End…

Now, while I said I was responsible for these features, I in no way mean I did it single handedly, I have received help from multiple teammates, multiple times and these features would not have been completed without them. If there was a main take away from this blog post, it would be the fact that while getting thrown into a large group for the first time (or any time really) might seem daunting and overwhelming, as long as you maintain your cool and communicate well with the team, you will be able to accomplish amazing things in a very short amount of time. Shout out to my amazing team, Team Crunchwrap.

--

--