Tom Mcfarlin runs Pressware, which focuses on delivering high-quality, custom WordPress solutions for small businesses and individuals. He also blogs about software development and WordPress. You can find Tom on Twitter. This is our recent interview with him, as part of our Kinsta Kingpin series.
Q1: What is your background, & how did you first get involved with WordPress?
This is a bit of a long answer, actually.
I first found an interest in computing when I was about 10 years old. We’d had an Apple IIe when I was really young, but I was too young to really get into it. But when we got our first PC (it was a 386 with 4MB of RAM) and had Wolfenstein and Doom on it. The moment I played those two games, I was hooked.
Like many kids my age, I was interested in video games so I played a variety of games like Star Wars: Dark Forces, Doom, Doom II, Wolfenstein, and King’s Quest (the sixth installment is the best, inarguably so :).
As far as the Internet was concerned, my first experience with “getting online” was via Prodigy with a 14.4 baud modem. But there’s more to this in a moment.
The more I used the machine, though, the more I became interested in what I was seeing on screen. Specifically, how was what was happening in the beige box being displayed on the monitor? Further, how was it responding to inputs from the mouse and keyboard?
Later, I’d learn all about disks, memory (and page faults), interrupts, and the like. But that comes about a decade later.
Anyway, around that time, I was spending a lot of time on America Online and stumbled across a forum specifically designed for computer programmers (of which I was not, but was very curious).
This ended up leading me to C (specifically the Borland C\C++ compiler) for which I was horribly under-prepared, as well as the various distributions of Linux (my first taste of it being Slackware and then Red Hat, but I digress).
Anyway, when C was just too much to grok at the time, I learned about Visual Basic which seemed to be more my speed (at 10 years old, at least).
So I got a copy of Visual Basic 3.0 (which spanned across nine floppy disks) and began experimenting with writing programs. I eventually made my way to Visual Basic 5.0 and used two additional books all of which were graciously purchased by my parents.
I was thoroughly intrigued and wanted to continue studying this and, as far as I was concerned, what I wanted to do for a career.
Fast forward through junior high and high school and on to college. There, I studied computer science with a focus in software engineering during college.
While I was at school, the College of Computing at the university was looking for a few students to blog regularly about their experience at the school. This consisted of writing about what it was like to study the material, participate in student activities, and generally just talk about life as a student at the school.
It was a way to showcase student life for the school, but I didn’t mind.
I enjoyed writing. Further, the school opted to have us use WordPress as our blogging platform. This was my first experience with the software. I spent some time hacking around with the pre-installed theme, the infamous Kubrick and wrote a few small helper functions to achieve some functionality but nothing fancy. Even still, it played a part in what ultimately lead me to do what I’m doing today.
Oh! I did actually graduate with a bachelor’s of science in computer science. This is something I’d wanted to go since we first got our 386. So achievement unlocked or whatever you’d like to call it. 😄
Aside from a brief stint in high school where I seriously considered starting a band and doing that professionally, I’ve generally known what I want to do, have pursued it, made a career out of it, and continue to work in the field.
And none of which I take for granted.
Q2: What should readers know about all the stuff you’re doing in WordPress these days?
Right now, I’m doing a handful of things with WordPress all of which I use to help make a living and to contribute to the overall WordPress economy is some way.
In no particular order:
- Blogging at least three times a week (and aiming for at least one member-specific post per week) at tommcfarlin.com.
- Working on converting some of the membership content into an eBook.
- Building a suite of plugins specifically for bloggers.
- Building custom solutions for small businesses and individuals that usually entail integrating third-party APIs with WordPress and having the systems talk with one another to solve a particular business need.
- Running Pressware.
As much as I enjoy writing and publishing content and helping others find ways to do that more easily, I see that many people are starting to look for third-party integrations via plugins and that’s something I’m really enjoying doing.
There seems to be a demand for using WordPress in that capacity, and it’s a lot of fun to explore what can be done via the REST API, communicating with other APIs, and building systems around that.
Q3: What challenges did you face in getting to where you are now professionally?
As much as I enjoy doing what I’m doing and the customers with whom I’m working, there certainly have been challenges along the way (and there likely always will be).
I’ve yet to hear a story where someone has been working in an industry where this wasn’t the case. Some of these challenges are at the business-level, some are at the WordPress-level.
First, I tend to learn things on a ‘need-to-know’ basis (just perhaps JIT or “just in time” as developers like to speak. 😄 That is, whenever there’s something new that’s introduced to WordPress, I stay updated on what’s being added, what purpose it serves, what it aims to solves, and where the documentation lives.
I try to pay attention to the discussion around it even if I don’t participate in it, and then I’m aware that a feature or a set of APIs exist in case I need them. I find that I’m most productive whenever I learn them as I need them rather than acquiring them and potentially never using them.
Secondly, and on a more business-related note, there have been a few times where I’ve made mistakes either in something I’ve published, something I’ve stated, or how I’ve handled projects. It’s never a good feeling, of course, but I do what I can to try to have the necessary conversations to learn about a given situation, take them, and apply them as I move forward.
Finally, the last challenge that I’ve faced in this industry is making sure that I’m staying relevant and up to date in the areas that are most important to what I treat as my core set of competencies.
For example, because WordPress has a focus on backward compatibility – for a good reason, as far as I’m concerned – it’s easy to get comfortable with older ways of writing code or less modern tools. So things end up being introduced that genuinely do make our lives easier and that make writing code an excellent experience, but we end up not adopting them because we feel that we don’t need to do so.
It’s the “if it ain’t broke, don’t fix it” mentality. But that’s what the proper mentality to have because it’s not a matter of if something is broken or not. It’s more of “if there’s something you can polish, why not take the time to do it?” The implication is that you have time to do it, right? But you take my point.
And that’s how I see adopting things like package managers, new language features, and so on. It’s not fixing something, it’s polishing – instead, enhancing – something.
Q4: Has anything surprised you while coming up in the WordPress world?
For the most part, not really.
If I had to pick one thing that’s exceeded my initial expectations, it’s how far the customizer has evolved. When it first came out, I loved it. It was simple, intuitive, easy-to-use, and pleasure against to write code against.
Now, it’s grown to be quite a significant feature. It’s almost like a small piece of software within another piece of software. Like WordPress in WordPress (a tongue-in-cheek joke, for those who may not have English as their first language. 😄
Whether or not that’s good, I don’t know, and I don’t indeed hold a strong position. But I’d say that it did surprise me just how far the abilities of that one feature have been taken.
On the other hand, I know there’s generally a lot of discussion around new features or something that may feel incredibly daunting at first especially if there’s some type of paradigm shift in the way something is done.
But in speaking with family members who are also entrepreneurs as well as close friends both in this industry and in their own respective industries, I’ve yet to find one sector that doesn’t face things that don’t seem utterly daunting at first.
Some may feel like the foundation of what they know is changing. And maybe it’s true. And perhaps it’s hyperbole.
Regardless, the clichés that “change is inevitable” or that “the only constant is change” come to mind. Be prepared for it and when it happens, don’t be surprised.
Q5: What does the future look like for you in the WordPress world?
I don’t do a lot of the “in 10 years I want to at [this point].” At most, I’ll forecast three years, but I really do try to focus on things one year, one quarter, one month, one week, and one day at a time (and my calendar, as well as Things, reflect that).
In the next year, I want to:
- Continue working with clients who want to integrate third-party systems or have custom plugins built for their business needs.
- Finish the eBook I’ve started.
- Continue to grow the membership of my blog.
- Begin building out Blogging Plugins (which is taking far longer than expected).
I have a tendency to forecast often more than I want to do per year, so I’m trying to scale back a little each year until I can find the right balance.
Q6: What do you look for in a WordPress host?
From a generic standpoint, I tend to focus on things that most users would. For example, these are things like:
- Subdomains or add-on domains
- Customer support
For more advanced features, I really like developer-oriented features such as:
- The ability to quickly spin up staging environments.
- Connect via SSH.
- Work with tools on the command line.
- Select data centers and caching mechanisms for a solid experience for end users.
Q7: What do you enjoy doing when you’re away from your laptop?
You’re most likely to find me hanging out with my family, playing the guitar, working out, playing video games, watching movies or TV shows, or reading.
Q8: Whom should we interview next & why?
I’d recommend interviewing Carl Alexander. He’s an incredibly talented developer who’s a prolific speaker at WordCamps across North America.
He’s highly engaged in the WordPress community, extremely talented with object-oriented programming, and aims to educate others on these principles using his blog.
If you’re someone who wants to get better at writing object-oriented code in the context of WordPress and you’re not following or reading what he publishes, then you’re missing out.