Are you looking to hire a Drupal developer? Do you know how to separate the good Drupal developers from the not-so-snazzy ones?
One of my clients asked me to put together a list of questions to ask prospective Drupal developers to assess their skill set. I came up with six that cover a good swath of the Drupal experience. Spend three minutes on each question, and you'll have a solid 20 minute interview that will tell you a lot about your prospective candidate's Drupal cred.
1. What modules do you always recommend to your clients?
Before you ask this question, check out the Drupal module usage statistics page on drupal.org. Your candidate should be able to recommend a number of modules in the top 30.
Prompt your candidate to explain why they recommend each module. They should be able to give you a plausible-sounding explanation. If they recommend a particularly unpopular module, ask them how well it is supported.
- Why do you recommend that module?
- How well is that module supported?
- Have there been any recent vulnerabilities with that module?
2. How does caching work in Drupal?
One of the common (mostly unfounded) complaints about Drupal has been, "Drupal is slow." You want to hire a developer who understands Drupal's built in caching system, and what its limitations are. For example, Drupal 6's block cache will not appreciably speed up the page if the user is logged in.
Ask your candidate to recommend some additional solutions to speed up Drupal's caching. These could include the Boost module, Varnish, Squid, Memcache or Pressflow. Ask if they've ever run into issues with Drupal's cache.
- What else can you recommend to speed up Drupal?
- Have you ever run into issues with Drupal's cache?
- How did you solve them?
3. What does Views do and how do you use it?
Views is a practical necessity for sites built on Drupal 6, and it's imperative that your developer understands how to take advantage of it. Earl Miles has written a great summary on the Views project page.
- What's an example of a project where you needed to use Views?
4. How do you handle upgrades?
It's a fact of life that you'll have to upgrade your Drupal installation and contributed modules fairly frequently. Your candidate should mention:
- backing up the site,
- putting it into maintenance mode
- downloading the new version of the module
- uncompressing it
- running update.php
- testing the site
- taking the site out of maintenance mode
Ideally, your candidate would also mention creating a development environment to minimize downtime. There is also a big difference between upgrading a module (process described above) and a Drupal minor version upgrade, which requires more careful patching. Drupal major version upgrades, which happen every couple years, are another can of worms entirely.
5. Show me some Drupal sites that you've built.
If you're hiring a single developer to manage all aspects of your project, from the requirements to the coding to the theme design, make sure you like their previous work. Ask for a list of sites that they've worked on, and the role they played in each project. Poke around and see if they still work!
- What role did you play in this project?
- What other contractors/employees did you work with to complete this project?
- Was the client satisfied with this project?
- Can I get a testimonial from this client?
6. How many patches have you submitted to Drupal?
Thanks to collaborative open source programming, anybody can request access to submit patches to Drupal or its contributed modules. A very strong candidate will have found some issues with the existing codebase, and patched it accordingly. Hopefully, they have contributed these changes back to Drupal. Given their Drupal username, you can check!
- What modules have you contributed to?
- What is your drupal CVS username?
I hope these questions have been helpful. Do you have any stock interview questions for Drupal developers? Please post them in the comments below!