Our latest speaker interview series have introduced you to James Laws, Parth Lawate, Angel Ayach, Matt Gibbs, Silvan Hagen, and Jason Cosper — today, meet Josh Pollock.
Josh is a WordPress developer and entrepreneur. He has created and sold WordPress plugins at Caldera WP and is currently a community manager and a contributing developer for a free WordPress development framework, Pods.
Josh is also a WordPress core contributor and have written for the top WordPress tutorial sites, including Torque, Smashing Magazine, Tuts+, and WPBegginer.
WordPress is the magic tool that has allowed Josh to travel the country, make new friends, be a part of an awesome community and start multiple companies. Josh is convinced that it’s an amazing luck he chose WordPress for his first blog, and figured out how easy it was to start hacking his theme.
We hope you find the interview inspirational for your own designing and development efforts! As always, we invite you to join in with your comments at the end of this post.
Thanks for joining us today, Josh. Please, tell us a bit more about your background, how long have you been working with WordPress, at what point did you decide to make it your career and about your current ventures.
I’ve been working with the WordPress since about 2011ish. First by writing a blog on dot com. Once I moved to self-hosted, I found that hacking my blog’s theme was way more interesting than writing the blog. Luckily no one was reading it because I didn’t know local development was a thing, and I was constantly breaking the live site.
That lead to theme development, which I sucked at because I have no design skills, but taught me a lot about PHP and JavaScript. More importantly, it got me involved in the WordPress Theme Review Team, which taught me the importance of being involved in the WordPress community.
This wasn’t supposed to be my career, but I just found it too fun to stop and I saw WordPress as an outlet for my entrepreneurial goals.
Today I am a plugin developer, and educator. My companies make Caldera Forms, a drag and drop, responsive form builder, and Ingot, an A/B testing and conversion rate optimization system specifically built for regular WordPress sites. I also write regularly for The Torque Magazine and have a course on the WordPress REST API.
Where do you go first to get WP news, insights, and updates?
I read the regular sites, Torque, WPTavern, Post Status. I also use Managewp.org and Twitter to stay up to date on what’s going on. In addition, I try there are a handful of people who I know I will learn something really useful about development from reading their posts, so I try and read everything they do — Carl Alexander, Tom McFarlin, Rachel Vasquez, Chris Wiegman, Pippin Williamson, Roy Sivan.
What performance tips would you give to beginners (as related to speed, scalability, security, plugins, backup, etc.)?
I also read a lot of source code. It’s a lot of how I learn is reading other people’s code and figuring out how/ why things work. I think the ability to read source code in a meaningful way is an important skill anyone who writes code should have.
Also, if you’re debugging strategy involves printing PHP variables to the screen or console.log in JavaScript, you’re short-changing yourself. Interactive debugging using xdebug for PHP or the browser for JavaScript is not hard to learn, and it’s an investment of a small amount of time that will pay huge dividends. You can’t get good at writing code until you go from guessing what your code does to being able to see what it’s actually doing.
This sounds like “advanced advice” but it’s an easy step and it’s important.
Confess to us your biggest moment of WP fail?
I’ve done so much dumb shit, I can’t keep track of it all. I think my biggest fails are all because I don’t understand how SVN works, and that’s the system you use to update plugins on WordPress.org, so I’ve definitely broken some sites because I messed up with SVN.
There was a beta version of our A/B testing plugin Ingot that always selected the first variant in a group. I was doing a demo for a Meetup Group, using that beta when I suddenly realized I had created a uni-variant testing tool that did nothing. It was a simple mistake I missed because it didn’t throw errors and none of my unit tests failed.
Here’s the thing mistakes happen all the time. The better you get at this, the more complex the bugs you write will be. That’s unavoidable, being nice to yourself about it is the most important thing.
You’re the developer and founder of CalderaWP. Can you share with us how the form builder was created and how you went about promoting it?
Caldera Forms’ lead developer is David Cramer. He started building it before we ever worked together. The plugin has a completely pure origin — it was a fun challenge that David couldn’t resist. I know David through working on Pods where I used to be the community manager and a contributing developer. I was always a huge fan of how he made interfaces.
I started using Caldera Forms and wanting David to design the interface for what I was building because Caldera Forms was so much more dynamic — both the user-facing form and the admin area — than any other WordPress plugins. These days, API-driven JavaScript-based interfaces are all the rage, but he’s been doing it that way, with his own framework forever.
We launched CalderaWP about a year ago, with about 1000 active installs. Now we’re more than 10 times that, and I think it’s a combination of people really liking it and telling their friends about it, and me being all over the WordPress-related social media, going to a ton of WordCamps and using the relationships I’ve built in the community.
So what does INGOT do? What do you think helps your solution stand out from other web plugins in the field?
Ingot grew out of my frustration trying to do A/B testing for CalderaWP.com. I looked at the established tools — Optimizely and others — and not only were they expensive, I didn’t have nearly enough traffic to get any meaningful out of them. Also, since they are third-party services you interact with via API and don’t run in WordPress, interacting with my theme and my eCommerce plugin they way that makes sense to me — via WordPress hooks — wasn’t possible.
There really is no other option that is totally self-contained in WordPress — no 3rd party service required — and works with any level of traffic.
Ingot takes this strategy — A/B testing, really multi-variant testing — that is proven to increase conversions, that all the big sites are using, and makes it possible for any site to do benefit for it. We chose an algorithm that can work with any amount of traffic. We made it work right in your theme, and it’s even more powerful when combined with WooCommerce or Easy Digital Downloads.
We describe it as a simple A/B testing plugin for WordPress, but it’s really a lot more than that and I think as it matures you’re going to be very impressed by what we do with the data it’s collecting.
What’s the coolest project you’ve ever worked on with WordPress?
I try and fall in love with everything I work on. That requires being super-selective about what I work on, because not everything is awesome.
Working on Pods definitely had the biggest impact on my WordPress life, and I’m forever grateful for that opportunity.
The thing is, because I make plugins, not sites, I hardly ever know what my code is doing. Every now and then I stumble upon evidence of one of my plugins in use on a site I love, or a user shows me what they built with it and it’s something I love, and I’m just so excited.
What do you think is the biggest challenge for WP development to face in 2016?
Here’s the thing, the more we say “JavaScript all the thing” the bigger a problem it is that so many plugins and themes generate JavaScript errors or throw PHP warnings and notices all over AJAX responses.
This is a two-pronged issue — too many users don’t know how to find and report these errors. Also, developers are not concerned enough with testing and writing their code defensively. This is partially an issue with the scale of WordPress and also how much we’ve undervalued plugins and themes. It’s easy for me to look down on my nose at people for not having full unit test coverage, and a human QA process, but I don’t have that. We expect so much from code we pay little to nothing on.
So I think the challenge is about perception of value, user expectations, and better training. And when I say better training, I think users need to be better trained to troubleshoot problems and developers need to be better trained in terms of defensive coding, security and best practices for compatibility.
If you could change one thing about WordPress today, what would it be?
I think dropping backward compatibility for PHP 5.4 and before would have a lot of really positive effects. It could be done in a way that puts the responsibility on hosts to upgrade their stacks and would have a huge impact on the security and performance of the web as a whole.
More importantly, in the last 10 years, PHP has gotten some really awesome features, which WordPress developers are discouraged from using, that we could use to write better, more reusable code.
What new features would you like to see in upcoming versions of WordPress?
I’m not much of an end-user. I just build my own sites, and I’d like to get out of doing that soon. As a developer, I think the Fields API is something that is so important, we should really travel back in time to add it to WordPress 2.0 at the latest 🙂 WordPress’ database architecture is super flexible and is one thing that is responsible for the growth of the platform as a “do everything” framework. But, having no standard way of declaring programmatically what fields a plugin, theme, or component of WordPress core uses, is a big challenge that I think will hold us back for a long time.
If you were interviewing a WordPress developer for a job, what question would you ask first and why?
I’d ask what patch to WordPress core, or pull request to an open source project they were most proud of. I’d want to know why, and to read the diff. If you haven’t used a piece of software and either noticed when you broke it or identified a problem with it, than you clearly don’t have the right type of mind to be a developer. If you didn’t at least once try and make something you use for free better, you’ve got the wrong type of mindset to work with me.
Have you ever faced the problem of website migration? If so, how did you manage to resolve it: by converting your website data manually or via an automated tool?
Of course, I have. I either use the plugin WordPress duplicator to clone it all, or I use Migrate DB Pro to handle just the database. I don’t have to do this a lot, but it’s clearly a pain in the butt.
Tell us a bit about your working setup (hardware + software).
My desk is too messy to take a picture of. I use a MacBook Pro that is way under-powered and with two 24″ monitors. PHPStorm is my IDE and that is my everything, can’t imagine life without that. I use VVV for provisioning my virtual machine for development.
I use Dynaudio BM5 monitors for my music, which is generally some type of prog rock or heavy metal, and a Herman Miller Aeron chair. In the end, good music, and a good chair is most important. Google Play Music is probably the most important service I use.
Finally, have we missed anything? Here’s your chance to fill in the blanks and add something you want people to know about you!
I’m going to slowly back away from that challenge. I can go on about most anything…
Enticed to see how your website looks like on WordPress? Start Free Demo Migration! Fast. Easy. No Coding!