Pippin Williamson - Finely Tuned WordPress ConsultantThis week, I’m talking with Pippin Williamson, a WordPress developer based in Lawrence KS. Pippin and I met IRL at WordCamp Kansas City that he helped organize.  He’ almost as charming on twitter as he is in person. Pippin is a plugin specialist, which you can see on his portfolio site, PippinsPlugins.com. He spends most of his time building new WordPress plugins and supporting more than 40 plugins in his portfolio. You can also check out his site for WordPress plugin tutorials.

In his own words:

My name is Pippin Williamson; I am a country boy that grew up on an organic apple orchard (one of the varieties is my name sake) and have found myself working a career as a WordPress developer, where I spend 8-14 hours per day in front of my computer screen. And I love (almost) every minute of it. When not developing plugins, I prefer to spend my time biking outside, exploring urban structures (such as underground tunnels), and spending time with my new infant daughter and wife.

Onto the questions

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 time I found myself really loving WordPress was after I wrote my very first tutorial for Pro Blog Design on how to create a custom Font Uploader. This tutorial was later turned into a plugin and it was this plugin that pushed me into developing plugins. I’ve never gone back to theme development since.

Where do you go first to get your WP news, insights, and updates?

Twitter is my primary source for WordPress news. By following the right people, there is rarely a piece of good news that I miss, especially since the really good ones tend to get tweeted over and over again. I find that most of the people within the WordPress community that I really care about are also pretty active on Twitter, which makes it exceptionally easy to stay up to date with what they are working on.

What WP consultants deserve more love than they get? Who should we be paying attention to?

Michael Martin (who is largely responsible for jump starting my career) is a phenomenal developer who has awed me over and over again. Another developer, who is quickly rising up among the ranks of who I would title “elite developers”, is Thomas Griffin. His work on the Soliloquy slider plugin is just awesome.

What performance tips would you give to other pros (as related to speed, scalability, security, plugins, backup, etc.)?

The first thing I would tell others is to stop thinking about the number of plugins you have installed, but, instead, to think about the quality of plugins you have installed. You could have 100 plugins installed and have almost zero impact (yes, I mean zero) on your load times and performance if each of these plugins only has a few lines of code and are not loading resources, such as Javascript or CSS files. The only time plugins actually cause a negative effect on performance is when they load resources or perform complicated tasks that use extra memory. There is also absolutely no difference between placing code (such as for Google Analytics) in a plugin or a theme: the performance is identical. The only difference is that when plugins are used, the code is not lost when changing themes.

Confess to us your biggest moment of WP fail?

One of my worst fails, which has happened several times, was when I was attempting to fix a broken theme for a buyer of one of my plugins (I believe they had a jQuery conflict). I decided to edit the theme files directly through the built-in theme Editor and, of course, I accidentally left a syntax error, but failed to realize it until after I pressed “Save Changes”. This then caused a white screen for their entire site, leaving the site 100% inoperable, and it remain this way until the site owner could provide me FTP access the next day. Luckily, I don’t believe the WP admin breaks when the theme’s front-end has a syntax error.

If you were going to spend this weekend creating a plugin that doesn’t exist, what would it be?

I would probably look into building a plugin to provide access to all features of the Stripe.com API for processing credit cards inside of WordPress. This would include payment forms for accepting one time payments of any amount, discount codes, flexible recurring billing, payment history, purchase receipts, and all of the other great features that Stripe offers its users. There are a lot of plugins that integrate with Stripe, but none of them provide a complete system, and even fewer of them provide the ability to do recurring payments.

Do you use Themes & Child Themes, Roll your own, or both?

Yes, I use themes built by other developers for all of my personal websites, and all of them are running on child themes of the developer’s original work. Most of the time when working on freelance client projects, I usually build my own custom theme, based around their site’s specific needs.

What’s your favorite theme or theme framework? Why?

I usually don’t enjoy working with theme frameworks very well, but recently, by using it on my own sites, I have fallen in love with Jason Bobitch’s “Theme Blvd” or “Jump Start” framework. The code base is excellently written and it’s very flexible. He’s one of the only developers I’ve come across that has successfully built a good drag and drop layout builder.

Favorite plugin?

