How Do I Name My Projects?
It is often said that there are two hard problems in computer science; cache invalidation, naming things, and off-by-one errors. This post is about the approach I’ve taken over the years to name things - how I’ve named my projects.
The very first project that I ever really created is also one that I released - called technowax. It’s actually still online today, in a fashion; http://technowax.net/ . I’m ashamed so say now, after all these years that the name was not original - and it was actually a distant family friend who had a web design company, I think it was, called TechnoWax. I’m not sure if they are still around, but I do remember that I thought it was a cool name at the time.
In the early days of learning to write code I started to create a bunch of projects. I would name my projects with a almost random names based on what I was trying to do, rather than the problem I was trying to solve. Examples include;
- first-website
- my-vb-app
- halfLifeMapThing
You can see those are all throwaway projects that have little use to be shared. However when I started to write more useful things and I wanted to share them, I started to think about names a bit more.
By the time I reached University, I was accumulating quite a lot of projects. It made sense to search for categories of things, like names of comets, Greek gods, or the Latin names of animals. You very quickly learn that this is so over done though, and yes, I did have projects with lots of cliche names;
- Andromeda - a friend’s personal website, and part clone of technowax I think!
- Zeus - I think it was one of my first Gaming websites!
When I was writing lots of Java (yes, I know now - but I didn’t know any better at the time), I developed a real fondness for camel case. Projects were a bit more descriptive then, and I started to write my first applications for work, in about 2008;
- AEPEventGetter - A Java Desktop app to read audit logs from hardware VPN appliances and annotate those logs with user information.
- WindowsBuildAudit - A VisualBasic.net app that reads hardware information from Windows CMI and registry settings, and outputs it to XML file for import into a CMDB.
I started feeling that my projects would be easier to find if they had more unique names, and my first approach was using anagrams.
- pFrog (since renamed to PoshFrog) - Free online role playing game.
- TEFSys - a time, expenses and forecasting system - built for my first company from 2008 to 2011! That webapp just rocked :-)
- Sicroc - which is Corcis spelled backwards - the name used by a good friend for one of his projects that I wanted to reemployment.
However, with anagrams you are pretty limited with words you can make up. So I just started making up words for things.
- Erinome - just a random pronounceable word, for a Backup system.
- Faridoon - (which I’ve since learned is a Persian name) - a quotes database
- Yappy - a Jenkins plugin that runs around checking for best practices. (James in 2025: aherm, uninstall Jenkins)
At about the same time, in a totally different community, a friend of mine told me about how he names his machines - after muppets characters! I guess I just found this really amusing, it stuck with me. I like the idea of using silly names that are memorable.
While some people would argue that project names should be descriptive, it’s a problem for me if the project wants to change direction or pivot. It’s also a lot harder to appear relevant in search results with project names like “Windows Build Audit” or similar.
So I started to name my projects after 2 real words - relatively random words, that when combined sound funny or memorable. I think that the very first time I did this a couple of years ago, was OliveTin. Since then, I’ve continued to use this approach, and some of my projects include;
- OliveTin - gives safe and simple access to predefined shell commands from a web interface.
- StencilBox - build data driven super speedy static sites, with sleek templates.
- SpagettiCannon - A personal quality of life tracker.
I think that this approach is the one that works best for me - it’s memorable, simple, and gives people a little laugh :-)