We’re going to interview Gary Jones, an excellent UK-based WordPress veteran. Gary is one of those guys who loves being able to lock himself in a room and code things. It’s probably the same way I love being able to lock myself in a room and blog. He’s got a great portfolio, and I’ve gotten his insights into all things WordPress. Since he’s emailed these answers to me from across the pond, you’ll notice that he puts his periods and commas outside his quotation marks. /rant
In Gary’s Own Words:
I’m a Genesis plugin and theme developer and freelance web developer from the UK, and I tend to summarise what I do as “I write code so others don’t have to”. I’m also father to Smidge and Smudge, extremely premature twins born towards the end of 2011.
When was the first time that you really got excited about WordPress and at what point did you decide to make it your career?
The first version of WordPress I installed was 1.5, so that makes it 2005 when I first started playing with it. At the time I was still working as a teacher in schools and prisons, so I was only really tinkering as a hobbyist developer and user.
I think the realisation that WordPress forms the bulk of my income and therefore my current career, was only fairly recently. Even now I still also sell myself as a freelance web developer, not just a WordPress consultant. For a period, I was considering trying to drop WordPress projects in favour of really getting to grips with the Zend Framework, as at the time I felt that it could lead to more income. The code and concepts in ZF are a lot trickier compared to WordPress development, so I stuck with the easy money.
Where do you go first to get your WP news, insights, and updates?
Twitter mainly. The WordPress folder on my RSS reader currently contains a dozen plus subscriptions to WordPress-specific sites, like WPCandy, or the personal sites of WP core and non-core developers, but I see most news first through the folks I follow on Twitter. If they’ve not bothered to tweet about it, I’m probably not interested in reading it.
What WP consultants deserve more love than they get? Who should we be paying attention to?
One developer I’ve had a lot of contact with and who has really impressed me with his progress is Thomas Griffin. I did a theme audit for him and spotted some interesting code in it that allowed a plugin included with the theme to be installed directly. We pulled this out and with my support, he developed it into the TGM Plugin Activation library that allows the same functionality for any theme or plugin. He also gave a WordCamp talk about it and apparently developers like Otto were impressed.
Thomas’s latest venture is the Soliloquy slider plugin – again, I’m really impressed with the features it has and how this has come about, as he’s only been coding for two to three years.
What performance tips would you give to other pros (as related to speed, scalability, security, plugins, backup, etc.)?
Whether you’ve got a dedicated or VPS server with nginx, Varnish and various other cache systems, or you’re on a shared host with none of the useful Apache modules installed, developers should just make sure that they are aware of exactly what the setup is. If you can arm yourself with the knowledge, even if it’s the knowledge that you’re currently on a poor-performing and insecure host setup, then competent developers should be able to make the right decisions to improve the situation.
Confess to us your biggest moment of WP fail?
I once accidentally overwrote or deleted a theme folder, during some cowboy coding, and hadn’t taken a recent backup. Luckily, I’d had the front-end of the site open in a browser and I spent the next hour recreating the theme and hoping I didn’t press refresh in the meantime.
If you were going to spend this weekend creating a plugin that doesn’t exist, what would it be?
One plugin that I’ve always liked the thought of, but have never seen done and have not managed to create myself owing to a lack of hooks in the right place in the WordPress user interface, would be called Multisite WP_DEBUG. It would add a checkbox to the per-site settings in the Network admin that would programatically enable WP_DEBUG just for certain sites on the network, meaning that you could have a live site at example.com with WP_DEBUG off, and a development subdomain at dev.example.com with it turned on.
Do you use Themes & Child Themes, roll your own, or both?
I use child themes, as then I can use the same parent framework theme and don’t have to apply different customisations to different sites to achieve the same result. It makes the workflow much easier.
I’m in the middle of writing my own starter child theme that has all of the common features I want built in and commented out, since then development becomes a case of simply skinning via the CSS, uncommenting some code and deleting other code, and that’s really going to speed up the production of theme creation.
What’s your favorite theme or theme framework? Why?
I always use the Genesis Framework from StudioPress.
I’d previously used another popular parent theme, but the developer wasn’t open in terms of receiving ideas or coding help, and I felt frustrated not being able to give something back.
I was introduced to the Genesis theme, and to Brian Gardner, and his reaction when I suggested a few simple improvements was exactly the right one. Since then I’ve volunteered and contributed a lot back to the framework code itself, including having had commit access to bring the levels of coding standards and documentation up to scratch.
Nathan has done a great job with the framework – its flexibility and power comes from the fact that everything is added via hooks: there’s no duplicate code like you’d find in stand-alone themes as it’s coded so well, and I’m really excited about 1.9.0 coming out.
I’d like to say any small plugin that does what I want it to and nothing more. However, looking through some of the plugins I use, I see that I find some of the big plugins most useful, like Scribe and Gravity Forms. Google Analytics for WordPress gets installed on practically every site I do, as does XML & Google News Sitemap Feeds which gets around the problem of having sitemap.xml files for a multisite install.
Least favorite plugin?
Any plugin that contains obvious errors or warnings where the developer hasn’t had WP_DEBUG enabled when writing it, and any plugin that insists on doing something the Wrong Way. If there’s a plugin I don’t like, I don’t use it, so it never has chance to stand out as a “least favourite”.
What’s the coolest thing you’ve ever done with Custom Post Types?
I’ve recently been working on my own site, and hopefully by the time this post has gone live, I’ll have a few sets of CPTs for Services, Work Projects, Testimonials and so on, linked together via Posts 2 Posts and common custom taxonomies. I know the use of CPTs can get far wilder that that, but there’s little point in using them unless there’s a real reason to do so – who really wants to be creating an IMDB clone anyway?
One really interesting usage of CPTs occurs in a WordPress Docs plugin tucked away as part of the reference documentation generation for the API. It creates custom post types for functions, classes and hooks, and I’m sure a lot more could be done with something similar for showing theme or plugin documentation within a WordPress environment, instead of something like the recently relaunched phpDocumentor 2.
What do you think is the biggest challenge that WP consultants will face in 2012?
Of the developers I’ve spoken to, their main challenge is trying to find more time to get all their ideas developed. There seems to be more work available than ever before, as an increased proportion of the web is switching over to using WordPress. I’ve had my competitors send potential clients to me, and I’ve tried to do the same where I think someone’s skillset is a better fit for what the client needs. For those freelancers who want to grow, their challenge is to move away from being hands-on for everything, and move more towards the outsourcing and managing side of the business, to make their own income and exposure grow.
To keep ahead of the game, however, every developer should also be trying to push themselves and learn more about the technologies and concepts that are perhaps secondary to their main task of writing code that works. I’ve recently been looking at using continuous integration via Jenkins, and having a build system using Phing that allows me to automate my tasks. I’ve also been reading through a great series on refactoring, which helps to write testable code.
Arguably, none of these are required to help a developer open a file and starting writing code that works, but it makes the workflow easier, and helps them write code that works the Right Way. If each developer can improve themselves, then we as a community can push WordPress to even more extremes.
If you could change one thing today about WP, what would it be?
I’d like to see a way where users can subscribe to different plugin / theme repositories, including adding in custom ones. That way, when WordPress does update checks, it can go and look for an update to my products from my repository (if the user is subscribed to it), and I don’t have to build the same duplicate Update classes into each of my plugins and themes that does the same thing.
Another thing I’d like to see change is a complete adherence to their own defined coding standards (why are they different to PEAR anyway?) – including a push during one release cycle that focuses on this, since old code that never gets updated will never meet the standards otherwise – and an official set of sniffs based on some unofficial ones for PHP_CodeSniffer, which means that the standards would be programatically testable, and a great example for developers in the community to follow.
Where do you see WordPress going in the next 2-3 years?
I think the core itself will just have refinement changes to the user interfaces and workflow, rather than entire great big new features.
Everything outside of the core will see even bigger plugins being created that turn WordPress into even more specialised systems for different scenarios. There have been a couple of articles recently about how it’s being used in journalism to create newspaper stories integrated with their existing systems, and WordPress-based eCommerce sites are moving in where only the eCommerce systems previously existed. Support ticketing systems and CRM / lead generation also show that it’s far more than just a blogging platform.
Hosted solutions for websites in a particular niche, like Noel, Tom and Joe have put together at Happy Tables, seems to be an emerging market, as do the App Store plugins for selling premium themes and plugins from the admin dashboard, although I’m not entirely confident that the latter will ultimately be that successful.
Tell us a story where you saved the WP day for yourself or on a client project. What made the difference for you?
A recent local client had been tied into the setup of another developer who lived across the road from them. I happen to know of this other developer, and know that web design and development is not his forte. The domain name was under the client’s name but at the developer’s address, the developer was reluctant to hand over host usernames and passwords to the client, so we couldn’t get in to the FTP, and the code on the static site was horrendous and about as un-SEO as you could get. The client had been waiting over 6 months to get one line of text changed on the site.
I showed them the back end of a WP install, and explained how using it means that once the site is set up, they have no need to rely on the developer to make content changes, including uploading and displaying images. They were thrilled.
What’s the biggest misconception you encounter about WordPress, and how do you clear it up for your clients?
Some users may think using WordPress is too technical – and the simplest way around that for me is to set up a demo site where they can log in, edit and publish a post, and see their changes go live, with no coding needed. Getting them to just think about what their content should be, and not necessarily how it should be presented (at least to start with), means they soon see that it’s no trickier than editing a text file or MS Word document.
I still don’t think WordPress is intuitive for completely new users, or those who aren’t confidently computer-literate, so some training is needed for them.
If you were interviewing another WordPress developer for a job, what is the first question you would ask and why?
Name five places you could look at to get an answer to a code-related question.
I’d obviously expect someone to have at working knowledge of the basics, but I’d also want to know whether they could list a few places where they might discover the answer for themselves. Knowledge is power, even if it’s knowing where to look next for help.
What did I miss? Here’s your chance to fill in the blanks and add something you want people to know about you!
Personally, I’m in the middle of working with some partners and re-aligning my company to provide premium plugins and themes in addition to the services I already offer, which should ultimately give me more time to spend with Smidge and Smudge 🙂
If you click over to Gamajo.com, you can check out Gary’s site and his portfolio. He’s a WordPress craftsman, and you should work with him!