Otto on WordPressHey Folks, I had the chance to meet Samuel Wood, best known as Otto, at WordCamp Kansas City 2 weeks ago, and he was kind enough to do the Finely Tuned profile on the blog.  Otto and I got to talk for a while at the WordCamp, mostly about some new plugins he is working on and whether the adage, “the fewer plugins, the faster the site” is actually true (he disagrees with it).  I won’t go into too much detail about his background, except to say that he works with Matt Mullenweg at Audrey Capital, and has developed plugins like the “Simple Facebook Connect,” among others.

In his own words:

My name is Samuel Wood, but everybody except for my parents actually calls me “Otto”. I work for Matt Mullenweg at Audrey Capital, doing weird and wonderful things around WordPress and for the WordPress.org website. You may recognize my avatar from, well, everywhere. 🙂

When was the first time that you really got excited about WordPress and at what point did you decide to make it your career?

I started using WordPress around 6 years ago (2.1) for my own website. See, I’d had a website off and on since college, but it was just static HTML and a place for me to host files and such. Never even really bought a domain name for it. One day, I decided I wanted to make it better, and so went looking for the most interesting open-source website tool, and voila. After about a year of helping out on the support forums, they made me a moderator. I dabbled with freelancing for a bit after a startup I was working for ran out of funding, and I did some work for Automattic for a month helping out with updating their themes. About a year later, Matt Mullenweg called me up and offered me a job at a new company he was forming, and I’ve been doing WordPress full time since then. I think it was the Memphis BBQ that actually convinced him to hire me. 🙂

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

Well, I actually work on the WordPress.org website, so for news I really just talk to the people I always talk to. For general WordPress community related news, I subscribe to a few dozen sites like WPCandy and WPTavern and such, but I’m pretty much involved everywhere around the web with WordPress, so there’s no one particular site that I can
point to and say “that’s the place to go”. The thing about the WordPress community is that it’s very diverse and specialized in places, so you have sites all about themes, or sites all about design, and so forth. As a bit of a generalist myself, I find it pays to just read everything I can.

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

In my opinion, the most underappreciated people in the community are people providing support on our forums, or those people providing support on the stack exchange site. It takes an extreme amount of patience and brainpower to help others in the community with their problems for, essentially, free, and they do some amazing work. The community is built out of volunteers, for the most part, and a lot of them have day jobs that aren’t WordPress related at all. For example, one of our moderators and general-awesome-all-around people is Ipstenu, and she works at a bank. In her spare time, she answers questions on the forums, cleans up the spam, scans new plugins for issues, chats on the mailing lists, and just generally helps out in any way she can. People like this are what really makes the community fun to work with, and the people answering questions in the forums deserve all the props they can possibly get.

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

The backbone of your site is the server. If the server isn’t up-to-par, then no amount of fiddling with PHP or caching plugins will help it. At some point, your site will always outgrow the server it’s on, and you’ll need to upgrade it. So you’ll want to be with a hosting company that really knows their business and isn’t just blaming the PHP code for all the speed problems you’re having. WordPress itself is perfectly scalable (as has been shown many times), but the server needs to be configured intelligently to be able to do it. The server itself also needs to be properly secured, and this is not necessarily the most obvious thing in the world to do. A rather shocking number of cheap shared hosting systems are just inherently insecure, and when malware gets onto the system at any point, then it typically will target WordPress simply due to it being the most popular. Secure the server first, or get a host that takes security seriously.

As far as plugins go, the one thing I hear the most from people is that they consider the author of the plugin to be the most important piece of information when choosing a plugin. If the author is active in the community, contributes to core, runs a WordPress based business, etc., then the plugin is likely to be good and up to the task. There are good plugins by people unknown in the community as well, but if I see a plugin from Mark Jaquith, Andrew Nacin, Dion Hulse, etc., then I know the plugin is written correctly and will do the task well. Simpler plugins are better than complex plugins also. A plugin that just does one thing is less likely to break than one that throws in the kitchen sink. Pay no attention to the “number” of plugins on a site, instead pay attention to how well they are supported and how active the author is in the community, and you’ll be okay there.

For backup, just get VaultPress. It’s super awesome.

Confess to us your biggest moment of WP fail?

I use my own plugins in a variety of places, and one such place is WordPress.org itself. One time I made a breaking update to my own plugin, and before I had a chance to correct it, Nacin pushed the update to WordPress.org by mistake. This took down the WordPress.org blog for around 5 minutes or so until I fixed the plugin. Since then, I’ve learned to not push any breaking changes to my plugins into the repository, even temporarily. We run all our sites on the trunk code, and so I’ve learned to always make sure the trunk code actually works and isn’t broken, because people do run live sites on trunk. Including me, now.

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

I spend most weekends creating plugins that don’t exist. Last weekend I created a plugin that lets me quickly and easily create new plugins. I call it Pluginception.  Ed. I want this one, Otto.

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

