Monday, August 27, 2012

Evacuate! Dealing with natural disasters.



Ah, the joys of working in New Orleans during hurricane season. Today I spent most of my day executing our poorly planned strategy to deal with natural disasters. Beginning with finding out what everyone's plans were.

Are you evacuating? Y/N
Are you planning to work? Y/N
Do you have what you need to work remotely? Y/N


These are questions I wouldn't have normally had to ask in our prior remote-only working environment. But we moved in to an office about a year ago and since then have grown comfortable with on-site servers holding critical data and things like that. We have offsite backups, which is great because we can't lose any data. While that's critical, it overlooks another very important component of dealing with disasters:

Service Continuity.

With a firm of 15+ employees, every day counts when contributing to payroll, and the work we are performing. Our employees time is what directly generates nearly all of our revenue, roughly a $100/hr average per employee. So what happens when 15 people who generate $100/hr for the company suddenly can't work for a day? Math time!

That's right, $12,000 of lost revenue... per day.

While this may not seem like much in the grand scheme of things, cash flow is usually tight for small companies, and natural disasters like hurricanes can always present the possibility of lost income. So what did we do faced with an impending hurricane?

On-site document storage server
We use a NAS (Network Access Storage) to store contracts, scanned checks, company policy documents, training documents, and company processes. In order to make sure these things were still available in the event of a hard disk crash, we bought a team Dropbox account and have it synced with that. That's sort of an "oh-shit" backup solution that isn't great, but could end up saving us one day, like tomorrow for example. We were able to open up the backup dropbox account to our team in order to give them remote access to the NAS, even if power goes down in our office.

On-site Windows development server
The portion of our staff working on Windows development do not work on local machines. They instead remote in to a Terminal Server across our LAN on gigabit ethernet lines. This is neccessary due to the system configuration involved in making a Windows machine play nicely with the variety of software needed to develop C#.NET applications, MS Access, and Silverlight. So what happens when this server goes down? Noone can work any more. Our solution here was to export our VMWare images of the various Windows images we develop on, and export it to an Amazon EC2 AMI. We were able to export this AMI and get it up and running on EC2 in no time at all. Setting up a VPC/VPN was equally trivial, and now we're locked and loaded and everyone is ready to work remotely.

While we were able to get these two critical systems in to the cloud before the hurricane hit, that was only *just barely*. We really should have done this switch sooner. If you work in an office were critical data is stored locally, consider moving things to the cloud (at least as backups) before you are on the receiving end of your own natural disaster.

Saturday, August 25, 2012

What I want to know when hiring developers.

I was thinking the other day about how I try to quickly evaluate someone's developer chops during a phone interview. One of the things I try to do is ask something baked in to the theory of what people learn from school. This is less about trying to see if someone has a formal education on the topic, but more that they are alternatively the type of person to read about these things. I think that's a really strong character trait; the interest and motivation to independently learn the ins and outs of your field. There's no real reason a programmer can't go throughout their entire life never spending much time learning about design patterns, or how the compiler works, or other academic subjects of computer science. They could still very well succeed in their career, and be perfectly happy, but maybe never truly shine as a star. But, when I am evaluating a prospective employee, I tend to care about things like this. I want the guy who is passionate about what he does. I want the person who will help try and drive us towards goals, and not just be clocking in.

Another thing I like to be able to evaluate is how a developer will make technology decisions. They will certainly be using their judgement on things throughout any project, so hopefully their judgement is good. I recently came up with something that I think may show how someone thinks. It's a simple question:

"How would you build a clone of twitter if you could only write 20 lines of code (in any language)"

The answer from the Prima Donna developer may sound something like this:

"I would set up a mongo database with the schema for tweets, and then write a small series of small scripts that can handle the functional requirements in a lisp-like DSL I'm working on right now."

The answer from a new developer, or graphic designer may sound like this:

"I would do a wordpress install and see if we can get some of the social plugins to function like Twitter."

The answer from a developer who is interested in startup culture:

"Before we do that, we should set up a landing page with exclusive invites only to test the demand for this Twitter-like product"

and so on...

There's not specifically a right or wrong answer to this question, but based on the type of ship you are on, these answers can be very revealing. This does a lot to check prospective employees as cultural fits. The question can reveal for example, that the developer has a cost-cutting attitude that may be perfect in a services firm, but horrible in a vc funded startup.

Monday, June 22, 2009

iPhone review process

I think twitter has spoiled me in to thinking I can write a one-sentence statement and actually be contributing something to the internet. Maybe it's time to start writing in my blog more, it's been 4 months. All I have to say right now though is that I have been incredibly busy for the past 4 months with my clients, and on the side I wrote an iPhone game. The game is sort of a joint project with a friend of mine, and we really probably only spent 3 or 4 working days time to build it. I submitted it to the app store about a week ago, but we are still in the App Review queue. I will report back here any further details on how it goes... It seems like I should be more excited about my first actual product, but somehow I guess I'm not feeling it. Probably because we made it so quickly I don't even have any attachment to the project. I guess this is more of an experiment with the App Store, and a test of my 2D engine. Well, wish me luck!

Monday, February 9, 2009

How I Defeated The Cybersquatters

So here is my valiant story of how I crushed cyber squatters and their 'acquisition fees.' Let's start at the beginning.

