Bantling: Name Your Baby With Algorithms

When Chloe and I were trying to come up with baby names, every conversation would go something like this:

Chloe: "New baby name idea: Katana."

Nick: "How do you spell that?"

Chloe: "Like a katana, duh!"

Nick: "People don't know how to spell that."

Chloe: "What about Celeste?"

Nick: "Even if they know how to spell it, they're still going to ask."

Chloe: "Onyx!"

Nick: "That is impractical, because it will not be recognized at first as a name."

Chloe: "Sage?"

Nick: "Is that a boy's name or a girl's name? It's better if it's not gender-ambiguous."

Chloe: "How about Sophia?"

Me: "I like it! Except... is that with an F or a P-H? Plus, isn't it really trendy? Never mind, I hate it."

Chloe: "Let's look at lists of every color, animal, flower, and mineral and find ones that would make good names!"

Me: "Let's embody our preferences in algorithmic form so that I don't have to continue personally shooting down names that you like."

So I did this. I downloaded the entire Social Security name database, which has all 93,600 names that have been used at least 5 times in one year since 1880–everything from John and Mary to Aaqil and Zyree. I then wrote a web app which ranks all the names according to 12 algorithmic ranking criteria:

  1. Spellability: penalizes names which sound similar to other common names, since people will not know how to spell them.
  2. Pronounceability: penalizes names which we think could be pronounced two different ways, or which have Rs in them. (This is not a well-implemented metric.)
  3. Timelessness: penalizes anything that's extra old-fashioned, is extra trendy now, or was a fad name in the past.
  4. Relevancy: penalizes very rare names (which often look like crazy typo gibberish).
  5. Rarity: penalizes names that are very common.
  6. Secularity: penalizes names which are clearly Biblical. (Should also include other religions, but doesn't yet.)
  7. Shortness: penalizes names with many letters or many syllables.
  8. Recitability: penalizes names that aren't easy to spell aloud (due to having W's or slightly unclearly pronounced letters).
  9. Nicklessness: penalizes names that have shorter nickname versions (like 'Nicholas').
  10. Nickedness: penalizes names that are nicknames of longer names (like 'Nick').
  11. Chineseness: penalizes names that would be hard to pronounce for native Chinese speakers due to unfamiliar consonant clusters and other sound patterns.
  12. Genderedness: penalizes names that are ambiguously gendered.

I then put it online as a web app. You drag the twelve sliders (which is a user experience debacle guaranteed to make Chloe vomit in a spiral every time she sees it) to control the weights of each scorer based on how much you care about it. It puts all the names in order from best to worst, and then you start at the top and indicate your actual personal preference with like or hate buttons. So you are still choosing the names, but the app presents them in an efficient order. Partners in baby-naming can then also rank names according to their preferences, and you can see which names you both like.

For me, this was the obvious way to do it. I quickly went through about 3600 of the 93,600 names, liking 76 and hating the rest. Chloe did about 3700 names (different ones, for her different preferences) and liked 81 of them. We then reviewed each other's, often using the phone test, where you pretend to answer the phone with your name ("Kent Winter–err, no."). This left an overlap of about 15 names (mostly girls' names).

Then it was time for the fridge test: we put all the common names on sticky notes on the fridge. Each day we would look up at the fridge, exclaim, "What the hell? "Delta"? NO!" and take one down until only four remained, and then eventually only two: Hazel and Max.

Baby spawned male, so Max it was.

Try it out at It's also open source on GitHub. Of course I basically stopped making any improvements to it the instant it became good enough as an internal use tool to name this one baby, so it's pretty gimp, but it's kind of fun to hate on all the hilarious names that parents be picking.


Hacking on CodeCombat, a multiplayer programming game for learning to code. Mastermind behind Skritter, the most powerful Chinese character learning app.

More posts from

Bantling: Name Your Baby With Algorithms

When Chloe and I were trying to come up with baby names, every conversation would go something like this:Chloe: "New...

My .emacs

Emacs wizards will tell you that it is not merely a text editor, but an operating system; not just a way to work, bu...

The 120-Hour Workweek - Epic Coding Time-Lapse

Last week I set out to see how many hours of programming work I could do in one week on CodeCombat, our multiplayer ...

Upcoming Maniac Week

Starting Monday morning at 04:00, and ending the next Monday at 03:59, I'm going to see how many hours of CodeCombat...

Telepath Logger Now Open Source

A while ago I was working with Yoni on Telepath, a project to make your laptop do passive machine learning on your e...


All Topics