Alex King - Crowd FavoriteAlex King has been around WordPress since the earliest days. He’s one of the original contributors to WordPress, beginning his career in Silicon Valley. Now in Denver, he continues to be a leader in the community, developing themes and plugins that are some of the most innovative and powerful on the market. His team at Crowd Favorite is top notch, leading the way both in WordPress Core work, and also expanding the extensibility and the ease of using WordPress for large-scale projects. Previously, Alex co-founded FeedLounge, created ShareThis and the Share Icon, and founded WordPress HelpCenter.

I caught up with Alex at WordCamp Denver where we geeked out on very fancy beers that had as much alcohol as dessert wine, and where we talked about what it means to be a nerd. The consensus was nerds just love learning about new things, and we soak up the excitement of hearing someone share their deep knowledge of a topic we may know nothing about.  Alex geeks out about golf and beer. And he does not geek out about his wife and daughter. Rather, he adores them.

In Alex’s Own Words:

I love to build things. I love creating something that delights the people that use it. I believe in thinking critically and being intentional. I humor my compulsive trait by letting it drive me to make things better.

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

Hmm, how to answer this one… In 2002, inspired by a friend’s blog, I decided to set up blog and chose b2 as my blogging system. I started creating custom features (at the time called “hacks”) for b2 and started releasing those for others to use as well. When Matt and Mike forked b2 to create WordPress, some of my features were rolled into the first “WordPress” package. It’s fair to say I’ve been there since the beginning.

It was in 2007 that I started providing commercial services for WordPress. My friend Adam Tow and I created the AllThingsD.com site for the Wall Street Journal, which was one of the first major publisher sites to use WordPress for more than “just blogging”. That success coincided with significant growth in the WordPress platform and there were more and more folks looking to do interesting things with WordPress.

I was fortunate to have a number of interesting opportunities come my way. There was no way I could be involved in all the these interesting projects and people on my own so I decided to try building a team. It’s five and a half years later and we’ve got a team of 15 in our office in downtown Denver (and we’re hiring!).

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

I’ve created a “WordPress” Twitter list so that I can keep up with my WordPress folks (without losing my mind in my main Twitter stream). I also follow the WP Hackers list (though I make liberal use of the “mute” feature in Gmail to keep things sane). I subscribe to make.wordpress.org and make it a point to talk to colleagues at WordCamp SF and see what they are excited about.

I wish I had more time to be generally involved in Trac and the IRC dev chats, but there just aren’t enough hours in the day.

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

I’m probably not the best person to ask. Most of the folks I’d have mentioned in the past are now well-known core contributors and/or employed by Automattic or Audrey Capital.

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

I’d say the biggest thing is to remember that WordPress is just a web application and that general web development principles and best practices still apply. Make sure that you’re covering the basics: limiting SQL queries, monitoring query performance and memory usage, and architecting features to align with existing WordPress scaling techniques.

There is no “one size fits all” solution for scaling any application. You can have two WordPress sites with entirely different server footprints (based on different usage patterns, required features, etc.). Make sure that your problem solving steps includes measuring to see where problems actually lie instead of making assumptions.

Confess to us your biggest moment of WP fail?

In his “State of the Word” presentation at the 2012 WordCamp in San Francisco, Matt told the story of someone end-of-lifing a plugin and how Tim Ferris’ blog “broke” when he updated the plugin. That was my fault. As Matt noted in his story, he sent me an email letting me know the issue and I was able to push out a fix within an hour or so; but it was still a pretty big “whoops”.

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

I’ve got a plugin that I’ve been working on for a few months now that I think is interesting. Basically it’s a way to show a timeline for an ongoing story within your blog – a way of providing relevant context for a post. I’m calling it Threads. Hopefully I’ll be able to get it polished up enough to release in the near future.

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

For my personal site I’ve done both. The first two versions were custom themes I created, but for this latest version I worked with my team to create the FavePersonal theme. I’m then using a child theme I created on top of FavePersonal along with a number of customizations that you can find in my Gists.

For our client work we create themes from scratch most of the time. The sites we build are sufficiently custom that we aren’t typically able to get significant benefit from leveraging an existing theme. Also, only a small number of themes are coded to the standards we hold ourselves to (though this situation is definitely improving).

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

I created a different kind of theme framework: Carrington Core. Where most people mean “parent theme” when they say “theme framework”, Carrington Core is truly a theme framework in the traditional developer sense of a “framework”. A framework is a way of trading convention for code, and that is exactly what Carrington provides.

You can think of Carrington Core as a template selection engine that allows you to trade messy conditional logic in your templates for nice clean templates that are selected based on naming conventions. We have a lot of experience building large scale sites and maintaining them over the long term. Trust me, this approach works way better.

We’ve done a poor job of communicating the benefits of Carrington Core. I recently hired a couple of front-end developers at Crowd Favorite and creating a great documentation and example site for Carrington Core is one of the internal projects I’m hoping they will be able to tackle soon.

Favorite plugin?

I think my favorite plugin is the combination of Social and Twitter Tools. These allow you to make your WordPress site your social hub on the web. You can broadcast to Twitter and Facebook, and pull responses from those social networks back to your site. I use this to post on my own site first, then pass the updates along to Twitter and Facebook. I love that I can actually use the following workflow:

  1. post to WordPress
  2. broadcast to Twitter/Facebook
  3. receive a Facebook comment or Twitter reply
  4. have WordPress import those as comments on the post
  5. post a comment responding to those imported comments and have it properly passed back as a reply to Facebook/Twitter

