In conversation with Matthew Turland, all the way from Lafayette, LA. Matthew is a professional software developer, author, and speaker, with over 20 years of experience in the software development industry. Matthew is also involved in open source development communities, and he is a well known figure in the PHP and GitHub community.
Shahzeb: Hello Matthew, thank you for taking time out for this interview. Before we start, how about you tell our readers a little bit about yourself?
Matthew: I was born and currently reside in Lafayette, Louisiana. Up until recently, I had lived in New Orleans for several years, but recently moved back to Lafayette after losing my home to Hurricane Ida. I received my bachelor’s degree in Computer Science from the University of Louisiana at Lafayette some 15 years ago now.
I started working in 2000, not long after graduating high school. My first job was with an engineering company and dealt mainly with Excel spreadsheets and Access databases using Visual Basic for Applications (VBA).
From there, I moved on to a job with a media conglomerate developing a custom content management system for news publications. They were a Microsoft shop: Windows 2000 Server, SQL Server 2000, IIS, and classic ASP in VBScript. This was before .NET came on the scene.
What happened next actually dovetails nicely into your next question…
Shahzeb: So, when and how did you start your career with PHP? Any interesting stories that you would like to share about your journey? What were the challenges you faced in the beginning, and how did you overcome them?
Matthew: My third job was in a PHP shop. At the time, I was a university student and had a bit of C/C++ under my belt, so the syntax of PHP wasn’t entirely foreign to me and I was able to pick it up relatively quickly. At the time, my employer had some legacy applications running on one server with PHP 3 and its newer applications were on a server running PHP 4.0.3.
Everything you may have heard about code from that era is probably true. This was before many of the mainstays of modern-day PHP development existed: autoloading, type hints, namespaces, Composer, etc. Code was littered with require statements and largely procedural, with very little code sharing that didn’t involve manually copying it from a site like phpclasses.org and pasting it into your own project.
These were largely limitations of the language and its ecosystem of the time. The core team was fairly insular compared to today and operated on a karma system. The RFC process didn’t exist yet, and progress in developing the language core tended to be very slow.
I think the best thing that most people, myself included, were really able to do at the time was to become actively involved with the community, communicate with others in it, form relationships, and draw attention to the problems of that era so that things would eventually change. If nothing else, I think those experiences gave us a status quo by which to judge the state of things today, and I think the language and ecosystem have both come a long way since then.
Shahzeb: Mathew, you also wrote the book Web Scraping with PHP. Could you tell us a bit about this book? Who should read this book and how does it help developers improve and become more efficient?
Matthew: In hindsight, the book’s title can admittedly be a bit misleading.
The experiences that influenced me to write this book date back to my first job with PHP. I worked on a project there that involved automating the process of getting data from a custom user interface into two different data third-party systems that had some overlap in what data they collected. Neither of these systems had an API – to memory, they weren’t nearly as pervasive then as they are now – so we had to resort to alternative methods, namely web scraping, to meet the project’s objectives.
That said, anyone with an interest in learning more about HTTP, how web browsers and servers work and interact with each other, how to handle extracting data from markup, or how to handle automating tasks that involve web applications (e.g. system testing) should read this book.
I didn’t realize it at the time that I first started working with PHP, but I was using HTTP the entire time without really being aware of it. I did my best to write a book that I wish I’d had when I started PHP development, and one that showed some of the really neat things you could do with the language.
Shahzeb: What kind of research do you do, and how long do you spend researching before you begin writing a book?
Matthew: The research I did before I started writing was pretty cursory: market analysis, an elevator (or “back cover”) pitch for the book, a table of contents that outlined the major topics I would cover, and so forth.
Most of the research involved in the actual content of the book was done as the book was being written. Much of it involved looking at the various HTTP client libraries and XML extensions of the time, figuring out how they worked, and coming up with examples to showcase how to use them. In the process of doing that, there were even a few instances where I reported bugs because I found incorrect behavior.
I went back and forth between research, writing, and editing for six or seven months straight. Writing the first edition of the book was very time-consuming; basically, every free evening and weekend was devoted to it during that period.
Shahzeb: Would you like to share some tips and tricks for those who are just starting to use PHP?
Matthew: Give the language a fair shake. Anything you’ve heard about PHP from 5-10 years ago is likely sorely outdated by now.
Learn about the standards pioneered by the PHP Framework Interoperability Group (FIG). This will arm you with a lot of useful knowledge that applies across an array of modern PHP frameworks.
Get out there and meet all the wonderful people in the community, which is in my opinion its most valuable offering. Go to PHP user groups or conferences. Seek out subcommunities on Slack, Discord, Stack Overflow, or IRC that you can join. Find projects you’re passionate about and contribute back to them. These are the best ways to learn.
Shahzeb: It seems like you enjoy speaking at PHP conferences around the world. Any insight on the topic you’ll be speaking on this year? And where?
Matthew: I’ve got a few ideas for new talks I’ll be pitching; I’ll probably be taking some time to write out formal abstracts for them during the holidays.
One deals with SQL and its interrelations with set theory. The latter is a topic that I think is useful, but I don’t see it covered much at conferences; I learned about it at university.
Another deals with web scraping. My reputation for being knowledgeable of the topic began with an article in php[architect] Magazine and developed from there into the book. Oddly enough, I’ve never actually given a conference talk on the subject, so I figure it’s time to change that.
The last idea I have at the moment is for a successor of sorts to my recently popular talk “How to be a Great Developer.” It will focus on mentorship and delve more deeply into how to bring new developers into the industry and help them progress professionally.
Improve Your PHP App Speed by 300%
Cloudways offers you dedicated servers with SSD storage, custom performance, an optimized stack, and more for 300% faster load times.
As to where I may be giving these talks, it’s difficult to say just yet. I recently attended Longhorn PHP – which is a great conference, by the way – in Austin, Texas. This was the first conference I’d attended in person since the COVID-19 lockdown began. I expect I’ll stick to nearby domestic conferences that I can travel to by car or on a short flight for a while, at least until conditions related to the pandemic improve.
Shahzeb: What do you enjoy doing when you’re away from your laptop?
Matthew: I like playing with my two dogs, Sierra (a tricolor Pembroke Welsh Corgi) and Kaylee (a rat terrier-dachshund mix). They were named after characters from the Dollhouse and Firefly science fiction television series. I’m a bit of a geek, if you couldn’t already tell from that. I enjoy reading and watching science fiction, though I don’t find the time for it as often as I’d like.
I also enjoy hanging out with my wife. We took up watching videos on YouTube during the pandemic, mostly channels dealing with cooking and making cocktails, and making use of what we learned in the kitchen.
Shahzeb: Which type of web hosting would you prefer for your clients or community members? In your opinion, is conventional shared hosting a viable option for the projects that you do?
Matthew: I don’t have a strong preference, honestly.
I think shared hosting is still a viable and affordable option, especially for smaller sites or projects.
In recent years, cloud hosting has become a more prevalent option, but I think it tends to be better suited to larger commercial projects with more complex infrastructural requirements and experienced personnel.
If the quality of broadband connectivity in the country improves and technologies like the Raspberry Pi continue to develop as they have been, I can also see self-hosting becoming a more common and viable option than it is today.
Shahzeb: What are your thoughts on hosting solutions such as Cloudways? Do you think these solutions add value to PHP-based applications?
Matthew: I do think solutions like Cloudways add value. I believe a lot of independent developers and small startups could benefit more from the offerings of cloud hosting than they do now, but struggle with the related complexity and expertise required. There’s a reason that DevOps is a role unto itself these days, and why people who are good at it can be difficult to find.
Shahzeb: It can be hard to balance work with your personal life. What do you enjoy doing in your spare time? Any hobbies you’d like to share?
Matthew: I still have coding side projects that I work on in my spare time. The current one is for personal finance management. I hope to eventually open the source up for contributions, but it’s in a pre-alpha state at the moment.
I’ve enjoyed tabletop roleplaying games for many years. During lockdown, I got together with a few friends online and we’ve been playing D&D a few times a month since. I’ve also joined another group that’s playing Werewolf. I’ve run a small handful of campaigns in the past that aren’t active anymore; I’m in the process of writing a module based on one of them, but that’s a long-term project.
I’m also a casual player of video games. I play the occasional mobile game, such as Best Fiends or Wordscapes. I also enjoy Steam games; some of my most recently played ones on that platform are SteamWorld Dig 2, a cute steampunk-themed puzzle/platformer, and Darkest Dungeon, a gritty dungeon delver. I find games are a nice way to unwind.
Ask anyone who knows me and I’m sure they’ll tell you that I love karaoke, singing, and music. I don’t get to do them outside of my home as much as I’d like, but I try to whenever I can. If you happen to catch me at a PHP conference, there’s a decent chance I’ll try to coordinate an outing to a local karaoke bar at some point while I’m there.
Shahzeb: Who do you think we should interview next, and why?
Matthew: Your list of interviews is quite the Who’s Who of the PHP Community!
There’s a long list of names I could probably give, but if I had to choose one person who hasn’t already made that list, I would probably have to suggest one of the core developers of the ReactPHP project, particularly Cees-Jan Kiewiet (@WyriHaximus) or Christian Lück (@another_clue).
The core ReactPHP team is small, but fairly tight-knit and very friendly. They produce a lot of really cool packages for doing various forms of asynchronous programming in PHP, and have really helped to push the boundaries of what can be done with PHP as a language.
Shahzeb: To inspire our readers, I would appreciate it if you could please share some snapshots of your office space or your current workstation.
Matthew: Thank you for giving me an excuse to tidy up my desk a bit. I’m admittedly not always as good about that as I should be.
My laptop gave up the ghost not long ago, so I’m using a 2017 Macbook Air loaner until I can sort that out.
My phone is a Samsung Galaxy Note 9. The other charger you may notice is for my Samsung Galaxy Watch3.
Those are the things I use most of the time while I’m at my desk. The rest is mostly odds and ends: adapters, peripherals, and stuff like that.
Shahzeb: Thank you once again, Matthew!
Matthew: Thank you! It was my pleasure.
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]