I went on another interesting/pathetic job interview. The owner actually seemed competent, but I felt sorry for him. He had 40 years of experience in his industry. He recognized that the legacy operators weren’t adapting to the Internet correctly, and wanted to develop a website that competes with them.
He said “I went to the websites of my potential competitors. All of their websites sucked!” I certainly believed that. There are lots of people with money and an idea, but lacking the ability to hire competent technical people. One example is the lousy delicious rewrite.
Overall, it was a sound business plan, ONLY IF he could hire someone competent to implement his vision. It isn’t enough to have money, an idea, and a good business plan. You also need to hire competent technical people. Otherwise, you’re just throwing your money away. If the founder has no technical ability, he’s guaranteed to hire a good liar rather than someone competent.
He hired an outsourcing firm to implement his website. Based on a brief inspection of the website and code, it was a pile of junk. It had only one page, a search form and results page. Even that wasn’t implemented correctly. It was at most a few days of work.
It was written in the zend framework and PHP. I realized that’s one “advantage” of a framework. If you use a framework, you can throw together a little CSS and a search feature, and now you’ve sold a website to a clueless idiot, billing a lot of money. When you use a framework, you can get a skeleton website implemented quickly. When you try to implement nontrivial business logic, the framework becomes a handicap. After a certain level of customization, the framework is more of a burden than a help.
I briefly researched zend. One criticism of zend was “Let’s implement every single design pattern!” Based on a brief analysis, zend seems to suck. The people who say that Rails and node.js are better than PHP might be comparing to zend and not plain PHP.
The owner said “The website is almost done! It just needs a little tweaking!” I’ve heard that too many times. Whenever you hear someone say that, translate it to “It’s junk and needs a complete rewrite.” The outsourcing firm had milked their client for as much money as possible, and now they’re not implementing any more and he’s moving on.
The owner said “My website had 10 million hits in a year!” That was unbelievable to me, given that it was a POS. I figured out what happened. He hired the same outsourcing firm to implement and host the website. They lied to him about how successful his website was, and he was too clueless to install his own analytics. For example, his Alexa rank is worse than my blog.
Unfortunately, he had hired a 2nd programmer starting the day before my interview. He was nearly completely unqualified.
Unqualified Loser (UL): This website is written in zend. Have you used zend?
FSK: I’ve never used zend. I prefer plain PHP. All my experience with frameworks is negative.
UL: You gotta use a framework!
FSK: In my experience, frameworks restrict you more than they help. Why use a framework?
UL: If you don’t use a framework, your website is susceptible to SQL injection attacks and man-in-the-middle attacks?
FSK: It isn’t that hard to sanitize input to prevent SQL injection.
UL: I tried it and wasn’t able to do it correctly.
FSK: What’s a man-in-the-middle attack? How do you perform a man-in-the-middle attack on a website?
(I’d really never heard of that security flaw before. With some brief googling, if you use SSL keys your website is resistant.)
UL: They mentioned that in school as a reason to use frameworks. I don’t know how to do a man-in-the-middle attack against a website.
I decided to test his knowledge a little.
FSK: What’s the quicksort algorithm?
UL: I don’t remember. It was in one of my classes. The algorithms class was hard. I memorized enough to pass the exam, and then forgot everything.
FSK: I always thought that the algorithms were cool.
FSK: What’s a regular expression?
Someone who claims to have experience in PHP and UNIX should know what a regular expression is.
I also asked the boss if he had a working dev/qa version of his website. He didn’t, but he thought he did. He asked me to take a look. The PC was 10(!) years old. They didn’t have the production server login+password. The PC had mysql locally, but it didn’t have a current database.
I decided to open a PHP file.
FSK: (clicks on .php file – there’s no file association)
UL: Oh no! Dreamweaver is not installed! We won’t be able to view the php code!
FSK: (opens .php file with wordpad)
Here’s a tip. Prefer wordpad to notepad, because notepaid fails with files that have UNIX-style carriage returns. Wordpad does the conversion correctly.
UL: Dreamweaver isn’t on this PC! We aren’t going to be able to push code to the server!
FSK: What about FTP?
(git or subversion also would be an acceptable answer)
The other programmer would not have met my standards, if I was hiring.
On the one hand, the boss seemed really interested in hiring me. He said “Wow! FSK is a genius. I want him working for me.” On the other hand, he also called the unqualified programmer a genius.
If they offered a decent salary, I would have considered it. Anyway, they never got back to me. The owner probably hired someone who will pretend to do a good job while taking his money. There were lots of red flags. It’s usually a bad idea to work for someone clueless. It’s a shame, because I could have implemented a good website for him. Whoever he actually hired is probably an unqualified loser.
Overall, my job search is moving slow. I’m getting some interviews, but nothing promising. The economy must be really lousy.