Approximately 79% of websites and app development companies use PHP frameworks. It’d be tempting to say it’s reached its peak and is about to decline. But most businesses know it isn’t going anywhere. Due to how versatile and flexible it is, PHP will remain a popular option – which means developers in this space are still hot property.
Every city in the UK has businesses scouring the market for PHP developers, and the good news is more students are choosing to specialise in this technology as well.
But it’s not just a case of getting PHP developers into your business. It’s about getting in people who can make a positive contribution, and this is where the interview process is so important. You need to ask the right questions, to get the right people.
One client I work with is Pretty Little Thing, one of the UK’s leading retailers. They have a team of talented and versatile PHP developers who each play a key role in the business strategy. I spoke with Asif Ali, Head of Development, on the 5 key technical questions he asks when interviewing.
It’s important to note that these are simply the key technical ones. They are not the only ones you should be asking – I always advise clients to have questions related to cultural fit as well.
There is little point in spending time and money on making these key hires, if they don’t fit into the business. I will be writing another blog shortly about how you can determine cultural fit. But for now, I will hand over to Asif!
Five things that I always like to do when interviewing PHP developers are:
1) Get them to explain basic concepts about Object Oriented Programming (OOP)
I always think it’s good to see how well the candidates understand the foundations of OOP – have they learned to walk properly before they run? In particular, I’m looking at the concepts of Encapsulation, Inheritance, and Polymorphism. For more experienced hires, I also like them to provide examples of how they have implemented these principles.
2) Ask for the difference between object and class, plus interface and abstract classes
This is another question I use to test knowledge of the terminology associated with Object Oriented Programming. As well as asking them for the differences, I ask them to explain the traits they each show.
3) Explain the SOLID principles in Object Oriented Programming and their benefits
Now, we’re starting to get more in-depth. Most developers will know what the SOLID principles are, but I’m not looking for them to read these to me like they’ve memorised a Wikipedia page! I want them to explain what the advantages of these five principles are, and ideally link a couple of them to previous projects they’ve worked on. They won’t need to do this for all five – I like the interviews to flow well, without candidates feeling like they need to stick to a specific script.
4) Find out if they are aware of any programming design patterns. If yes, have they used any?
One of the biggest factors in our implementation of projects (and the growth of our business) is speed. Design patterns help with this, as the templates are proven and only implementation is required. It’s always good to ask developers you are interviewing about ones they have used before – it may be they bring something fresh to your team that gives your projects another dimension. At the very least they should have a good understanding of some patterns, and when they should and shouldn’t be used.
5) Problem solving!
Once we’ve gone through these theoretical questions, we give the candidates some card with small and simple, but tricky code examples that they are asked to resolve or tell us about their resulting output. It’s standard practice for these tests to be done at interviews. But sometimes businesses struggle to find the right balance in terms of how tough they make these tests. I like to make them tricky enough to get a good idea of their skillset, but I’m always aware that they are probably feeling more nervous than they would if they actually got the job, so I don’t go overboard.
For more information on making the right PHP hires, contact email@example.com.