Today, we’re hanging out with Tom McFarlin, one of the most reliable WordPress bloggers who focuses his content on deliciously technical material. One of the ways that people get my attention is by posting tons of killer content about WordPress, and Tom is the Greek God of sharing his ‘Press knowledge with the rest of the Community. Few bloggers today can match his frequency and his technical depth.
Tom was one of those awesome computer kids who got hooked on Wolfenstein 3D, a common gateway to harder things, and before long his parents were working hard to keep him in Visual Basic books. After his family was asleep, Tom would sneak back into the computer to keep coding as a kid.
After college, Tom joined a major corporation to specialize in .NET development before moving on to being a self-employed dev. Today, he works on his own projects, and also works with the kickass team over at 8BIT. And when he’s not working, he’s spending time with his family and their dogs. All-in-all, pretty dang busy.
In his own words:
I’m Tom and I’m a self-employed developer who divides his time between self-employment and working with my team at 8BIT. I build plugins (for both fun and profit), custom applications and themes for others, as well as blogging every day, and continuing to work to build a business with a handful of other guys who all love helping others share whatever it is they have to say via WordPress.
When was the first time that you really got excited about WordPress and at what point did you decide to make it your career?
Even though I had started blogging and tinkering with WordPress back in college, it wasn’t until after I was out working and blogging about various things that I was learning or wanting to share that I began to really notice the WordPress economy.
Once I discovered said economy, I really began to take a hard look at everything that was going on with the platform – anything from tracking with core updates, to what people were doing with themes, plugins, and the number of blogs that were appearing talking how to do things with WordPress.
At that point, I was still more of a, say, consumer of the content than actually creating any particular theme or plugin; however, in 2010 or so, I began talking with John and Chris who put me in touch with Jared and we all began working on improving Standard (which was initially John’s baby) during our spare time.
Around the same time I opted to began self-employment, we decided to formally take 8BIT in the direction of digital publishing using, obviously, WordPress as our foundation.
So it’s really been a mixed bag – personally, I do contract work for sites, themes, plugins, and even web applications on WordPress for contract as well as maintaining a number of free plugins. Though I was originally doing work in both Ruby on Rails and WordPress, I ultimately folded the Rails side of the business and now focus solely on WordPress.
So between the stuff going on with 8BIT and my own company (be it contract work, blogging, speaking, etc.), I’m about as involved with utilizing WordPress as I can possibly be.
Where do you go first to get your WP news, insights, and updates?
Honestly, I think Twitter has really changed the way in which we consume information – especially for those who are online most of the day. As such, the majority of the news that I see comes from Twitter first.
Normally, this comes from people who are active in the WordPress blogging, design, and/or development community that either share their own work or promote the work of others.
Aside from the usual blogs that are available, I also catch up on stuff I may have missed with WPMail.me. I subscribe to very few newsletters (after all, who wants more in their inbox, right?), but it’s one newsletter than I think is consistently good between the links to articles, tutorials, theme releases, projects, and so on.
What WordPress consultants deserve more love than they get? Who should we be paying attention to?
Each of them have their own unique position in the overall economy.
First, Curtis is a developer, but he’s also written a great eBook for people interested in theme and plugin development, and he’s generally transparent – more so than others (more so than me, at least!) – about his goals, the state of his business, and so on. I really enjoy what he shares on Twitter, his blog, and the various conversations we’ve had.
Matt, on the other hand, provides a unique perspective through his site MattReport.com. Matt’s not a designer or a developer, but more of a liaison if you will :). He takes the geek speak and puts in in normal terms through his weekly (and sometimes more frequently) recorded discussions with notable people in the WordPress economy.
What performance tips would you give to other pros (as related to speed, scalability, security, plugins, backup, etc.)?
This is a tough question to answer because performance can be related so many niche cases that it’s tough to narrow it down to a single point; however, I think the biggest piece of advice that I was once given – and that I now give during presentations, talks, and so on – is not to use direct queries.
One of the nicest things about WordPress is it’s database API. They give us everything we need to execute SQL directory against the database – this is really handy, especially if you’re fluent in SQL. But it can also be dangerous.
If you know just enough to get something done, you may end up writing queries that aren’t optimal, that aren’t defensive against, say, SQL injection, or some of the other problems that exist.
So, anyway, back to what I’ve been sharing: when you need to run a query against the database, look into WP_Query and/or WP_User_Query. Those two features of the API provide the most significant and powerful ways to query the database and it abstracts the SQL away so that you can focus purely on the data that you need.
I say leverage them as much as possible – you gain the speed, scalability, and security for both your themes and your plugins when you go this route over anything else. Then only if you absolutely must, use a custom query.
After using these two API’s I rarely have to use my own queries, and when I do it makes me question the relationship I’ve created between custom post types, taxonomies, and so on. That raises the question of if your architecture if well-designed, but that’s a topic for another interview ;).
Confess to us your biggest moment of WordPress fail?
Last year, I was working on a contract project with a team that was to go live and be announced in front of an large audience (20K hits the first day).
The night before, we were finishing up testing and had preloaded the content with tons of data over the last week. Everything was going great, but a massive was discovered – a user triggered a series of actions that completely wiped out the thousands and thousands of records we had been importing over the past week in order to give the site some activity prior to its hard launch.
The good news is that we had partial backups so we restored what we could, we caught a bug before the hard launch, and we resolved it. The bad news is that a significant amount of data was still lost and it’s always hard to swallow your pride in those moments.
If you were going to spend this weekend creating a plugin that doesn’t exist, what would it be?
This is a tough question, but if I’m to take this question literally and assume that all I have is the weekend to write the plugin (while still juggling family duties) and the plugin doesn’t exist (which I’m making an assumption that it doesn’t – I haven’t actually done enough investigation ;), I’d have to say that I’d write a plugin that would allow for bloggers to keep their favorite RSS feeds within a dashboard page in their WordPress installation.
The purpose is two fold:
- Reader is dead, long live Reader! 😉
- I believe that reading often gives way to inspiration for us to write. As such, keeping within reach of our publishing dashboard makes it that much easier to capture inspiration when it hits.
Do you use Themes & Child Themes, Roll your own, or both?
This is purely based on the situation at hand, so I’d have to say both, but I will say that whenever I’m customizing a theme, I opt for child themes.
I believe that’s the right way to do it and it saves so much time in maintenance and upgrades when the time comes.
What’s your favorite theme or theme framework? Why?
I have to be completely biased here, but I firmly believe in building products that scratch an itch and Standard does that. We’ve built it for those who are serious about blogging, but we also built it for ourselves.
The Developer Plugin, hands down.
Least favorite plugin?
What’s the coolest thing you’ve ever done with Custom Post Types?
Right now, I’m working on an application in which I’m using rewrite rules, custom post types, and custom taxonomies to simulate what people are used to seeing in Rails applications.
That is, there are models (such as a Company or an Individual), Individuals belong to Companies, and you can do the usual CRUD operations on all of the models. That is to say that you can operate on each model by going to `/company/add`, or `company/1/edit`, or `company/1/update` and so on.
A lot of this functionality being achieved through the use of Custom Post Types in order to provide some of the view logic and some of the controller logic (as in MVC).
As far as that the “coolest” thing I’ve done with custom post types, this would be it (though I’m not sure if it’s cool or not :).
What do you think is the biggest challenge that WP consultants will face in 2013?
That’s a tough question – right now, people are flocking to the platform. Some want to learn how to use it for a blog, some want to learn how to use it for a CMS, some want to learn how to use it for an application foundation, and some want to learn how to use it in more advanced ways than they already do.
To that end, I think consultants are actually going to need to focus their efforts on the things they know really well and things they really enjoy talking about; otherwise, the breadth of topics is simply too much for one person – at least, in most cases – to tackle.
So when opportunities come up for consultants to talk or work with existing teams or companies, they need to know their stuff in order to provide the best consulting possible.
It’s no longer about “knowing WordPress” as it is about knowing “which thing” about WordPress.
If you could change one thing today about WP, what would it be?
The user interface.
This is somewhat of a blanket statement which can be tough to qualify because most applications have a steep learning curve. The thing is, some applications do a better job at providing guardrails for users to use in order to guide them into the direction that they need to go to achieve a specific goal.
WordPress has become so powerful that those guardrails aren’t really in place right now.
That said, the UI is tough to explain to to new users and to walk them through it. I know the core team is doing some real work on this and I applaud and respect their efforts – I’m not UI/UX expert so I make some suggestions on what to do because I know the people focused on that are better educated than me – so this certainly isn’t to knock them at all.
I remember where WordPress used to be and I see where we are today and it’s an improvement. I know as core moves forward, I’ll be saying the same thing in the future.
But, for now, I end up doing some customization to remove menu items, create custom dashboard pages, and create screencasts that educate users on how to use the solution.
Where do you see WordPress going in the next 2-3 years?
Largely as an application platform. I think we’re already seeing it do just that, but it’s just at the beginning. So I think that’s going to grow.
I also think the mobile application is only going to get better. Tumblr has a great mobile application. So much so that it’s often more fun to use than the web interface, especially on the go.
The younger generation is growing up with these mobile devices that have all of this power and are constantly connected, so I think that in order to capture that audience and how much they like to share things, WordPress’ mobile app is going to need to compete harder with Tumblr and even simply publishing applications like Path, Instagram, and so on.
Tell us a story where you saved the WP day for yourself or on a client project. What made the difference for you?
This isn’t exactly about saving the day as far as a client is concerned, but I was trying to explain some of the advanced concepts of WordPress to people who were just beginning to understand the architecture of web applications.
For the most part, this is relatively standard:
- There’s a database
- The middleware
- The presentation
The middleware normally consistents of its own set of components and oftentimes the presentation layer does, as well.
Anyway, I was drawing diagrams, explaining, diving deeper into each level, and you could see on their face that it had just clicked in their mind as if some of their confusion had been demystified.
Nothing ever tops that feeling which is another reason why I enjoy blogging, writing, and consulting.
What’s the biggest misconception you encounter about WordPress, and how do you clear it up for your clients?
Largely that it’s just a blogging platform.
A lot of people know WordPress as a way to publish. They don’t think of it as a CMS let alone an application platform, but the truth is that the name of the application implies that it’s used to publish, you know?
And I think that’s fine, but it’s got so much more going on under the hood at this point that it’s possible to build full on web applications using the platform, and that takes some time in order to explain, demonstrate, and even to build confidence that it’s a fine solution for just that.
If you were interviewing another WordPress developer for a job, what is the first question you would ask and why?
I know the reason I love working with WordPress, and I know what it’s capable of. I know why I enjoy the tools that I use and I know how to get things done with it.
If a developer is seeking a job and wants it to be WordPress-centric, then I’d expect to hear a significantly detailed response as to why he or she is choosing WordPress over the umpteen other languages, platforms, tools, and/or technologies that are available.
What did I miss? Here’s your chance to fill in the blanks and add something you want people to know about you!
Outside of the work that I do, I absolutely love spending time with my wife, daughter, and our two crazy dogs.
I’m also an avid runner, have a keen interest in movies, and music – specifically the guitar – and listening to and finding inspiration from all different types of music. Truth be told, had I known what I know about movies now, I would’ve aimed to minor in film in college. Additionally, had development not worked out, I would’ve aimed to be in a band.
I absolutely love blogging on my own site daily where I get to interact and learn from others.