I really love simple plugins, so I’d have to say my all time favorite is ‘Duplicate Post’ by Lopo. It allows you to easily clone any post, page, or custom post type entry and create a new draft from it, which is exceptionally handy for creating test or demo content.

Least favorite plugin?

There are quite a few that I don’t like, but it’s hard to single out just one, so I’ll just say any plugin that does a really poor job of working with other plugins or themes. One of the things I hate to see the most is when a plugin has decided to remove a core WordPress component, such as the bundled version of jQuery, that other plugins rely on, making the others break. Since a plugin developer has no way of knowing what other plugins a site owner may be running, they should always work hard to use the resources provided by WordPress core.

What’s the coolest thing you’ve ever done with Custom Post Types?

One of my favorites was the gallery system I created for the CG Cookie.com network of sites: http://cgcookie.com/blender/gallery/. It’s a user submitted image gallery, meaning registered users get to submit their own work to the public gallery. The gallery images can be sorted in a variety of ways, including those that have been featured, those from a specific category, or those from users that you (as a user) are following. Images can be commented on, “Loved” and bookmarked. Overall, the entire system was pretty slick, and super fun to create.

If you could change one thing today about WP, what would it be?

With the huge number of “premium” themes available on the market, plugin/theme conflicts are incredibly common, and it ends up being largely the job of consultants and other developers to fix the problems left by negligent or unknowing developers. I think we are finally getting to a point where problems like jQuery conflicts in poorly coded themes are getting a lot of recognition, so now it’s just a matter of driving the best practices into developers over and over again.

I update the settings API so that it is much easier to use. If you know what you’re doing, the settings API is great, but if you’re not a hard core developer, it can be extremely difficult to understand and make work. One simple enhancement it could use is the presence of default callback functions for option field types. Currently, if you want to add a check box to your plugin or theme options, you have to first register the option and then create a function that outputs the HTML for the check box. Well, most check box options look / act exactly the same way, so there should be defaults in place so a custom function isn’t required.

Where do you see WordPress going in the next 2-3 years?

The same place it has been going for the past 2-4: up and up. WordPress is improving every single day and I think it will continue to improve. I expect we will especially see more and more movement towards thinking of it as a real content management system.

Tell us a story where you saved the WP day for yourself or on a client project. What made the difference for you?

It wasn’t as much a “save the day” kind of moment, but rather a “the lights of understanding have just turned on.” While working on a plugin (I believe it was my Simple Notices Pro), I was doing some ajax data processing, and having a heck of a time with it. Over and over again I would get an error message that said “-1”, and I could not for the life of me figure out what it was or where it came from. After a while I would get it working, and then suddenly the error would be back. I finally gave up and said to myself “let’s figure out how this stuff works in core”, so I starting digging around in the WordPress core files. Within 5 minutes I had found where the error message was coming from and why it was being displayed. This method of figuring things out has been my motto ever since: find out how core does it. If you can figure out what is going on under the hood, solving problems will be infinitely easier.

What’s the biggest misconception you encounter about WordPress, and how do you clear it up?

I get asked this question over and over again: “What’s the difference between categories and taxonomies? Oh, and what are terms?”. It’s clear to me now, but was definitely confusing at first, and it’s really confusing for a lot of people. What I try to explain to people is that a “category” in WordPress is identical to a taxonomy; it’s just one of the taxonomies that is included by default.

If you were interviewing another WordPress developer for a job, what is the first question you would ask and why?

Can you write extensible code? With every plugin I build, I rediscover the importance of building modular code that is easy to modify and interact with by other plugins and themes. I will never build another plugin that doesn’t use extensible code, so I wouldn’t want someone working for me who was unable to write extensible code.

What did I miss? Here’s your chance to fill in the blanks and add something you want people to know about you!

One of the projects I’ve been working on lately, with my buddy Matt Varone, is Easy Digital Downloads. It is a plugin specifically built for selling digital downloads through WordPress. I’m always interested in getting feedback about the plugin, so check it out at http://easydigitaldownloads.com. It’s free.

Thanks Pippin!

You guys can mosey on over to Pippins site, PippinsPlugins.com, to check out his work. It’s *really* good.