I can participate in the social networks I want to while still owning my data (and somewhat mitigating the fractured conversation that often happens in the various walled gardens).

Least favorite plugin?

Nothing comes to mind. If I don’t like a plugin I just don’t use it or recommend it. It doesn’t bother me if someone else decides they do want to use it.

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

I think the ability to browse my Twitter archive on my own site (including by @mention and #hashtag) is pretty darn cool, but we’ve done some interesting stuff on client projects that might be more impressive.

For AMCtv we created a sophisticated architecture of custom post types and taxonomies to allow content to be categorized by TV show, character and actor. Once the data is set up in a way that’s easy to access, everything else falls into place.

With the Populous site we used custom post types for case studies and user pages. There are a ton of behind-the-scenes things going on there to enable good business workflows and the custom permissions they needed.

What do you think is the biggest challenge that WP consultants will face in 2013?

One of the challenges I’ve talked to a number of folks about is the limited mechanisms developers have for customizing the WordPress admin. More and more, people are using WordPress to create sites with a custom purpose and/or “apps” based on WordPress. Right now the only solution to provide truly customized admin interactions is to build it into the front-end. This generally requires duplicating a lot of admin-side code.

I’d like to see the admin-side code made more modular, and perhaps even the admin itself made theme-able. If there’s a developer out that who thinks this would be an interesting project, please get in touch. I’d be willing to hire someone to try to make this happen and see if we can get something interesting created. Initially I think we’d try to make it a plugin (to make sure we have a working prototype), but the goal would be to roll it back into core.

I haven’t gotten a lot of support on this yet, but I’ve been a few years ahead of the curve on a number of things with WordPress. We’ll see how it shakes out.

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

I’d like to see an official commercial marketplace for WordPress add-ons. I believe that we’ve long since passed the days where most WordPress users understand that the GPL contains this language:

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Instead, as a whole we expect the type of support you get with commercial software. I think it would be great to enable developers an easy way to provide that.

Ideally it would be run by the WordPress Foundation as part of WordPress.org and a percentage of the revenue would be used to reinvest in the community. I’d like to see that money go towards development of the community tools on WordPress.org itself, and to fund a team that can provide security and code quality reviews for plugins and themes.

I certainly see this benefitting developers, but I think the end-users would get the biggest wins. Offering great support for a plugin or theme becomes viable when there is a potential economy of scale.

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

I expect the code quality to continue to improve as more great developers join the platform and existing contributors continue to “level up”. I also think we’ll see action in lots of areas that are known pain points (for example, the media improvements in 3.5). I expect continued gradual improvements across the board rather than a strong shift to a particular feature-set or use case. The community is too large and diverse for that now.

I also think we’ll continue to see more tie-ins to services on WordPress.com.

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

Honestly, we prefer not to “save the day”. We have staging environments, test plans, human QA and automated testing… we try really hard to avoid situations that need a hero. I’m really quite pleased to say I can’t think of a situation to discuss here. 🙂

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

I think one of the biggest strengths of WordPress is how accessible it is. People with little or no coding experience can use off-the-shelf themes and plugins to create custom sites that actually work and provide the features someone needs. It’s awesome that this can happen and it’s definitely one of the reasons WordPress is so popular.

It’s also one of WordPress’ biggest problems as a platform.

We need a name for these folks that isn’t “WordPress Developer”. They undoubtedly offer a valuable service, but they aren’t developers. Perhaps “WordPress Professionals” or “Implementation Specialists” or “Integrators”… anything but “developers”.

One of the biggest challenges I face in hiring is convincing great developers that we are, indeed, solving interesting and hard problems and working with WordPress. Their first assumption is often that the job is just taking a bunch of off-the-shelf code and cobbling it together. Of course, that couldn’t be further from the truth.

The way this manifests itself in interactions with clients can also be interesting. We occasionally discuss a project with someone where they tell us about the 3-5 plugins they want to use and how they want them to work together. Most of the time these plugins were built by different developers, solving different problems, and will not work elegantly in conjunction with each other.

We then have to choose between initial expediency vs. architectural elegance and long term maintainability. If we can’t convince the potential client of the benefits of a more elegant solution, we typically decline to proceed with the project. It’s horrible for everyone if you’re in a position 10 months down the road where a simple change request ends up requiring a major overhaul of something. We avoid this by making sure we build a proper foundation from the start and try to make sure we work with clients who value this approach.

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

My team is one of the largest WordPress development shops in the world but WordPress experience isn’t a requirement for developers we hire. In fact, most of our team didn’t have any WordPress experience before joining Crowd Favorite.

What we look for instead are smart tangential thinkers with a breadth of knowledge and experience (this could be in other languages and platforms, etc.). We want people who can think broadly about how to solve problems, and borrow the best ideas from all platforms. We can teach WordPress best practices a lot easier than we can teach general web development best practices (architecture, scaling, etc.).

When I interview someone with WordPress experience I typically ask them to describe a feature they built. I ask them how they architected it and why, what hooks they used, etc. (the same way I’d discuss a feature with a core contributor). It’s rare for us to see candidates that know both general web development best practices and WordPress architecture well enough to be able to “pass” this type of discussion.

Based on what I’ve seen happening in the community in general over the last few years, I hope we’ll be able to change this mindset in the near future.

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

If you want 4-5 hours of free consulting time, invite me for a round of golf at a great course. I’ve never turned this down yet.

Thanks Alex.  If you guys mosey on over to CrowdFavorite.com you can check out the big projects they’ve worked on and examine hiring them for your site.