What questions to ask during an interview with a senior PHP developer?
Want to know what does a CTO ask during an interview? How to recognize a senior developer? And most importantly, how to recognize a great developer?
What does a CTO ask a PHP developer?
Jan Mikes, the CTO of Entrydo, shared what does he focus on when interviewing senior PHP developers.
The most important must-have’s
Besides the soft skills, Jan identified four hard-skills as the must-have’s:
- PHP
- Nette framework
- Doctrine
- PHPUnit
Let’s dive right in.
1. PHP version 7.1 and newer
Whatever older than the version 7.1 is considered as old-school.
Note that version 6 in PHP was skipped. There was 5.6 instead :)
2. Nette version 2.4
Nette is a PHP framework, although the community describes it as “a family of mature and stand-alone components.”
It’s the most popular framework in the Czech Republic with a strong community of developers and supporters.
3. Doctrine version 2
The Doctrine Project (or just Doctrine) is a set of PHP libraries focused on database storage and object mapping.
We’ll dive deeper next month.
4. Tests in PHPUnit
PHPUnit is a unit testing framework for the PHP programming language.
Unit testing is a level of software testing where individual units/components of a software are tested.
Should-have’s
Docker
Docker is a tool designed to make it easier to create, deploy, and run applications by using containers.
Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package — which helps to deploy applications easier and faster.
We’ll look at Docker in a follow-up interview.
Continuous Integration (CI) in GitLab
CI is the process of automating the build and testing of code every time a team member commits changes to version control.
CI encourages developers to share their code and unit tests by merging their changes into a shared version control repository after every small task completion.
We’ll look at CI in a follow-up interview.
Latte templates
Latte is a template engine which is part of the Nette framework.
Nette could be used with other template engines though.
Nice-to-have’s
RabbitMQ
RabbitMQ is a message-queueing software called a message broker or queue manager
In other words, it gives applications a common platform to send and receive messages.
Simply said; It is a software where queues can be defined, applications may connect to the queue and transfer a message onto it.
It’s fairly easy to learn how RabbitMQ works, hence it’s a nice-to-have.
MongoDB
MongoDB is a NoSQL database which uses JSON-like documents to store data.
It’s fairly easy to learn how MongoDB works, hence it’s a nice-to-have.
Redis
Redis is an in-memory data structure store, used as a database, cache and message broker.
It’s fairly easy to learn how RabbitMQ works, hence it’s a nice-to-have.
ElasticSearch
ElasticSearch is a distributed search and analytics engine.
The administration may not be easy, but once it’s set up by an admin, it’s fairly easy for a developer to use.
New Relic
New Relic is quite easy to set up and operate, so no need to have prior experience. It can be learned quickly.
Questions to ask
Regards open-source contributions:
- “What open-source projects have you contributed to?”
Regards PHP version:
- “What’s the PHP version you use in your main project?”
- [if he/she says 5.x or anything lower than 7.1] “Have you considered upgrading to 7.1? Why not?”
- [if he uses 7.1] “Have you adopted Strict typing? [if not] Why not?” (watch the video for details)
Regards continuous integration:
- “What’s your current CI setup? (note: feel free to use “continuous integration” instead)”
- “Have you used GitLab’s CI already? What’s your experience?”
Regards frameworks:
-
“What PHP frameworks are you familiar with? At which level?”
- Note that a senior PHP developer should be framework-agnostic (watch the video for details)
Regards testing:
- “How do you approach testing?”
- “What’s your preferred CI/CD setup and why?”
In addition, you could also ask about the following topics — although they are out of scope of this article.
- Gulp
- IDE (preferably PHPStorm)
- Composer
- Adminer
- DDD / TDD
- Git functions (merge, rebase)
Happy interviewing!
Here's what you can do next...
If you need to fill more IT positions, or your are in touch with IT professionals, create a FREE account and activate your IT Recruiter Toolkit in no time at all.