Questions to ask when interviewing a candidate Magento developer

Posted on Sun May 6, 2012 by Jeroen Derks There have been 4 comment(s)

Since there is a lot of work to do for Magento, I have been looking to find some help. In my experience it is very difficult to determine the knowledge and expertise of a candidate until he/she is actually working on a project with you. During my search I have compiled a list of questions to help make the decision on who to actually talk to. When actually talking to a candidate, the questions are used to discuss the various topics more in depth.

Since IMHO not only Magento/Zend/PHP knowledge is necessary for a good Magento programmer, but also general knowledge of programming methodologies and the system (OS, Apache, etc), the list also includes questions regarding more general topics which are closely related to running a (Magento or otherwise) website.
Furthermore, when using these questions, please make sure to the candidate that you would like to hear more than just a simple yes or no. The more detail can be given, the better (e.g. I have received responses to questions asking for a description that just consisted of a couple of words, which is of course not a description).

If you have any additions, improvements, or any other comments, please let me know so I can improve this list, thanks in advance!

So, here goes:

Magento

How may years of experience do you have in Magento?
Can you say something about the technical challenges you have tackled in Magento?
What kind of problems did you encounter and how did you find an anser and solve them?
What kind of Magento projects did you do? (preferably for a couple of projects per project minimally one line description of what kind of functionalities you implemented)
Do you have Magento certification?
How would you start creating a new extension?
Do know about moduleCreator? Did you use it? What do you think about it?
When would you modify core files?
Are you familiar with the rewrite functionality in the config.xml? How did you use it?
Do you have a solution for the rewrite conflict issue in Magento? What were the different solutions you've used?
Are you familiar with modman? Did you use it? What do you think about it?
Can you describe your programming experience with the following topics in Magento:
  • Tax
  • Quotes
  • Orders
  • Invoices/Creditmemos
  • EAV (customer, catalog, product, etc)
  • Multi-language website
  • Shipping
  • Payment
  • Overriding models/blocks
  • Overriding controller
  • Config XML
  • Debugging
  • Performance

Debugging

Are you familiar with xdebug? What features of xdebug do you use, how and why?
Do you sometimes trace code by stepping through it? How?
Did you ever use xdebug trace log functionality? Why? How?
Did you ever use xdebug profiling functionality? Are you familiar with cachegrind?

Logging

Do you know how to configure (error) logging in PHP? How?
Where are the errors logged to?
Do you know how to do log messages in Magento? What level did you use? How?
In what situations in the code would you use logging messages in Magento?
Do you like to log as little as possible or as much as possible? Please explain.

IDE / Editor

What editor(s) are you using? On what platform(s)?
Please describe your linux/unix experience?
Are you using Apache on your development environment? Why/why not?
Which editor do you prefer and why?
Which editor do you use for actually programming Magento?

Version control

Are you familiar with version control systems such as git, svn, mercurial, etc?
How do you prefer to work with many developers on the same project regarding to version control?
Do know how to create branches and do merges? Can you describe how you resolve conflicts?
Can you describe the process you use to commit code? (e.g. do a diff before committing, etc)

Quality Assurance (QA)

Are you familiar with unittesting: PHPUnit, Mage_Test, Ecomdev_PHPUnit, Selenium? How and when would you use it?
Describe your knowledge/experience with Mock objects
What are your ideas about code quality?
Do you use coding standards? Why? How/which?
Describe your knowledge/experience with unit testing (incl. code coverage reports, CRAP score)
Describe your knowledge/experience with continuous integration (like Jenkins). What do you think about it?
Can you descibe your process regarding release management? (e.g. which steps do you take to get code from your development environment to production)
Please include the tools you use for this
How do you deal with different configurations for Magento on these different environments? (e.g. different URL)

Issue tracking / Project management

Describe your experience with issue tracking and/or project management systems to keep track of work/tasks/issues. Which have you used and which did you like best and why? (e.g. asana, assembly, basecamp, pivotal, redmine, git, trac, mantis, bugzilla, etc)

Apache

Can you tell us a bit about your Apache expertise?
Describe some complex Rewriting rules and access control configurations in Apache that you have used

MySQL

Describe your expertise in MySQL
Did you ever encounter version-related problems with MySQL? Could you describe them and the solution you have implemented.

Cron

Do know how to configure cron jobs from the command line on *nix?
Do know how to configure cron jobs in Magento?

This post was posted in Magento, Development

4 Responses to Questions to ask when interviewing a candidate Magento developer

  • We have a Magento developer and we are very satisfied. These are really good questions if you are looking for a Meganto developer.

    Posted on Thu June 7, 2012 at 09:24

  • Very nice tips useful for interview. Thanks.

    Posted on Fri December 14, 2012 at 21:30

  • Good Question

    Posted on Wed October 23, 2013 at 12:55

  • Josh says:

    Thank you for your list of questions, they are very helpful for my upcoming interview

    Posted on Thu December 26, 2013 at 02:26

Comments