Questions to expect in an interview for a Junior Magento Developer Position

When I'm interviewing candidates, and in particular junior candidates, I first assess whether they're going to be good developers. Nevermind Magento.

So you would hear a lot of generic, non-Magento, questions from me up front. Here are just a few:

  • Explain the difference between a map, a hash, an array, a collection, and a list.
  • Explain what you think "inheritance" means, and give me an example that doesn't involve cars or family members.
  • Name 3 types of security vulnerabilities that are commonly introduced by unfiltered user input.
  • Explain what a prepared statement is and what it does.
  • What is your favorite new feature in PHP 5.5?
  • Name at least 3 major PHP frameworks.
  • What is the difference between a function declaration and a function expression?

Some non-technical questions:

  • Tell me the last time you made a mistake that cost a company or client money, and:
  • What did you learn from your mistake?
  • What do you do to keep current on technologies?
  • What are you learning in your off-time?

Then I might ask them to do a code review with some of their work on Github or something they've submitted; we might do some whiteboard exercises like Fizzbuzz, maybe a selection from Project Euler... something to that effect. I'm just trying to mix it up here and see how they deal with problems they may not have encountered.

If I'm satisfied and I know that the candidate has Magento experience I might ask more specific Magento questions:

  • How does Magento MVC differ from classical MVC (or Zend Framework MVC)?
  • Name 3 types of Magento Models
  • Describe or give me an example of Magento code pools and/or theme fallback
  • When is it okay to make a core modification? (answer: NEVER.)
  • List at least 3 techniques to override default/core functionality.

At this point I may ask some really hard questions or have them sketch out something for me - maybe the checkout flow of Magento. I may have them describe all of the subfolders in a Magento Extension. I might ask them what abstract models to extend for desired functionality.

I hope this helps - the hire process is difficult for both parties at the table. In my first round of hiring my first time out I phone screened over 75 applicants, sifted through 500+ resume submissions and whittled it down to 2 or 3 in-person interviews. None of them worked out - so, in my case, when you're sitting across the table from me I'm rooting for you! I want you to make it! I want the torturous process of the hiring phase to end so we can do what we do best - build awesome products.

The trick is to keep it light and make it a useful and at the least an educational experience for the candidate.


Based on the discussion I had with Magento partners (note: i have not interviewed developers myself), below are couple tips:

1) Don't look for Magento developers. Find good OO PHP (or Java, I've heard success stories of getting Java devs do Magento) developers and train them. We also have some people in house that moved from Java to Magento and they don't have the bad habits of typical PHP devs.

2) Never use an external hiring company - they won't find anyone and they do not know what they are doing (ie they chase me because i work for Magento and i was a developer long time ago - but i'm not a Magento developer)

3) Not sure what is your role/company. If you want to do development, yeah look for people. However if you are a merchant or need to do just one project, consider going with some experienced partner instead.

4) Get @benmarks to answer - he is running internal training for new hires at BlueAcorn and hopefully can share some good insights


The first question you would probably expect is something along the lines of:

Here's a default installation, now remove the "Back to School" block from the home page using local.xml.

You mights also find something such as:

Find out why the default checkout process is not performing the way it should. (hint, check for javascript errors in console).

After installing a third-party module that modifies how product images are displayed, the product view page is missing another feature generated by a separate third-party module. What is the first step to debug this? (hint: 'depends').

The customer would like a space on the home page where they can easily modify content without having to deal with much 'code'. How would you implement this?

I personally saw all of these questions during an interview.

And then, of course, expect some questions regarding common Magento mistakes during development (clear cache, reindex, base_url mistakes, etc). If you nail everything, expect some more difficult subjects (EAV, class rewrites, updating a block via AJAX).

Depending on who you're interviewing, it might be enough to just have a good understanding of a few basic areas of Magento (layout XML, working with templates) since the first months of your employment may likely involve fixing random frontend issues on random sites. If you're relatively new to Magento and find yourself hired as a jr developer, expect to do a lot of on-the-job learning.