Matt Stauffer is a Partner and Technical Director at Tighten Co., a consultancy company that partners with non-profit and businesses to help them develop software for their brilliant ideas. Matt also runs Symposium, FieldGoal, Giscus, Confomo, Karani for Fundraisers, and Gistlog with his folks at Tighten Co.
Matt attends and speaks at numerous conferences and loves to talk and blog about development. Here, Matt talks to Cloudways about how he started his career in PHP programming, his preferred PHP framework, and a lot more.
Cloudways: Hi Matt, it’s great to have you onboard for this interview. Let’s start with your career in PHP programming. What motivated you to opt for PHP development in the first place?
In the early 2000s, I started digging into development a bit more and started writing small custom content management tools for my freelance clients. After a few of these I wrote my own mini CMS called CampusPress, but right around when I got ready to promote it to the public, WordPress was released, so I just threw it out and used WordPress for most of my clients.
Cloudways: Matt, you have contributed a lot to open source projects. How do you manage all your projects? Do you think that working on open source projects benefits developers?
Matt: I don’t know if I can say I “manage” my projects–more like I “barely stay above the water.” 🙂 For me, it’s mainly about triaging bugs that make the projects entirely unusable, and then everything else is left for “when I can get to it,” which these days is less and less frequent. It helps that coding is my primary hobby, so when I do find a few minutes of free time, I’m going to spend it coding probably.
One of the things I love about working on open source projects is that many of my projects have certain contributors who’ve started loving the project and taking a level of ownership. For example, Michael Dyrynda worked with me on a re-write of ConFOMO (which we documented in a mini-podcast), and he now replies to many issues faster than I do. Jacob Bennett has contributed quite a bit to Gistlog, and he’ll often be the first line of interaction on issues and pull requests.
And, of course, anything that we put under the Tighten namespace means that folks on the Tighten team can use their 20% time to work on it. Keith Damiani is doing incredible work keeping up Jigsaw, and Benson Lee is kicking butt on Collect and MailThief a few other projects.
I think you can probably guess my answer, but yes: I think working on open source projects is a brilliant tool for developers. It helps you learn how to code better as you take on new challenges and work with new developers; it helps you get your name out there; and it becomes a portfolio piece, as you now have some of your (hopefully best) code out there for anyone to see. That’s part of why we give our developers at Tighten 20% time to work on, among other things, open source.
Cloudways: You have worked on several frameworks including Laravel, Symfony, and Yii. Which one impressed you the most? Which framework would you recommend in terms of performance, scalability and performance optimization?
Matt: Well, that’s a bit of a dangerous question! I don’t think I’m qualified to give a final decision on which framework is the best or the fastest or the most scalable. Every tool is useful in particular situations. That having been said, I don’t think there are any projects when I would choose Yii; it has too much overlap with Laravel (and between the two, I much prefer Laravel’s way of thinking and working) to make it worth me digging into becoming a Yii expert. I know how to work with it because it’s the foundation of CraftCMS, but it’s not something we reach for regularly.
Symfony’s components are brilliant. No question. And I think that Symfony’s entire ecosystem and tooling are targeted a certain sort of development. The easy label is “enterprise,” although I would push back on that idea (we have plenty of enterprise clients on Laravel), I do think it does have something to do with complexity and the size of the team.
Having said that, I personally (and Tighten as a company) prefer Laravel. We’ve used it in 3-day rapid application projects, and we’ve used it for 5-year projects with dozens of developers; we’ve used it with projects that are thousands and tens of thousands and hundreds of thousands of lines of code and alway been happy with it.
Do I think Laravel is the best? I studied English in school. I spend as much time in frontend development and design and writing as I do on backend development. I’m not ready or interested in engaging in a pedantic fight about what “best” means, and I honestly think the context of each project and developer will influence how they approach and interpret that metric.
But which would I recommend? Laravel. Hands down, every time. Amazing community, easy onboarding, flexible, easy to start a project but customizable down to the barest bones. And yeah, it can scale, it’s fast, it’s optimized, and optimizable to your liking. Honestly, Laravel is the one thing that kept my company and me from converting to being a Rails shop. I couldn’t recommend it more. Taylor gets how to write simple but flexible APIs, how to write clear and thorough docs, and how to create a vibrant and positive community.
So, what does this mean for the future of PHP? Good stuff. All good stuff. As much as I love the WordPress community, we don’t use PHP because it’s the highest adopted language. We could lose the entire WordPress share, and our numbers could drop, and I’d still use PHP. The rise in the popularity of Rails certainly saw a lot of former PHP developers leave for Ruby and Rails, so you could see that as a bad thing. But PHP as a language and community have grown so deeply because of the influence of Rails. CodeIgniter and many of the old PHP frameworks that preceded Laravel and have shaped its community were essentially attempts at cloning Rails in PHP.
Cloudways: What development workflows and tools do you use for your projects? Briefly, share the strategy you follow for timely completion of projects.
Matt: We work in an agile style (notice the lowercase a.) We don’t have dedicated scrum managers or whatever else. But we have daily standups, we work in sprints, we have kickoff meetings and retrospectives. We try to work inspired by the agile manifesto and by Extreme Programming. Our goal is to have the minimum amount of overhead for the client to be satisfied and the developers to have the best possible working environment. On a small project, that might be a weekly one-hour check-in between a PM and the developer. On a big project, that might be daily check-ins and weekly delivery meetings. It all depends on the team and the client.
On our current projects, we’re most likely to use Trello to track tasks and Basecamp to keep track of longer form writing that doesn’t fit well in Slack. We use Slack for everything else. We also use GitHub, Forge and Envoyer, Codeship, Bugsnag, Nitpick-CI and Hound, and probably five other tools I’m not even thinking of at the moment.
With regard to code, the main rule is: no code enters the codebase through any method other than a pull request. Again, everything else–who code reviews, whether you can merge a PR without code review, etc.–depends on the team and the project. But everything must be pull requested.
Cloudways: You did a podcast with Cal Evans on latest changes in Laravel. How do you see the future of Laravel? What are your favorite features of Laravel 5.3?
Matt: The future of Laravel is a little hard to define. I don’t see it changing in any drastic ways–it’s tended to keep a relatively consistent API and structure over time. Even when there are more noticeable changes, it’s usually to correct a piece of the framework that seemed inconsistent either with the rest of the framework or with its overarching ethos. I know it’ll be actively updated–Taylor’s quick with security updates and integrations with new technologies, and always reading through the source and the documentation to find places where it can be smoothed out–but I don’t see any massive shifts coming in the near future. But who knows.
I think my favorite features in Laravel 5.3 are Scout, Passport, and Mailable/Notifications. Scout is a package that makes it absurdly easy to index your Eloquent models in a full-text search tool like ElasticSearch or Algolia. Passport makes the task of creating an OAuth2 server finally not-awful. And Mailable and Notifications re-work the concept of sending the user a notification into something that is structured much more like how my brain works and can quickly adjust to the user’s preferred notification style.
Cloudways: Let’s talk about your book Laravel Up and Running. What major concepts does the book offers to Laravel developers and kick starters?
Matt: I wrote Laravel: Up and Running with two primary goals in mind. First, I wanted to make it possible for PHP developers who don’t know Laravel to gain the knowledge to use Laravel in their projects as quickly as possible. It covers the basics first–starting with routing, since what web-based project can exist without routes?–and moves into more and more complex and esoteric features as the book goes on. Within the first few pages you already have the tools necessary to spin up a new Laravel app and write “Hello, world!” and we progress from there. I wanted to make sure that a developer who’s familiar with a framework like Symfony or Yii or CodeIgniter could get working with Laravel as fast as possible using the book.
Second, I wanted there to be a sort of “all things Laravel” resource out there. I often point people towards resources like Laracasts or my blog, but they’re not the sort of thing that make it easy to start at “the beginning” and read forward. I wanted a single resource I could point someone to and say: “Ready to learn Laravel? Start here.”
Cloudways: Who are your friends in the Laravel community? How could newbies take advantage of this amazing network? What is the best way of tapping into the community?
Matt: Everyone’s my friend in the Laravel community. They’re all amazing people. I could fill up a few pages with a list of people I’ve had really positive interactions within this community. There are so many folks I want to tell you to follow and connect to and everything, but again, it’d take pages, and I would certainly forget at least a dozen people.
So here’s the ABSOLUTE must-follow list. Taylor Otwell, the creator of Laravel. Jeffrey Way, creator of Laracasts. And Laravel News, the best site for Laravel news. (Gosh, if only you knew how hard it is to not write a few dozen names down here… I’m trying to keep this short…) I try to make sure I write up every major change and feature on my blog, so you might want to follow my blog or my Twitter.
Larachat is the best place to ask questions (or #laravel on Freenode if you’re old school). Laracasts is the best place for ongoing learning. Listen to the Laravel Podcast and the Laravel News Podcast.
There’s also local Laravel meetups and Laracon US and Laracon EU.
Cloudways: Matt, you are also active in podcasting. Could you share some amazing podcasts with our readers? Given you busy schedule, how do you find time for podcasting?
Matt: Well, I would be remiss if I didn’t mention the podcasts I host and co-host. I’ve already talked about the Laravel Podcast, which I co-host with Taylor and Jeffrey, but I also podcast solo at the Five-Minute Geek Show.
In terms of others: Full-Stack Radio is one of my favorite podcasts ever (and, honestly, anything Adam Wathan does is gold). I love The Laracasts Snippet, another short podcast. I love Bootstrapped, Founder’s Journey, Startups for the Rest of Us, Giant Robots, and Revisionist History.
I am struggling to find time to podcast, to be honest. But one of the things I did early with the Five-Minute Geek Show was to focus on minimizing the amount of effort it took to take a recording and get it live. I switched to Garage Band to simplify the recording and effects. I moved my hosting from a self-hosted static site generator to Simplecast. I dropped the video component. I wanted to be able to say “BRB, Podcasting” in Slack and show back up 20 minutes later with a published podcast. I think I’m doing a pretty good job of that.
Cloudways: Matt, you were recently blessed with a baby girl (Congratulations from Cloudways readers 🙂 ). How has this affected your life? Could you share a pic of the little angel? How do you spend your free time now?
Matt: Thank you for the congratulations!! She’s precious and adorable, and she also spends most of her time pooping and sleeping. You know–normal baby stuff. Here’s the picture I put up when she was first born:
Here’s li’l miss, cheesing a few hours after she was born. 🙂 pic.twitter.com/AguGOgipys
— Matt Stauffer (@stauffermatt) July 31, 2016
Life is… different and the same. This is our second kid, so in some ways, this is just more of the same. But our first is a boy, and he’s four years old now, so this is my first girl–which is really different in amazing ways. This is also our family returning to having an infant and returning to diapers and long nights after we had moved past it with my son. This is my baby boy suddenly being a big brother. There’s a lot of change, but in the end, our family is still the same… just bigger. I love it, and I love her.
Free time? Ha. You must not have kids. 🙂
Cloudways: Now for a traditional Cloudways question. Could you share a picture of your office space with our readers? What fun things do you do at work?
Matt: The most fun thing I do at work is bring my son in here so he can say “hi” to everyone else who works in my co-working space. Sometimes my wife and kids come in, and we have lunch together in my office.
I chose to drive 25 minutes away from my house every day so I could be in Gainesville’s downtown, which means I can walk a few minutes out of my office and get great coffee, food, and a really nice walk. able downtown for meetings or just a quick walk while I’m on a phone call
My office itself is nothing special. Half of it is trashed right now as I re-organize the whole office, so I’ll just show you my desk for now.
I have my podcasting equipment and also my synth (keyboard) in the office, so I guess that might technically be the most “exciting” thing I do here?
Cloudways: Matt, What do you think about managed hosting solutions like Cloudways that provide an optimized PHP stack with Laravel and other features? Do you think that managed hosting solutions help developers kickstart their web projects without worrying about server management issues?
Matt: To be honest, I’ve never used Cloudways. But I love the idea of managed hosting solutions in general. I have managed my own servers in the past, and it’s one of those things I put in the stack of “better to pay people other to do for me.” I’m glad I have an accountant I can pay to know about taxes for me. Glad I have a lawyer. Glad I have a plumber. And I’m glad I have folks who run SaaSes that make my development life easier–including hosting and dev-ops.
Start Creating Web Apps on Managed Cloud Servers Now
Easy Web App Deployment for Agencies, Developers and E-Commerce Industry.