Let's take the Culture project as an example. The Culture project is a typical example and a reference for other sites. We worked on various technical aspects, including :
- Use of external APIs: we used APIs (an interface that allows different software applications to communicate and exchange data with each other) to connect the site to external services. This enabled us to enhance the site with new functionalities.
- Proposing an API: we developed and presented an API to enable other systems to interact with our application.
- Setting up an SSO connection: we implemented a Single Sign-On solution (allowing a user to log in once to access several applications without having to log in again) to simplify user authentication across different services.
- Use of back office functions in the front office: we used back office tools to create a professional section accessible from the visible part of the site (front office). This made the interface easier to use.
This project was a real team effort, with rigorous organisation. We applied the Scrum principles (almost) to the letter (rules that help teams work flexibly and collaboratively to deliver projects in small stages). This enabled us to structure our work well and meet our deadlines.
"Why do I consider this project a success? Because not only did we achieve the technical and functional objectives, but we also improved our development process."
The application of agile methodologies, in particular Scrum, facilitated team co-ordination and ensured the delivery of high-quality functionality on time. These projects demonstrate our ability to manage complex tasks and work collaboratively to deliver effective and innovative solutions.
I'm curious to know how you ensure that the code you write remains not only functional but also maintainable in the long term. Could you explain how you go about guaranteeing high coding standards and optimal performance for the PHP applications you develop? What tools or practices do you use to achieve these goals?
We work mainly with PHP, using Ibexa as our Digital Experience Platform (DXP) and Symfony as our framework. Symfony (the most widely used PHP framework in France) provides a robust structure and best practice recommendations that we follow rigorously. Similarly, Ibexa offers quality standards that we systematically integrate into our developments.
To ensure code quality, we have put in place a number of practices:
- Use of Symfony and Ibexa standards: we follow the recommendations and best practices proposed by Symfony and Ibexa, which helps us maintain clean, high-performance and secure code.
- Code Review: each code modification goes through a Merge Request (MR) on different branches. This stage allows several collaborators to review the code, which helps identify and correct potential errors and share knowledge within the team.
- Unit and Integration Testing: we write unit tests to check that each component works correctly. In addition, we carry out integration tests to ensure that the various modules interact correctly. This helps to detect and prevent regressions before the code is merged into the main branch.
- Test automation: we use continuous integration (CI) tools to automate testing. Each time the code is modified, a test suite is automatically executed to ensure that new modifications do not introduce bugs.
- Performance monitoring: we regularly monitor the performance of our applications in production and carry out optimisations where necessary. Monitoring and profiling tools help us to identify bottlenecks and improve the efficiency of our applications.
"By adopting these practices, we ensure that we maintain high coding standards and deliver high-performance, reliable applications."
Now that you've established these best practices with flying colours, I'm wondering how you see your role as PHP Lead Developer evolving over the next few years. Do you have any specific objectives in terms of responsibilities or expertise that you'd like to achieve?
In the medium term, my objective is to capitalise on my experience as a PHP Lead Developer to position myself as a Technical Architect. I aim to broaden my responsibilities beyond the day-to-day management of projects and the team, focusing more on the design and implementation of advanced technical solutions.
I aspire to play a key role in defining robust and scalable software architectures. How can I do this? By closely aligning our technological choices with the company's strategic objectives.
This includes being heavily involved in researching and adopting new technologies, as well as overseeing the overall architecture of projects.
Amine, PHP Lead Developer at Inforca's digital agency
"In the long term, I'm motivated to increase my skills and influence as a Technical Architect This will enable me to make a significant contribution to the innovation and technological growth of our organisation."
In summary, I am determined to grow into this role so that I can use my technical expertise and leadership to support the sustained success of our business.
How does Inforca support your ambitions and accompany you in your development? How does the company enable you to progress in your day-to-day tasks?
The company provides a stimulating working environment and advanced technological resources.
On a day-to-day basis, I benefit from solid technical support that enables me to effectively resolve the challenges encountered in my projects. What's more, the company invests in ongoing training, which enables me to keep my skills up to date and adapt to changes in the sector.
Finally, the company's culture of collaboration and innovation fosters a dynamic team spirit, which I think is essential if we are to achieve our objectives together.
Interview by Alisée, Digital Development and Events Manager at Inforca, with Amine, PHP Lead Developer at Inforca's digital agency.