Transitive Closure in PostgreSQL
At Remind we operate one of the largest communication tools for education in the United States and Canada. We have...
The Sustaining Engineering team at Remind recently implemented changes that focus on using inclusive language within our codebases. We encourage other engineering teams to do the same, and hope these updates create a more inclusive space for everyone at Remind. Terms like master
and slave
have no place in a modern codebase. They don’t belong inside of our repositories, and they certainly do not belong on a repository’s default branch on GitHub.
At Remind, we have 59 distinct services that power our application. Each of these services has language that needs to be updated thoughtfully and intentionally to ensure that our systems remain available to the parents, teachers, and students that depend on them. We followed the lead of Indeed’s VP of Engineering Jack Humphrey to identify and replace problematic language with the help of this blog post. We also had a number of internal conversations between team members that helped us iterate on the language that we intended to change, which worked specifically for our teams at Remind. Hopefully, outlining the changes that we made can serve to help other organizations working to make their workplaces more inclusive.
We’ve committed ourselves to the following updates:
I began our updates within three of the services that my team – Sustaining Engineering – owns and operates within regularly. The steps that I took to update each of these repositories are as follows:
master
branch and changed to main
locallymaster
branch of the repo I was currently working to updatemaster
and slave
terminology, generally related to databases and updated with writer
and reader
source
and replica
to be more consistent with our infrastructure configurations and dashboardswhitelist
and blacklist
and updated these terms to allowlist
and blocklist
master
to main
on GitHubThe evolution of inclusive language within our codebases requires the domain knowledge of many members of the engineering team. The process is filled with complexities, dependencies, build updates, deployment decisions, and unknowns. Nevertheless, it’s important we continue to take action and make these updates.
This process of using intentionally inclusive language is intended to be fluid and ongoing. As we continue to learn from our employees with varying lived-experiences, we will continue to make updates that strive towards psychological safety and inclusive language throughout the organization.