By: Elizabeth Johnstone

Since moving to Philadelphia this past July, I have been trying to meet more people and get acquainted with the tech spaces here. In doing so, I stumbled upon a post in a Philadelphia-based tech group that mentioned Code for Philly and the fellowships they offer. With no real expectations, I decided to take the plunge and apply. I was both surprised and excited when I heard that I had been selected as the 2022 Front-End Development Fellow. This fellowship took place over two months and involved a deepening and broadening of my technical skills, as well as an opportunity to apply those skills to an important cause.

My background and goals

Before pivoting into the field of technology, I worked as a language teacher and social science researcher. In 2021, I decided to make a career change. I undertook a full-stack software engineering bootcamp, during which I learned the basics of HTML, CSS, JavaScript, Git, and Github, among other technologies, and I chose to do the React web development specialization that my bootcamp offered. Since graduating bootcamp, I have been working in tech as a web content manager. I have had the opportunity to learn exciting new technologies in my role, but I did notice that I was beginning to forget some of my coding skills, as I do not engage with code on a day-to-day basis.

I had several goals in applying for this fellowship. First of all, I wanted to have some structured time devoted to improving and maintaining the coding skills I learned during my bootcamp. I also hoped to meet more people involved in tech, especially in the Philadelphia area. Finally, I was looking to merge my newfound interest in coding with my interest in contributing to social justice. In the past, I have volunteered and interned with several organizations that advocate for important causes, but this was the first time I was able to apply technical skills to that kind of work.

Code for Philly and the PLSE Expungement App

The project that I worked on was for Philadelphia Lawyers for Social Equity (PLSE). PLSE is comprised of lawyers that provide free legal advice and representation to low-income residents of Philadelphia with criminal records. Broadly, their mission is to seek a more equitable social environment for those with criminal records through representation, education, research, and advocacy. A central component of their work involves seeking expungements in criminal court.

Code for Philly’s work has intersected with PLSE’s in the creation of an app that facilitates the filing of expungement applications. The app allows lawyers working for PLSE to upload pdfs of a clients’ criminal dockets. The information from the docket is then pulled into an editable form in the app. Once the user is satisfied with the form, they can click submit, and a formatted expungement petition will be automatically downloaded, which can be opened in Word. This expungement petition can then be sent to a judge to apply for criminal record expungement.

The expungement app is built with React, Django, PostgreSQL, and MySQL. Since the fundamentals of the app had been mostly built-out before I began working with Code for Philly, my role was to help with some much-needed improvements. The tasks I worked on were mostly front-end, React-based tasks.

My role and contributions

This fellowship was the first time I worked on a project with existing code. During my bootcamp, I created several independent projects, but I never had the chance to work with others on an app. During the first week of the fellowship, I spent time looking through the existing codebase, in order to familiarize myself with the way the app had been set up and how everything was organized.

An issue that arose was that I realized my Git knowledge was not as sufficient as I had believed it to be. Since I had never worked on a project with multiple contributors, there were many basic Git commands and concepts that I had not previously encountered. With the help of a Udemy course and the project team lead, Travis, I slowly began to catch up to speed.

In addition to Git, this fellowship offered me the chance to familiarize myself with Github and Slack. Through my work and my bootcamp, I have gotten used to different technologies such as Jira, Teams, and Discord for tickets and daily communication. I am glad that now I feel comfortable sorting through GitHub issues and communicating with team members via Slack as well.

The following is a list of some examples of tasks that I worked on during the fellowship:

1. Form validation: I previously mentioned the form that is involved in the process of generating an expungement application through the app. I worked with Travis to set up form validation for that in-between step, to check that necessary fields are filled in and that they are filled in correctly. For example, the app now does not allow submission and notifies the user if the Social Security Number field is not 9 digits long.

2. The nav bar and a secret page: Another fix that I made was to the nav bar. I noticed that the “sign up” button was still displaying after a user had logged in, so I wrote some code to prevent that behavior. On a related note, while I was looking through the codebase, I discovered a page that had been built out, but was only accessible by editing the URL and had no entry point. It was a page that displayed profile information and allowed users to edit their profiles. I created an entry point to that page, having it replace the “sign up” button in the nav bar after a user had logged in.

3. Sign-up form and sign-up functionality: An existing GitHub issue that I decided to work on was to add the ability to choose a role (lawyer, intern, or staff) during sign-up. While working on this and testing it out, I realized that I could not actually create an account. I worked with Travis and one of our mentors, Ten, to investigate. In doing so, we discovered a larger issue with the Sign-up functionality. We realized that the user data was only being saved to local storage, and not to the database. Resolving this issue will be a pretty large task that will require working with the back end and the database. We created another GitHub issue for this so that it can be looked into in the future. Unfortunately, we have not yet solved the issue, but I am glad that we discovered it and are aware.

Wrapping it up and looking ahead

To conclude, I am happy to have been able to take part in this fellowship with Code for Philly. It was a great opportunity to continue to grow my development skills, to get to know more people in tech in the Philadelphia area, and to apply my coding skills to a worthy cause. I would definitely like to continue to help out where I can, and I am very thankful to the mentors and the organizers for their support and for putting the fellowship together!