Trust Boundaries
← Latest writing
2 min readEngineering · Identity

Placeholder names live forever

Naming is one of the hardest problems in computer science, and I'm not particularly good at it. You often start with placeholder names, focus on building the product, and hope to revisit the names later.

IAWeb

Yesterday someone asked me about one of the very first systems I built from scratch: the identity and access management system for NPPES at CMS.

When I started it, I already had other projects in my workspace, so I picked a "suitable" name for this one: IAWeb. We were under extreme time pressure and the name was one of our least concerns. The idea was to pick a better one later. It made it to production successfully. That was more than 13 years ago.

I assumed someone would have come up with a better name by now. I was happily surprised to see it still running at the same address: nppes.cms.hhs.gov/IAWeb.

.sk

That reminded me of the second identity solution I built, in a somewhat different setting: an identity service that powered multiple applications seamlessly. I wrote filters that teams could add to their services as a drop-in dependency.

When you write filters to intercept particular traffic, you want to avoid colliding with the service's existing paths. Instead of a path, I used a URL suffix to avoid collisions.

I just picked .sk, short for Sandeep Kumar.

Years later, long after I had left both the project and the company, a colleague who was managing it brought up the topic. He asked whether I still remembered the details. Product and management wanted to get rid of .sk because it wasn't standard, but no one knew how it was used, and they had googled it extensively. Every time they tried to change it, the service broke.

He burst out laughing when I told him it was just a placeholder for my initials. Pointing him to the exact config file was easy enough.

This time

This time I'm trying to be as universal and generic as possible. Naming some of the functionality and flows is still hard.