What makes any company great are employees who drive the business to success. Common truth, but it can be hard to find people who are just the right fit for your company.
As an Onilab’s CTO, I’ve gone through numerous tech interviews with the developers and there are certain things I look for in every person – and certain things I’d rather not see. As well, consider the fact that we are a Magento development company and are looking for Magento developers only. Maybe that’s why we are so specific in our requirements: we know what kind of person we need and are very strict in selecting the candidates.
Below you’ll find the most common red flags that, in my opinion, any tech lead or CTO should be aware of when interviewing a Magento developer. Actually, these tips will be useful for anyone who interviews software developers – though narrowed down to Magento, their core ideas are relevant for all tech specialists.
A quick intro to Magento
Magento is an open-source e-commerce platform that has two editions: Commerce (paid) and Open-Source (free). The platform is known for its flexibility, scalability and an excessive amount of available third-party integrations. For example, if we compare Shopify and Magento, Shopify has 200+ free and paid extensions versus 5000+ free and paid extensions that Magento offers.
Magento uses MVC (Model, View, Controller) architecture type, which implies business logic, data access and UI to be separated for applications. For the database, the platform uses MySQL and PHP as a programming language.
Now that you have a basic idea about the platform, let’s get down to my expectations from the candidates.
Lack of knowledge on PHP
It is crucial that the developer is a PHP professional, as PHP is the main programming language used on the backend in Magento. We won’t accept people who have worked with other programming languages and decided to try their hand at PHP.
I’d recommend checking whether the candidate knows:
- Database Design Principles
- SQL
- Basic design principles
- Any frameworks
- Object-Oriented Design Patterns
Less than 2 years of experience with Magento
It won’t be enough to just take a cool developer and let him work with Magento. If you expect high-quality results, then you want to hire a person with previous experience in the field of your work.
Even if a person did not deliver outstanding results with Magento in the past, we still count it as experience. Of course, we’d expect such candidate to understand their mistakes and be ready to avoid them in the future work.
Inability to understand someone else’s code
When we say “teamwork”, we don’t imply that all our employees are friendly social butterflies. We rather mean that our developers can quickly understand each other’s code and fix it, if necessary.
If a person is not able to understand the code, written by another developer, I’d personally not recommend such a person to be on the team.
A professional team of developers will regularly perform a code review to see whether everything is right and to get an overall idea of what’s going on in the project. Moreover, an experienced Magento developer can check the quality of the code from the client’s side and identify the issues, if there are any. In this case, the store owners will be genuinely grateful if a developer finds a bug and advice on how to fix it and improve the store performance. This way, a developer will act as a business consultant – and clients are more than happy to get advice from a knowledgeable person.
Poor knowledge about databases and caching
Every second of delay in the store performance decreases conversions – and our primary goal is optimizing the store for high conversions. For that, one needs to be experienced with caching and databases.
Caching is used in the following cases:
- there is a static content that does not change when the page loads,
- there is a need to store multiple and slightly different content copies.
Caching significantly cuts down the page load time. Since there is a ready and cached element in the storage, the page simply uses this ready element and thus requires less time for loading.
There are two caching methods: file and memory caching. We prefer memory caching as it is faster and for that, we use Redis. However, a good Magento developer should know more than one caching method.
Now, the databases. They are third-party services used for data storage, as the name implies. The way a developer writes the architecture of interaction between the database and the app (the store) affects the speed of the store performance.
The style and method of writing the architecture depend solely on the developer and his willingness to optimize the process. I can’t say it’s something that comes from experience – it’s more of a personal trait.
Personal attitude towards work
This point may sound a bit general but still, it’s important: a person should be smart, able to think logically, be creative and show interest towards work.
Let me explain. A developer who is interested in a high-quality outcome of his work will put a little more effort in creating a strategy for writing good code. We spoke about architecture above – the writing of a good and efficient architecture requires this “extra mile” approach.
As well, work with Magento usually involves a massive amount of code – and developers have to keep this code in mind all the time. So the ability to pay attention to detail and focus on the tasks is a must.
Final thoughts
I firmly believe that technical skills matter as much as personal. A person can be an excellent developer but without the ability to communicate his thoughts and work as part of the team, his skills will be useless.
Software development is all about constant learning. We might give a chance to a smart person who may not be a pro yet but is ready to become one. On the other hand, we’ll politely decline a development master who’d show arrogance and lack of motivation.
Different companies have a different approach to the hiring process. At Onilab, we have less than 50 people so for us, it’s crucial that every employee is an independent professional who can work equally well as part of the team and on his own.