Frequently Asked Questions

If you have a question that's not answered here, please send email to johann@rocholl.net.

This is awesome. Can we hire you?

Yes, here is my resume if you're interested. I'm currently based in Seattle, but will relocate if you make me a good offer. I can work in EU (citizen of Germany) and USA (permanent resident).

What qualifies a domain name to appear in your list?

My list is a fairly random sampling of the huge search space of available domain names. I'm planning to keep adding more names in the future, trying to strike a balance between good names (short but readable) and more names (requiring more storage). Fortunately, the App Engine Datastore has linear complexity for the number of query results, so adding more names doesn't slow down the searching.

Where are you sourcing the data from?

Most of the names are from daily listings of expiring domain names. Some of the shorter names are generated with simple Python scripts (combinations of letters or short dictionary words). I'm planning to keep adding more names in the future.

How frequently do you update domain name availability?

Currently all DNS results are updated within two weeks, and "good" names more often. The update period for obscure names may be extended in the future, as more names are added to the database.

Why don't you dynamically extend your database if you have a miss?

Because we can't run DNS queries inside Google App Engine. Instead, I query the DNS results from a VPS and feed them into the datastore using remote_api.

Why are you doing DNS queries to determine if something is free? You can find registrars with APIs you can ping and check availability.

Because I'm running these queries in advance and storing the results in the datastore. Then they can be loaded instantly when the user starts typing a keyword. With parallel DNS queries, I can update millions of domain names every week. I believe the registrar APIs have usage limits that wouldn't allow this.

What is the backend written in?

It's written in about 2500 lines of Python, using Django 1.1 (app-engine-patch) on Google App Engine. The full source code is here: github.com/jcrocholl/nxdom