Identity. It's complicated.

Wrong Identity - Scandinavia and the World

satwcomic.com

First off, Scandinavia and the World is a comic I love. You should go read all of them. I can wait, it's cool.

Although this particular comic doesn't perfectly tie into the subject of this post, it involves a Canadian and /curling, so I'm in love.

Identity is something I spend a lot of time thinking about. It's pretty safe to say, without a shadow of a doubt, there is one feature here on Imzy that makes me worry the most. :

image-1471020376543.png

Don't get me wrong, it's a feature I adore, and don't think we could do without, but every action behind the scenes has to do a little bit more heavy lifting because of it.


Identity on the internet is a strange beast all on it's own. Some people have a single identity they use online, others use a collection unique or semi-unique to each aspect of their online life.

Personally, I'm in the one identity camp.

Ever since I first went online, in the early days of ICQ, I've gone by weffey. As far as I know, there are only two other people who use that username. One of those, I've been in the eternal race every time a new service launches, to grab the handle. (Mwahahahaha you're not getting it on Imzy!)

To be truthful, people call me "weffey" in real life too, so to me "Lesley", "weffey", and “wef” are interchangeable, so the ability to have a different identity in each community is not something I personally hold in high need.

However, I completely see the desire, and the need, for people to have the different identities in different places.

A little under a year ago, we were sitting around our ping pong table acting as a conference table (as is required in startup offices I'm told), talking about accounts and usernames in length. At the end of the conversation, we had a goal:

A user should be able to be who they want to be anywhere on Imzy, without ever logging out.

This conversation lead to a few crucial decisions:

  • Anonymous identities: Sometimes, a user may not want to say "Hi, my name is {{some name}} and this is my problem/experience/feedback". The need for leaders to be able to set anonymous identities as welcome, or not, in their community.
  • Being pseudo anonymous in a community: Until the user does an action that requires them be named, we never reveal who they are. Meaning if all you do is vote in a community, you never need to set an identity, the leaders won't know who you are.
  • Creation and setting usernames on the fly: When a user goes from pseudo-anonymous to named in a community, the experience to them should be flawless if they are using an identity they have already created, or are creating a new one.
  • Respect the privacy of users: Only privileged members of the staff can link a user's identities together, and will not disclose that to anyone else who isn't privileged staff.

Ultimately, it’s had a massive impact in how we’ve written our code:

  • Some actions, like commenting, require you be named, even if it is an anonymous name you don’t get to pick, and can’t be reused.
  • When a user does a named action, not only do we check if that user is allowed to do that action, but do it as that identity.
  • If you wanted to watch the network calls we make, there’s only one place we return the unique identifier for an account, and it’s only your own.

Don't get me wrong, this is not a decision I regret at all. It's just the feature that I worry if we make a mistake, could have massive implications, both in someone's online and real life.