views:

154

answers:

5

I read over this post.

If I plan to hire php developers to help develop my site, how do I distinguish between the great and "bad" programmers? I plan to hire on craigslist, and I'm sure there are tons of bad coders(such as clueless about security, bad design, no OOP, no framework, code all jumbo) but there are also those with amazing skills that just happen to be out of work.

Requirements of the site:

  1. have a section for people to buy stuff, so E-commerce
  2. Site is mainly a Q&A and wiki-like interface (people can ask/answer as well as post their articles and others can edit it in real-time
  3. Use APIs from twitter, youtube, facebook, all the good stuff
  4. Easily customizable, so I can edit the code/design without digging too deep
  5. Uses a framework (I only know CI as of now, so this could cause a problem as most use Zend/Cakephp)

This site would be pretty much like Reddit.com with an e-commerce section. And it's more focused on educationally purposes.

What are some questions I should ask them and what topics should they know so that I know they are skilled and my money won't go to waste. I do have a background in PHP/mysql/jquery/css (1year) so I can distinguish bad and good to some extent.

I plan to check over their resume and look at those previous sites but that alone won't let me know how they code the back-end.

+3  A: 

The best way to test the skills of a programmer is to give them a little test (Or homework). You can first filter out the candidates by their resume and the group thats left can then do a little code-test for you.

If the test is good it should not be a problem to distinguish the bad from the good :-)

Burbas
That's a great idea! Any suggestions as to what I should ask them to code?
ggfan
Ask them whether they are using PDO. If not they aren't that good. (Maybe this isn't that fail safe, maybe I'm biased about that.)
nikic
Yes, I'll be sure that they use PDO or htmlpurifiers
ggfan
+8  A: 

Hire people who know more than PHP. People who know two or three languages are good candidates because it's more likely the understand programming concepts. There are too many PHP developers out there who know how to accomplish things in PHP (usually badly) but they don't understand the concepts behind it and often can't think out of the box.

Also be careful of people who say the know PHP but really they know Joomla or Drupal and can't really accomplish much without those being available to them.

Cfreak
+1  A: 

It looks like you want to build something already available in an open source framework. Then the way to go might be to let the candidates show you how they use Open Source PHP-projects like Drupal, e-Commerce, MediaWiki, Wordpress and the like. Can they implement the frameworks and, more importantly, address security within your framework of choice.

Let them also show you their portfolio. Have they built something in the past? What techniques are they familiar with, and how do they, in their own projects (not framework) handle database security?

That would be my start - if I were to hire PHP-professionals.

BennySkogberg
WP or Drupal are options I can consider(plus cheaper too) if it comes to that! thanks
ggfan
+4  A: 
  • Give them a test (as Burbas said)
  • Require more languages (as mentioned too)
  • Ask them about their best project, what they're proud about
  • Ask them about biggest or most complex database they designed
  • Ask if they use templating language or how they maintain logic and presentation
  • How many database engines they know (also interesting to know)
  • How they deploy code (simply by copying to server, svn update)
  • If they use unit testing
  • How do they design applications to be able to recover (and do all skipped actions after recovery)
  • If they can design scalable applications and data-storages (not only DBs)
  • What development methodologies they know (Agile etc)
  • What documentation tools they use (phpDoc, DocBook)
  • What APIs they designed by themself or are using
  • What source version control systems they know (SVN, Mercurial, Git)
  • What they use or know to track bugs/tickets (Bugzilla, Trac etc)
dwich
Excellent list, these are definitely things you would want to know
Jani Hartikainen
great list, I'll be sure to ask these :). What do you mean by "deploy code".
ggfan
@ggfan: Updated. I mean if they simply copy the PHP files to server or if they use `svn update` or anything else like I saw in one company - something like PEAR packages, not sure anymore. Also what procedures they follow when deploying - run tests first, prepare rollback/revert scenario etc.
dwich
A: 

Start with the FizzBuzz test. :)

Christian Sciberras