Before I get into the details, remember that persistence is critical in this. In my last job search, I lost count how many jobs I applied to. I also had one where I was sure I got the job, and they called to tell me why I didn't get it. I got really discouraged for a couple days, and then resumed the job search. Keep at it. Remember, you only need one big hit.
Interviewing for Programmers
Interviewing is a funny thing. In order to get hired for a programming job it's most important to interview well. Getting hired usually doesn't have much to do with programming skills. This is typically a pain point for programmers. Many of us feel that the hiring process should be changed. Personally, I'm ok with the hiring process as it is. It could be improved, but I'm going to tell you how to get a job anyway.
Importance of Side Projects
Side projects are important for a few reasons. Programming is a creative process. Side projects allow programming without deadlines or restraints. Side projects allow programming in an exploratory way.
Generating Available Domain Names
It's a ruby script that loads a dictionary of common words, restricts word length, combines two that start with the same letter, and issues a whois query to check if it's available. Feel free to tweak it to your own needs. It also has some sleep calls to avoid flooding the whois server. Let it run for a couple days, see what comes out.
Rails 3 Email Validation
Most email validation I've encountered goes bananas with regards to regexes. The programmer tries to strictly adhere to the spec (rfc 822) in a regex. Not only is this task difficult and error prone, but there are functional email addresses out there that do not conform to the spec. Not to mention the resulting regex often looks like this.