04 February 2020
Most PHP interview questions articles are of little help. Here’s what you may actually expect
Are you preparing for your PHP job interview? You are probably searching for articles about common things you can be asked about during interviews for a PHP developer in 2020. It’s only natural. But what you might not realize that most of such articles are not going to be very helpful. Why? Because, as weird as it may sound… there is more to a PHP developer than just PHP. Best software development companies know that. Let’s review what you should brush up on to succeed during your PHP job interview.
My name is Michał Żądło and I’m the head of PHP at The Software House. As such, I tend to conduct many job interviews for PHP developers. I’ll try to share some of my knowledge to make your next interview (as a candidate) a little easier for you.
PHP interview questions in 2020 – different than what you might expect
Let me start by saying what this article is NOT going to be. You won’t find here ready-made answers to a bunch of PHP-related interview questions. I have seen quite a few of such articles online. In fact, most articles on this topic are just like that and limited to the PHP domain only. But does knowing PHP well alone make you a good developer? I don’t think so.
PHP is mostly used for making web applications and developing a working app requires much more than just PHP. Typically, you want to use some kind of server and database as well. Of course, there are projects that do not require any extra skills, but I think it’s fair to say that there aren’t that many of them these days.
As you probably realize, any PHP developer worth their salt needs to be adept at those related technologies. Knowing this, interviewers are bound to ask about anything related to app development. While today’s development world is more and more specialized, strong general knowledge is still extremely valued and characteristic of a good dev.
The details of the PHP developer job interview will also largely depend on the company’s profile. It’s essential to get familiar with what the organization actually does and the technologies it uses. Pay attention to the “highly welcome” section of the job offer. Brushing up on the skills listed there will be very helpful. Some of these issues may not seem like the most important ones, but they can actually make you stand out from other candidates.
Today, let’s focus on a couples areas that are very likely to turn up during a PHP job interview:
- PHP language itself
- Common development problems
- Web and REST API
- Programming engineering
- Soft skills
This expertise is so vast that you won’t be able to get fully prepared in just a couple days. However, what you can improve in that time is your attitude, the way you talk and your self-confidence. Still, knowing what you might expect during an interview can also go a long way to boost your confidence. That’s why I’m going to talk about all the aspects mentioned above from the perspective of someone who does PHP job interviews very often. Interview questions for PHP can be roughly determined from this, but I will also give you a couple example of specific PHP developer interview questions.
There will definitely be some questions related to the PHP language itself. Typical areas include:
- PHP code – what’s new in PHP 7.4 or more generally PHP 7.x
- differences between PHP 5.6 and 7.x. A lot of companies still use PHP 5.x and such questions are only natural, especially in the context of migration to version 7,
- OOP in the context of the PHP language,
- limitations and common challenges in PHP development,
- dependency management in PHP projects, especially composer,
- inquiries regarding making PHP code clear and concise for other team members and for scalability purposes (code readability).
Speaking from my experience, recruiters usually ask about the issues they work with on an everyday basis. After all this is what they know best and this is also what they need help with from the new arrivals. That’s what makes preparing for an interview somewhat challenging. Based on the articles I read while preparing for my own take, I didn’t get the feeling that what they talk about is representative of my own experiences as both recruiter and applicant. My fellow PHP developers at TSH also share this opinion.
PHP frameworks solve many server side scripting problems and are a basis for most projects. They have the potential to save a lot of time and spare yourself many difficulties in the future. A lot of PHP frameworks are open source. When you know a framework your prospective employer uses, it’s also much easier to adapt to the new place. Some companies even specialize in a specific framework and grow their whole team around it. PHP interview question and answer plan will depend on the kind of expertise and challenges the company faces, but some of the most common include:
- the life cycle of a request, that is the entire process of how requests are handled in the framework,
- data validation methods,
- ORM, that is the way the framework supports the data layer,
- dependency management,
- console commands.
Common development problems
A common practice during a PHP job interview is to present the candidate with a typical problem. I usually only use it for more experienced devs. It’s a great way to see how the dev approaches new problems and their ability to locate the most important aspect of them. It’s also a chance to see how they work under pressure – will they give up or try to come up with a solution?
As for preparation, the best way is to come with the right attitude. One interview is not the end of the world. There is no need to get too nervous. Even if we fail to find the solution, our attitude alone can still make us look really good. It’s a good habit to ask questions, especially to make sure that we understand what the problem is really about.
Web and REST API
The server side is not just about the PHP language itself. Most modern apps communicate with the outside world via the HTTP protocol and by sharing an API (also, check out our article on API Platform, which allows you to create an API very quickly, PHP supports it very well), consumed by frontend and mobile apps and other third-party apps that integrate with our services. As far as I know, there isn’t a single PHP project at TSH, which doesn’t have its own API. It’s a very important aspect of PHP development and server side development in general, so it’s bound to show up during a job interview. Typical tasks may be like this:
- describe how the communication via HTTP works,
- the differences between HTTP 1.1 and 2,
- what REST API is and how it works,
- what CORS is and what it is used for,
- authentication and authorization of users via API.
A lot of PHP databases management systems such as the MySQL database are open source. Databases are also an essential part of any app. In modern development we use even a few databases in one application. NoSQL databases are increasingly used together with relational ones. It because developers considering high-performance use tools solved particular issues. Consequently, questions such as these above are very common during PHP job interviews:
- What are the differences between relational and non-relational databases?
- What noSQL databases did you use? What can they be used for?
- Performance and optimization of databases.
- Inquiries regarding standard managements systems such as MySQL database.
Apart from databases, there are more and more tools used for building web applications. For instance, communication between microservices may be based on message brokers. For instance RabbitMQ or Apache Kafka. It’s another way to increase performance, improve user experience. And of course, it makes the application more flexible for developers because of loose coupling.
Ready-to-use headless CMS is another commonly used tool in modern apps. It allows application editors easily manage the content in SPA+API applications. Also, tools supporting the multilingualism like Crowdin, PoEdit or BabelSheet. There are definitely more of additional tools which can be used to build web applications. But it strongly depends on specific business needs.
Frankly speaking, I can’t predict questions related to this part because it’s a really wide area. But you should think about it and about your experience with these tools. If you have experience with any other tool which is worth to mention you should talk about it. Especially if it can be useful for the project you are applying for.
For me personally, it’s usually the most interesting part of the interview, as it really shows the dev’s worth. It’s the kind of knowledge that separates good programmers from those who still have a long way to go before they can call themselves real pros. Typical topics may include:
- app testing – types of tests, specific cases, tools for testing PHP applications,
- best practices, such as SOLID,
- design patterns – how they are grouped, what real problems they solve and more,
- architecture patterns,
Most projects will eventually make it to the production (at least, that’s the idea). Developers should understand the implications of it. Most modern apps work in the cloud and are meant to be scalable (use more than one instance). Every developer should understand common scalability challenges and solutions to them such as:
- file storage and shared sessions,
- app configuration for a variety of environments,
- common issues with the scalability of PHP apps,
- virtualization and containerization,
- app deployment methods.
Software development is not only about the strong technical knowledge. It is about delivering value for the business as well. Basically, the times when all documentation was prepared at the beginning ended. Now we are agile and the whole team needs to crunch knowledge about the project on a daily basis. So knowledge in that area is desired as well. You may expect questions about your experience with Scrum. For instance “What are the Scrum artifacts or what are the particular meetings for?”.
Kanban is an another agile methodology used in modern development. I would not be surprised when questions related to that methodology appeared during an interview. It mostly depends on how the target company works.
A highly underestimated and commonly marginalized issue by developers. It’s extremely important, because usually we don’t work alone. We work in teams composed of programmers, testers, project managers or product owners. The ability to cooperate with them all is essential. Typical questions related to the dev’s soft skills include:
- methods of solving conflicts in a team,
- approaches to dealing with unreasonable deadlines,
- how to communicate the inability to deliver in a sprint to the product owner,
- how to argue during code reviews.
Summary and key findings
What do you think about this list of PHP interview questions and answers in the flexible form of topic areas? Feel a little more confident? Here’s a short recap of the most important points:
- The PHP job interview may include content about the entire app ecosystem, not just PHP itself. After all, that’s just how real PHP projects are.
- Nowadays, in order to be successful, PHP software developers need to have a thorough knowledge of many aspects of development. Even if they plan on specializing in a specific area or framework, this knowledge greatly helps to be a productive member of a team.
- Companies will try to ask questions related to their own profile, specializations and work environment. It’s only natural, as they try to find people who can add value to their company. This is why researching what the company does and the kind of technologies it prefers is essential. It may improve your chances of getting the job more than any kind of article on the subject you can ever read.
- It’s good to be honest about what you don’t know. It will come out eventually anyway. Companies realize that it’s easier to teach development than change one’s character and attitude to work.
- Soft skills, when understood as an umbrella term for all the personal attributes that make one an efficient team member, are vital in today’s PHP project, when a great product can only be delivered when cooperation and communication is maintained at every stage of the process.
I wish you good luck with interview questions of PHP as you search for your next position. I hope that this article will help you land your dream job. Perhaps, it happens to be at The Software House – I encourage you to take a look at our job openings, for both PHP developers and other specialists. You will be able to find there much of the information I talked about in this article, greatly improving your chances to get the job you want.