Lambda School Labs — Human Rights First: Asylum

Andrew Lee
6 min readAug 24, 2021

Towards the end of my time at Lambda School, I had the opportunity to apply my skills to develop real-world applications in an agile development environment. This experience is called Labs, and is meant to put students in a production environment where they can build a real-world product before they graduate. For my Labs project, I had the opportunity to work with Human Rights First, a nonprofit organization that challenges the U.S. government and private companies to respect human rights and the rule of law. I was assigned to help build a product for the Asylum team, which helps people who have fled dangerous situations in their home countries to obtain asylum in the United States.

The problem our team was trying to address was the lack of information and analysis on previous asylum cases. When lawyers fight for asylum-seekers, they need the best information and analysis in order to create compelling cases. The product our stakeholder wanted to build was a dynamic visualization tool that visualized the outcomes of previous asylum cases by judge and specific protected grounds. The goal of this tool is to help lawyers craft convincing arguments by understanding how certain judges tend to rule based on protected grounds. This was the feature that I worked on.

Other team members worked on a scraper tool that allows users to upload court documents of asylum cases and scrapes the data to put into our database; this was not something I worked on directly but another portion of the project that I mention later.

Going into this experience, I was extremely excited to put my skills to the test and build a real product that will be deployed into the world to accomplish a meaningful mission.

In the Trenches

My role in the development of this product included the responsibilities of a Data Engineer and ML Ops Engineer in industry. I say this because I did a little bit of both. I built an important pipeline in Python & SQL to grab necessary data from our Amazon RDS (PostgreSQL) database, created a beautiful visualization, and passed this data to our backend engineer via a FastAPI endpoint which I had the opportunity to deploy and maintain on AWS Elastic Beanstalk.

In addition to the development portion of the project, I really cherish my experiences working in an agile team environment. Using Git, Docker, participating in stand-ups, sprints, product reviews, getting flamed for PEP-8 inconsistencies, and stakeholder meetings were vital experiences that will help me transition into a development role quickly.

Challenges

The two biggest challenges from the project were getting oriented to the existing codebase and absorbing the necessary domain expertise of asylum cases to engineer a scalable solution.

The existing codebase that we were thrown into was the biggest I’ve ever seen or worked on. As a team, it took almost two weeks just to get oriented to what previous teams built and figure out how we fit into the overall goal of the project. As I mentioned, I worked on the judge visualization aspect of the project and therefore had to speak to many people to get oriented to what needed to get done. I feel that being a self-starter really helped me in this case, because I didn’t have a micro-managing product manager that was telling me what to work on. Two key conversations that provided massive clarity to the project was with our backend engineer and data science lead. These conversations allowed me to start connecting the dots to fully understand the problems we needed to solve, as well as the tools we needed to solve them. This experience taught me that no matter how daunting an existing codebase may be, it’s important to be calm and reach out and ask for help. It’s only after this is done when you can start contributing to your team!

Another big challenge was grasping the domain expertise of our stakeholder in order to engineer a scalable product. Being an attorney herself, our stakeholder had intuitions about important indicators that lawyers would be interested in seeing in our visualization tool. Trying to grasp this domain expertise was a challenge, but vital to the success of our product. It involved weeks of stakeholder meetings and internal meetings to really figure out the relevant details we needed in the development process. At the end of the day, understanding this domain allowed us to create the proper tools, grab the right data, and create a tangible product that was useful to users.

Current State of the Product

The product is almost at Minimal Viable Product (MVP). The user stories that we set out to build were the user’s ability to pick a judge and see visualizations of that judge’s ruling on asylum cases. We also set out to build a scraper tool that allows for users to upload PDF documents and extracts that data and puts it into our database.

At the beginning of our cycle of Labs, no visualization was created or rendering, the pipeline into our database needed to be improved, and the backend engineers didn’t have access to our FastAPI endpoint. These were things I worked on directly in shaping our product. As it stands currently, visualizations are rendering to our frontend, the pipeline to our database is querying more accurate data, and the backend engineers have access to our deployed FastAPI endpoint.

How our stakeholder imagined the visualization to be
What we built (with dummy data)

Future of the Product

The product should expect to go through more iterations, and I can’t wait to see where it goes. In addition to what our team contributed to this project, future teams will build more visualizations for users, so that the analysis of our data can be multidimensional. A technical challenge that I foresee future groups running into is lack of data. Currently, visualizations don’t render fully because of a lack of case data. This issue is being address by Human Rights First and the scraper product should help alleviate this issue in the long term.

What I Learned

I’ve worked on development teams before, but never have I worked in an agile development environment on a product that will be shipped to real users. During my time at Lambda I’ve worked on and deployed projects, but knowing that my work with Human Rights First will go to a great cause that will continue long after my contributions feels like an amazing achievement. Working on this project gave me a real taste of working in a production environment that I believe will help me transition into the industry quickly.

Before I started Lambda School, I thought data science was all about working in a Jupyter Notebook and building ML models with cool visualizations to complement them. Little did I know this whole world of development allows for the productization of scalable data science tools. I’m so thankful for my time at Lambda and the experience I was able to get from Labs. Not only do I have the necessary skills and experiences to contribute to a development environment, but I also have the confidence to put my best foot forward when when I land my first tech job.

--

--