
CodeIgniter played an early role in Ben’s journey as a PHP developer, and he quickly became an active member of the forums and community. Since then, he’s produced multiple libraries for the CodeIgniter framework, including IonAuth, written a book, and hosted informative podcasts for PHP users. We got the chance to chat with Ben about all that and more during this interview. Strap in!
Shahzeb: Ben, it’s lovely to have you for this interview. Could you please tell our readers about yourself?
Ben: Thanks for having me! I’m a software engineer living in Columbus, GA with my wife and our basset hound.
I’m currently working (remotely) as a staff engineer at Wayfair on our development platforms. I’ve been in tech for about 18 years now. Over the years I’ve worked on everything from sys admin to robotics programming to web development.
Shahzeb: When and how did you start your career with CodeIgniter? Any interesting stories you can share about your journey? What were the challenges you faced in the beginning and how did you tackle them?
Ben: I was working in a dual role for an automotive manufacturer, spending half my time doing system administration and half software engineering. I was tasked with building a SCADA system for our automated manufacturing plant in Opelika, Alabama.
I knew very little about legit web development back then, so this was my first web based project. This was back in the early days of PHP 4. I wrote my own home-grown framework and wow, was it bad. SQL calls directly from views, hardly any separation between concerns, thousand line functions…
Eventually this became too much to manage and I started researching best practices, frameworks, etc. I tried out several different frameworks and CodeIgniter just “clicked” with me. I loved it, how flexible it was, how it added structure exactly where I needed it.
From there, I got fairly involved in the CI forums and the community.
Shahzeb: You’ve built quite a few impressive libraries for the CodeIgniter framework like Ion Auth. How did the idea for these come to you?
Ben: Ion Auth started with me building an app when I was working at a marketing agency in Jacksonville, Florida. I needed to add authentication and couldn’t find a simple solution for authentication that had all of the functionality I needed. The best fit I could find was the Redux Auth 2 library but it was no longer maintained. I reached out to the author but he had moved on to a different ecosystem. So I forked it, added the functionality I needed, and Ion Auth was born.
Shahzeb: Ben, you also co-host the PHP Town Hall Podcast. Could you tell us a bit about these podcasts? Who can join this group and how does it help developers and PHP users?
Ben: Many years ago a few of us used to host occasional video calls for CodeIgniter developers to have a few drinks and hang out. One day Phil Sturgeon and I were reminiscing about how fun these calls were and how we wished there was something like this for the broader PHP community. That idea sparked the podcast. Phil and I decided to have a beer and record ourselves hanging out with others from the PHP community to discuss what cool things they’re working on.
The podcast has grown and changed over the years, with different co-hosts but the format remains fairly the same (maybe it’s a bit more professional nowadays). We’re in our eighth year now with Matt Trask as my co-host.
Anyone is welcome to come on the podcast. Just reach out. Our goal is to share with the PHP community what ideas, techniques, and tools will help them be better developers.
Shahzeb: You seem to enjoy speaking at PHP conferences around the world. Any particular topic you’ll speak on this year? And where?
Ben: I’m working on a new talk this year, “Getting Started with Data Structures and Algorithms”. I don’t have a computer science degree so it took me years to really devote the time to understanding these CS fundamentals. I’m hoping to help people get a jump start on that knowledge.
I gave it for the first time a few weeks ago at Midwest PHP. I’ll hopefully give it at least one more time later this year.
Shahzeb: You are a member of the CodeIgniter Council Steering Committee and the CodeIgniter Security Team. How do you describe your current responsibilities?
Ben: I’m not terribly active at the moment. I was recently elected to the PHP-FIG Core Committee so I’m devoting more time there for the time being. I’m on a working group that’s working on a new ClockInterface PSR.
I am still a member of the CodeIgniter core team though and review potential security issues when they’re reported.
Shahzeb: Ben, you also wrote the book Securing PHP Apps. Could you tell us a bit about this book? And how would it help developers improve their work?
Ben: Through the process of developing Ion Auth I learned a lot about security, cryptography, and common vulnerabilities. So I decided to write a short guide to securing applications, specifically targeted at PHP developers. My goal was to create a shortcut to the learning process and teach junior engineers the main things to watch out for.
Shahzeb: You have extensive CodeIgniter development knowledge. What motivated you to become a CodeIgniter web developer? Who were your mentors and inspirations in this journey?
Ben: CodeIgniter really just felt natural to me so I decided to get involved. There was an extremely tight-knit community, many of the community members are still some of my best friends to this day.
There were many inspirations but a few that stand out are Phil Sturgeon, Lee Tengum, and Michael Wales. All of whom I still speak with regularly and consider close friends.
Shahzeb: What were the most memorable CodeIgniter projects you’ve worked on?
Ben: The one I worked on the longest was an insurance portal for one of the top insurance companies in the US. The app ran in production for over ten years, with the CodeIgniter portion eventually being just a small piece of a microservice architecture.
Another one that stands out was an electronic medical record (EMR) system for mental health facilities. It was very fulfilling to work on something that was making a difference in people’s lives.
Shahzeb: What would you like to recommend to newbies who wish to learn the CodeIgniter framework from scratch?
Ben: Pick an idea that you’re excited about to start building! The best way to learn is by trying, failing, and then trying again.
Shahzeb: Which type of web hosting would you prefer for your clients? In your opinion, what are the benefits of hosting a site on cloud managed hosting over conventional shared hosting?
Ben:It’s really a trade-off. Self hosting or shared hosting gives you more control over your applications but with a much higher time investment. Managed hosting handles the hassles of hosting, leaving you free to focus on code, but with less ability to customize.
Shahzeb: What do you think about managed hosting solutions like Cloudways, that provide an optimized PHP stack with features to deploy their web apps?
Ben: I’ve never used Cloudways personally but I am a big fan of managed hosting. I usually opt for managed hosting when developing new side projects or when I’ve worked with clients that didn’t have sysadmin knowledge.
Shahzeb: What do you enjoy doing when you’re away from your laptop?
Ben: Golfing has become my main hobby over the last couple of years. I never thought I’d enjoy it but it’s really great. Being outside, relaxing, and at the same time challenging yourself; it’s incredibly fun.
Shahzeb: Whom should we interview next and why?
Ben: Lonnie Ezell. He’s directing the project now and was the brains (and code) behind most of CodeIgniter 4.
Phil Sturgeon. If you want the ins-and-outs of old school CodeIgniter, he’d be great to speak with.
Shahzeb: Could you share some snapshots of your office space or your current workstation in the COVID-19 pandemic situation for our readers?
Shahzeb: Thank you once again, Ben.
Ben: Thanks for having me!
Shahzeb Ahmed
Shahzeb is a Digital Marketer with a Software Engineering background, works as a Community Manager — PHP Community at Cloudways. He is growth ambitious and aims to learn & share information about PHP & Laravel Development through practice and experimentation. He loves to travel and explore new ideas whenever he finds time. Get in touch with him at [email protected]