How to Support Social Justice Work as a Developer
With millions of supporters marching, organizing, and showing solidarity, the Black Lives Matter movement may have become the largest movement in U.S. history, as reported by The New York Times. And this fight for social justice is happening at the same time as people across the world navigate being isolated and distanced from one another due to the pandemic.
If you know how to code, that skill can allow you to support social justice movements, although that may come as a surprise. When you think of activism you probably envision protesting in the streets and not sitting at a computer. But with tech skills, you’re uniquely poised to have an impact during a time of global crisis and reckoning.
You don’t have to have decades of experience or a full-time job in tech to have an impact. Even if you are currently learning to code or in the process of making a career change into tech, you can play a role in fighting for social justice.
As a software developer myself, I’ve been digging into what it means to use tech skills to contribute to social justice, and racial equality in particular. I’m sharing with you my ongoing research on how to use your skills as a developer to participate in social justice movements.
5 Concrete Ways to Support Social Justice Movements with Tech Skills:
- Contribute to existing social justice projects
- Create a project with free, open web APIs
- Empower underrepresented people in tech
- Keep social justice in mind while you’re coding
- Educate yourself about social justice issues
1. Contribute to existing projects for social justice
Launching your own social justice project from scratch might be intimidating at any point in your developer career. And it can be especially difficult if you can’t access reliable data or documentation. A more approachable option: contribute to an existing project.
Websites like Code for Social Good and Catch a Fire allow you to discover projects that need volunteers with technical skills. There are also organizations like Code for America, where teams build projects like Clear My Record. Clear My Record gives people with criminal charges the chance to remove a record after a crime-free period.
Before working as a software developer, I thought of coding as solitary work. I thought I’d be hacking away on my own until I finished and perfected a project. I was pleasantly surprised that collaboration is critical for a successful product, from planning to pair programming to code reviewing.
Meetups and hackathons are particularly collaborative (even if they’re currently virtual). Some events are centered on initiatives like social justice. They can provide participants a chance to meet people who have a common goal to research issues and build towards progress.
At Civic Hacknights (now remote), developers come together to work on local civic issues. The Community Civic Hacknight in Chicago, for example, encourages people with tech skills to work on ongoing projects like Chicago Councilmatic.
(The Chicago Councilmatic project allows users to search and see decisions of the City Council. This particular ordinance is to publish closed complaints against the police to the public.)
At Progressive Hacknight, participants work on projects like visualizations of public election data, Covid data mapping, and Spoke, which is an open source tool for organizations to communicate actionable information to voters, supporters, or members. They also have speaker nights with topics such as criminal justice and tech organizing in immigrant communities.
Hackathons are also a great space to work collaboratively, learn more about social justice issues, and work towards solutions. Events like Hackathons usually urge participants to build within a finite scope of a few hours or days of work; they also give participants new vantage points on relevant issues by meeting people and hearing from informed speakers. At times, projects from hackathons continue to be worked on and improved — like the 2014 Hacks for Humanity winner, ArkHumanity. This October, Hacks for Humanity has a specific track that concentrates on projects for justice.
It can be tough to find projects to contribute to, since there’s no single resource or group where you can find social justice initiatives that would benefit from your skills. My best advice is to stay active in your local or online tech community and start conversations about social justice with other developers.
2. Create a project with free open web APIs
Interacting with web application programming interfaces (web APIs) is a common part of web development work. What are web APIs? They allow developers to access, create, and update information from another source. If you choose to work with one, ensuring that there’s sufficient documentation and tests around the API will help you in your development process.
In relation to social justice, people have created and used APIs for a variety of different projects. Developers have built static and interactive data visualizations, resource lists, and communication systems to educate and mobilize users.
Let’s look at an example.
Police brutality is a focal point in the Black Lives Matter movement. While information on police violence is largely inaccessible to the public, this API amasses incidents of brutality during the 2020 George Floyd protests. People have accessed the data from this API to make projects like this visual timeline of incidents:
(The Fight for Justice 2020 website uses an API hosted as a Github repository. They’ve used the data to build visuals like this timeline of incidents per state.)
The above API is hosted on GitHub as an open source repository. It continues to be updated and people are encouraged to contribute information.
Making data visualizations interactive can also help users learn about pertinent social justice issues. This map (below) of congressional district lines from the ACLU shows how districts have changed over the years, impacting the outcomes of elections and laws per district.
The map is interactive — it asks the user to enter their location to see their county lines change as they scroll. Though the map is powered by a copyrighted API of congressional district boundaries, the final product is a great example of how to use data to build something educational and interactive.
Another example is the Open Civic Data API. It allows access to data about legislation and local governing bodies. The API powers projects such as Chi-councilmatic. Created by the DataMade team, the aim of this project is to demystify the ongoings of Chicago’s City Council. The API and the project code come together to enable users to search legislation on the Chicago Councilmatic website. The project goes beyond Chicago too, encouraging users to make contributions and to bring Councilmatic to your city.
With access to a web API, you can fetch results from an existing source. For example, with the Open Civic Data API you can see the list of endpoints you can access via urls here. Usually, the repo will contain information on existing projects powered by the API such as these open source projects powered by the Open Civic Data API.
Even without using an API, creating an impactful project is possible. The social justice movement is happening on a global, local, and individual level, so sharing valid resources that people and orgs can access can have a huge impact. This repository of anti-racism educational resources, while it does not use an API, is a great example of a simple project that can make a big difference even though it’s not technically complex. Another example of a project that shares resources without an API is the Justice in June project. The website offers a roadmap to becoming a learned supporter of the social justice movement and actions to take.
3. Empower underrepresented people in tech
If you want to use technology to promote social justice, one way to do that is to lower the barrier to entry for underrepresented groups in tech. Year after year, people look to Big Tech’s employment demographics hoping to see a shift towards greater diversity in the industry — yet demographics haven’t changed substantially, and people of color are still marginalized. The percentage of Black employees at Facebook, for example, has only increased from 3% to 3.8% over six years according to this CNBC article.
If you’re not in a position to hire, you can still take action to make the on-ramp to a tech career more accessible to people of color, trans and non-binary folx, and others underrepresented in the industry. There are existing organizations with the aim of empowering underrepresented people in tech, and you can work to support them by providing services, donating, and more.
Black Girls Code provides technical training and resources to women of color, in the hopes of increasing their presence in the industry. The organization aims to equip one million girls with technology skills by 2040.
The Hidden Genius Project focuses on training Black male youth with technology and entrepreneurship skills. They also provided a helpful list of more organizations that support Black coders and entrepreneurs.
Team Blind put together this list of groups, which includes LGBTQ in Technology, which focuses on providing a community and support for anyone identifying as lesbian, gay, bisexual, trans, queer, and/or gender-nonconforming.
Black Girls Code and The Hidden Genius Project have a variety of volunteer positions that are technical, from leading workshops to instructing to IT support, but they also have social media, office, and non-tech options.
Learning tech skills is a first step towards joining the tech workforce. However, knowing how to land a developer job, finding an inclusive company, and growing as a developer is also vital information for starting a career in tech. So if you find yourself in a mentorship position at an organization, it is valuable to share these career building steps as well as your coding skills.
4. Keep social justice in mind while coding
Right now, many people are taking a closer look at their own inherent biases and behaviors and beginning to work toward actively fighting against racism. That includes people in tech.
As developers, our instinct might be to jump into developing more products to solve problems, however, more technology is not necessarily the solution. In any project, whether it is a social justice initiative or not, developers are rethinking the ways that the code itself either upholds systemic racism or fights against it. To create an inclusive community of developers and end-users, the way we work day-to-day needs to reflect those goals of inclusion and anti-racism.
One way to do that is to remove triggering terminology in code. Across projects and companies, developers are working to eradicate words rooted in inequality, such as “master,” “slave,” “blacklist,” “whitelist,” and “redlining.” Developers are opting instead for words like “primary,” “replica,” “allowed list,” and “blocked list.” Individuals and companies are taking this step in order to make tech more inclusive. The change validates how team members are impacted and influenced by interaction with code that reaffirms hierarchical constructs and terminology rooted in a history of slavery and violence against Black people.
Beyond these coding terms that are shared between developers, insular coding impacts end-users. Making assumptions about users can lead to algorithms, features, and products that mirror the same biases. “You are not the user” is a fundamental User Experience lesson — which extends to thinking inclusively while coding. The author of this Time article describes being subjected to racist results returned by Google’s search algorithm and the cost for all users. For the search words “three black teenagers,” for example, the algorithm previously returned mug shots while returning wholesome images for “three white teenagers.”
When a company designs and codes a website, app, or tool that isn’t inclusive and overlooks the experiences of many users, it is often a sign that the team that built the product also has a diversity and inclusion problem. In other words, if your team isn’t representative of your user base, it’s unlikely they’ll create a product that takes all users into account. This Atlantic article uses the example of TSA security scanners that can’t distinguish the underwire of bras and curly hair from potentially dangerous weapons to demonstrate the diversity problem in tech. If the final product did not ultimately work to serve everyone, who was in the room to build and test it? If someone who wore an underwire bra and had curly hair was on the team, they might have caught that problem before producing the scanners.
5. Educate yourself about social justice issues
Being able to code is a powerful skill, and it’s often associated with privileges and perks — from free snacks and epic benefits to high salaries and enviable job security. But the profession is not accessible to all and, therefore the industry is yet to be diverse or inclusive. That exclusivity in itself allows its participants to be isolated from issues impacting whole sections of society. As designers and developers, it’s our job to educate ourselves about people, languages, outcomes, and history, so we can solve real problems with technology.
These resources on Black allyship are some of my favorites, and a good place to start with social justice self-education:
Justice in June provides a roadmap to becoming an active informed ally.
The 1619 Project is committed to unveiling the real impact of slavery as it permeates every component of America.
Tech skills can seemingly be about solely interacting with a computer and earning a high salary. However, technology has an impact that’s beyond the individual. This is especially true when you code for social justice initiatives.