By Emmanuel Lemor on Thursday, 20 February 2025
Category: February

Interview with the all-rounder Tuan Pham Ngoc!

There have been many people involved in Joomla over the past 20 years; some build websites for clients, some help for a time by promoting Joomla, some others contribute their time to a Joomla! Team, some build an extension, and others write code to fix, or improve a functionality in Joomla!... and then, some are all-rounders: they do most if not all of the above...

One such person is Tuan Pham Ngoc - a super extension developer, volunteer and contributor to the Joomla core.

Now to learn a bit more about him...

How did you find out about Joomla, and why start developing for it?

During my fourth year as a university student, I was looking for a part-time job for the PHP programming language. Luckily, the company I worked for was receiving Joomla outsourcing projects, so they asked me to learn Joomla, and that was when the journey began - it changed my life. When I graduated, together with my two friends, we formed a team called Ossolution. We worked on all kinds of Joomla outsourcing projects on a famous freelancer website for Joomla called Joomlancers.com. We started with a small team, we grew to be one of the best freelancer teams on that platform, and we gathered lots of experience with Joomla during that time. My first Joomla extension was Documents Seller. I developed it because at that time, I saw the need for having an extension to allow selling digital download products for Joomla (eBooks, even Joomla extensions, Joomla templates, etc.), and I had experience working with a PayPal payment gateway extension. It gave me some income while I still had time to work on other outsourcing projects, so I was very happy. With the success of that extension, I continued developing other extensions, as you can see on our website, https://www.joomdonation.com, today.

When did you start developing Joomla Extensions? 

I started developing Joomla extensions around 2008, when I published my first extension, Documents Seller, on the Joomla Extensions Directory (JED). At that time, I was working with Joomla 1.5. However, my journey with Joomla began earlier, around 2006, when I was still a student and working part-time. Back then, I was using Joomla version 1.0.8, if I recall correctly. Mambo was still available during that period - so it has indeed been quite some time ago. Time flies!

Which is your largest, most complex Joomla extension?

Today, that would probably be Events Booking. Before developing Events Booking, I developed some other smaller extensions like Documents Seller, Joom Donation, Payment Form… Honestly, I had more success than I expected, and it allowed me to work full time on extensions development. During my freelancer days, I received many projects working on events/events registration extension like Events List, JCalPro, JEvents, DT Register, so I saw the need for a good extension to allow managing events, and handle registration, integrate with payment gateways (which I had good experience with). That was the reason I started developing Events Booking. I started with basic features, listened for feedback from customers, step by step improving it based on customer feedback making the extension one of the best of its kind today. Working hard, listening to customers feedback, providing good support for customers have been the key for success in my extension development career.

How much of your time is spent % wise on that extension compared to the others?

Events Booking being my biggest extension, I spent roughly 40% of my development time to maintain and support customers. The other extensions, like Membership Pro, Payment Form, Helpdesk Pro, Documents Seller, which I also maintain, take less time. We have other extensions on our website, but these extensions are maintained by the other two co-founders.

What was/is the toughest part of coding this extension for Joomla?

Backward compatibility. My extension supports not only overriding layouts like any other Joomla extension, but I also support overriding controller/model/view/static helper classes. I care very much about backward compatibility; it makes upgrading extensions smooth, even on new major releases. But sometimes, it also prevents me from modernizing the code base. I try my best to have clean code, but I know I still have a bit of ugly code there due to my backward-compatibility promise.

How much time did it take you to convert your largest extension to be compatible with Joomla 5 coding standards (from J3!)?

For a standard extension like Weblinks or Contacts, I estimate it would take up to two days to complete the conversion. However, for my largest extension, Events Booking, the conversion process began much earlier—back when Joomla 4 alphas were released. Since then, I’ve continuously tested and modified it to ensure it works seamlessly by the time Joomla 4 reached its stable release. Honestly, I can’t say exactly how much time I’ve spent on the conversion because it has been an ongoing effort. I always strive to keep my extensions up to date with Joomla’s changes. For instance, whenever a Joomla API is deprecated, I promptly update my extension code to stop using the deprecated API. This proactive approach makes the transition process smoother and significantly reduces the time required for major conversions.

What do you like best about Joomla? 

As a developer, I like Joomla for its clean codebase, well-structured architecture, and highly extensible system. It offers built-in support for features like categories, custom fields, tags, and version history... And it is incredibly easy for third-party extension developers like me to integrate these functionalities with minimal effort.

However, what I like most is the amazing, friendly community behind Joomla. Many dedicated volunteers contribute countless hours to various aspects of the project, bring success to it, and, believe it or not, many of them have their paid jobs unrelated to Joomla.

What piece of advice would you have for anyone thinking about developing an extension for Joomla 5?

Thank you for the time spent, Tuan, not just in this interview but in your countless hours volunteering, giving advice, giving back to the Joomla core codebase, helping the community, serving your customers well, and creating really smooth-running extensions!

We look forward to what you will do next...

Leave Comments