Yes to all of those. While I have no themes under my name in the repository, I wrote the theme code for Matt’s newest theme on http://ma.tt. The actual design work was done by the brilliant Nicolò Volpato, who also did Matt’s previous theme, which I cleaned up and released as Matala.

For my own sites, they’re more of a playground for me, so I use Twenty Eleven on most of them, and a heavily modified version of the “Fluid Blue” theme on ottopress.com. I’ve been thinking about redesigning that site, but the problem is that I’m pretty terrible at design. So my plan is to find somebody to come up with a design for me, then I’ll just code it up myself.

I also write quick themes for friends, from time to time, when they need it. Custom one-off jobs. The code for them is usually pretty bad, but simple enough that they can figure it out themselves if they want to change something. Simple code is often better than highly configurable code, because even non-coders can figure it out.

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

I’m not big on theme frameworks. To me, a lot of them seem like a solution in search of a problem. I’m sure they help many people, and I know for a fact that a lot of theme authors prefer a more structured and organized way to do their theme code, but honestly I think that the theme hierarchy is good enough for almost anything, and that keeping the code simpler instead of building a big structure around it makes it more maintainable in the long run. The lifetime of code is more and more frequently measured in years instead of decades, and so spending a lot of time to build a grand infrastructure to do what could quickly and easily be done with a simpler flat layout seems like a waste of time to me.

I have no real “favorite” theme. I’m the kind of guy who looks at the code then rewrites it. In that sense, all themes have good parts and bad parts, in my view.

Favorite plugin?

All of mine.

Least favorite plugin?

Also all of mine.

The thing about plugins is that generally I like to keep them simple, but then they get complicated as I try to make them generic and fit the widest audience. Eventually, they become a pain to maintain. Plus, as I learn more (and you always learn more), then I go back to them and see the many mistakes I made, and then it becomes necessary to correct them, and… ugh. I’m pretty bad at maintainence and keeping things up to spec, so whenever possible, I try to find a community that needs a bit of code and then give them that base bit to build upon.

I often say that the best way to write good code is to trick somebody else into writing it for you, and that’s kinda what I did with the Theme Check plugin. The theme review team was doing all this manual labor, and some of it could be automated. So naturally, they had built rudimentary tools to automate a lot of it. I reached out to Simon Prosser, who had written one such tool, and got the code. It gave me some ideas, so I wrote the first version of Theme Check in a generic manner. It has the base code to do the reading of the theme files and then it defines a way to add-on new “checks” for the parser to run. I gave that back to the community, and Simon ran with it, adding hundreds of new checks. All the bulk of the code that “does stuff” was actually written by him and others, I just created the base upon which he could build it.

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

I’ve never actually used them. I tend to use Custom Taxonomies a lot more often. CPT’s tend to be something that I think people misuse a lot, but which can be used to good effect in certain cases. Custom taxonomies are one of those things everybody actually needs but has no idea of the organization power that is inherent there. I hope to use CPT’s more often in the future, for various projects.

Coolest thing I’ve done with custom taxonomies is multiple-author support.

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

I wish that attachment posts with images attached to them would get their date/time from the image EXIF data instead of from the time of the upload. It’s a bit of a technical edge case thing, I know.

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

Mobile, obviously. Everything is going mobile. I mean, do you know anybody that doesn’t have a cell phone? I know people that don’t have smart phones, but those same people might have a Kindle, or an iPad. In a way, the web took a step backwards with Javascript and Flash for a while, because websites were always designed specifically for browsers on computers. But HTML (and to some degree, CSS) has always been designed to be display-agnostic. With HTML5, the idea of designing the HTML code to define the content and not the presentation is coming back to the forefront, and CSS3 media-queries are pushing the idea of presentation back into where it belongs. Too many web designers still design their HTML to acheive a desired look though, and that needs to stop, but with WordPress and some of the proposed changes to the back end interface, and with several Apps available, and the new XML-RPC APIs in 3.4, a lot of things are converging towards that space. That space all being mobile support.

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

Myth: “WordPress doesn’t scale.”

Response: Usually, pointing them to the list of the top 100 blogs and showing that WordPress runs 48% of them usually clears that right up*. For the few times it doesn’t, there’s probably no good way to rid the person of their misconception. You can explain servers and hosting and caching and such until you’re blue in the face, but if the fact that WP powers 70+ million sites and 16% of the web isn’t enough, then no answer will really satisfy that one.

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

I wouldn’t be interviewing them at all. I’d be looking at what they’ve done and how active they are in the community. The best people are the ones who do what they do because they love to do it and thus do it every chance they can. WordPress is open-source, and free. Everything I’ve done is freely available to the public. You don’t really need to interview somebody to see what it is that they’ve done and how active they are.

Thanks Otto 🙂

Y’all can take a look at some of the posts Ottos is writing these days, and the plugins that he is developing at ottopress.com.  And if you get a chance to say hey to him at a WordCamp, don’t be shy.  He’s one of the friendliest guys I’ve met in a while.