Profanity.yaml

My first task at Square two years ago was to ensure that bad words don’t appear in our randomly-generated IDs. Once upon a time, a customer tweeted a screenshot of Square receipt with ID starting with “porn”. Even though this was very unlikely to happen again, my manager and I decided to prevent future embarrassments altogether.

So I wrote a logic to filter out bad words, and committed a corpus of profanity I found on the internet as a file named profanity.yaml. Ever since then, profanity.yaml became a source of entertainment and wisdom. Spelunking coders found this gem while digging through the most secluded caves of Square’s codebase. Many were amused by the mere existence of this list while acquiring some interesting vocabularies. (How can this word be bad? Let me Google that — OH GOD MY EYES MUST UNLEARN)

As time went on, a small circle of engineers started to treat profanity.yaml as something … sacred. It became a running joke that we will add our own names to the sacred list before departing Square. Fortunately, we never had to plan out the actual execution of it, since no one was about to leave us.

Until last week.

Anjan, an awesome engineer but more importantly a faithful cultist of profanity.yaml, was about to leave Square. This was the first opportunity to carry out the ritual that were only discussed! However, we were hesitant. Should we actually do this? This is like vandalizing a secluded corner of the office with a small graffiti of our name. Sure, most people won’t see it, and even if they do, they’ll have zero context to understand it — just like how “John ❤ Jane” carved on a tourist attraction has no meaning to us.

Clock was ticking and the end was coming near. Friday was Anjan’s last day, and we were still hesitating. At the last minute, we decided to carry on. A temporary alter in the form of a git pull request was prepared. I recited my eulogy — “Anjan definitely deserves to be on this list. We shall remember him forever by never generating IDs with his name in it”. Council members signaled their approval by stamping LGTM (looks good to me) on the pull request. Meanwhile, CI bots cranked through the tests to see if Anjan’s name will break any laws of the universe. Flaky tests continued their futile resistance, surrendering to the mighty force of retry-build button. Anjan clicked to merge the pull request and bam! Anjan’s name became immortalized in profanity.yaml.

At the end, we work for different things. For money, knowledge, fame, or respect. But my favorite is this — desire to be remembered, or fear of being forgotten. Not an universal desire or fear but many sympathize with them regardless. At least for me, that was the meaning I channeled in this ritual. Moreover, I found this little ritual very interesting. Something small and childish, with no fame or fortune attached to it, but still satisfying our desires to be remembered within the circle.

Didn’t the fox tell us that rituals are important and yet often neglected?

We’ll forever remember you Anjan. Even after we are all gone, the list will continue to remember you. Until the list itself turns into bits of dust. Or is it dust of bits?