ACT I:
In December of 2008 I attempted to register a domain for my company, which I had created a website for locally. The name of the company was JQ Software, and it was about time I made my company known outside of my local area, and broadcast my company across the internet. Clearly, the most logical domain would be jqsoftware.com. So I went to godaddy.com and attempted to register the domain, only to find it was owned by someone who put a parking page on it. Nothing but ads.. maybe jqsoftware.org is available? Nope, same page.. jqsoftware.net? Bingo! I now had a domain and I didn't even resort to using a different company name and recreating my business identity from scratch, hooray!

ACT II:
My website has been up for a little while. jqsoftware.net is up and running, and already generating additional business for me. Everything is wonderful, although I still wonder why jqsoftware.com is taken. There is really nothing on it. On December 28th I get the following e-mail from "Zip Domains."



So wait a minute... They bought this domain for $10 before I did, for some ungodly reason.. and then waited for someone to register jqsoftware.net so they could try to sell the domain to them, and for $199!? Honestly, $199 is not a major business expense.. I thought about it. I decided I would pay the fee to get my precious .com domain. But I would wait until I finished the job I was on before I started spending money and working more on my web presence. A few days pass and I get another e-mail, from Zip Domains again.. I guess they got impatient with me when I didn't fork over the $199 dollars. Here is the second email:



December 28th to January 1st. That means they waited four days before contacting me again. There's something different about this e-mail though. I can't put my finger on it, but it is apparently worth 100 fewer dollars. The first e-mail said 'if we are successful', now this e-mail simply says the domain is available for a one-time fee.. so they already have the domain now? How curious, they tracked down the owner of the site and purchased it from them only to send me a new e-mail about how I could pay an extraordinary price for it.

ACT III:
8 days has passed and I've pretty much decided I don't want to deal with these cybersquatters and encourage their unethical ways. I get a new e-mail, this time from someone named Dan Johnson. He works for domainsupplyengine.com, apparently. Interesting sidenote - this website DOES NOT EXIST!



It says in the e-mail that if I do not respond they will just auction the site off to the highest bidder. In the event that someone actually wants this domain, I am going to have a problem. Whoever chooses to buy this may pay a larger amount than $99, or even $199. After I contemplated this I came to the realization that I owned a trademark on JQ Software; and most likely there is noone out there who wants to start a website with that domain name. So when there is no demand for something at an auction, that means that noone will bid, right? If noone bids, Mr. Dan Johnson will realize he's holding a "worthless" domain, it's literally worth $0.00 because I'm unwilling to buy it, and noone else can use it because I hold the trademark on the name. So, it would appear the best course of action is to wait until the cybersquatter puts the domain on the auction, and then refuses to pay a renewal later. This works for me, I'll just buy it when it expires in a year. Although, I did some reading and it turns out that registrars can actually reserve a name for extremely cheap prices, or even for free for 1 week. Is it possible these guys have been 'reserving' this domain for free on a weekly basis, and is that why I got 3 emails in 3 weeks? If that's so, the resulting auction combined with the fact they have to keep this up means every week I could try to purchase the domain. Let's analyze the dates on these e-mails:

12-28-08 [The Wednesday following a Christmas holiday Sunday]
1-1-09 [4 Days later, a Sunday]
1-9-09 [8 Days later, a Monday morning/Sunday night]

It seems like this thing is getting tossed back and forth on either Sundays, Mondays or Wednesdays.. So let's just try to register it every Sunday, Monday, and Wednesday. One of these days must be the weekly time that it gets renewed for these registrars, and then the other is just a lag effect when they finally e-mail me about having it.

ACT IV:
Every Sunday, Monday, and Wednesday since January 9th or so, I attempt to register my domain name. And well.. I think this one last e-mail speaks for itself. I'd just like to thank the cybersquatters for an exciting adventure. And I just wanted to write this post to let you know that I won. Now if you would, please get a real job and stop trying to take advantage of people.

Friday, January 30, 2009

Microsoft Office Outlook XP Pro Vista Premium Enterprise Edition Plus


So I moved out of the spreadsheet world in to some real business software, but now I'm feeling like my computer has way too much running all the time. Is the Outlook+Quickbooks combo the only viable option for managing a business? I've looked in to some open source options, and for the most part it all seems underdeveloped. It seems a little ridiculous that if I want to sync contacts across my gmail, iphone, and quickbooks, outlook has to be involved for some reason. And to send out e-mail invoices, quickbooks uses a client-side e-mail client, which again points to Outlook or something similar. Why can't Intuit include a little e-mail relaying part of their software? It all seems kind of ridiculously convoluted to make all these things work together. In the meantime my computer is getting slower and slower dealing with this business software while I'm trying to work. Perhaps manually doing everything in google spreadsheets wasn't so bad after all?

Tuesday, January 27, 2009

iPhone SDK 2.2.1 released


So the SDK update is finally here! So what's changed? According to diff, NOTHING! Perhaps they accidentally released 2.2 with the 2.2.1 label? Rumor has it, the update is a bug release, but diff shows no changes whatsoever between the two releases in the documentation. Whatever they fixed, they aren't talking about it.

Monday, January 26, 2009

Breakfast, Lunch, and Dinner


+




So, this is what I ate today.
Running a business takes a lot of your time.