Prior to this interview I’d have introduced Thomas Griffin as an expert WordPress developer, who’s built OptinMonster, Soliloquy and Envira Gallery. That’s what I knew him for.
Post interview I’d introduce differently. I’d say he is… let me not influence your thoughts..
Take a look for yourself at Thomas Griffin – the person behind this name.
How did you get started with WordPress development?
I got started with WordPress back in 2009 or thereabouts. I was looking for a way to make some extra money on the side and decided to look into the world of writing articles for what were then known as content mills/farms. I liked writing, but I didn’t like the fact that I wouldn’t own any rights to the articles after I sold them, so I decided to make my own website for my writing. I was naive to think I could make money through advertising that way, but I discovered through that process that I like tweaking the website more than I liked writing. The site was built on WordPress, so I started hunting online for all the tutorials and documentation I could find to do what I wanted to do. A conversation on a forum led me do some work for someone for $50 and it took 15 minutes – and the rest, they say, is history. 🙂
What according to you is the difference between a good developer and a great developer?
This is a good and tough question – it comes down to perspective. I’m going to speak specifically from the perspective of a business owner (because ultimately that is what I am). The difference between a good developer and a great developer come down to two things in my mind: teachability and pragmatism.
A great developer is very teachable, always humble, learning and implementing new things in a way that benefits both their company and those that use what they build. Nothing is more repulsive than a developer who thinks he/she knows it all, or a developer that is constantly wanting to refactor to the latest and greatest technology. There needs to be an underlying consensus that anything you write today will be decaying tomorrow. A teachable developer is infinitely more valuable than a brilliant one.
Another key component is pragmatism, or the ability to make decisions based on context and consequences in the here and now rather than ideology and theory. Sure – abstracting out interfaces for the maintainability of code is great, but if it is going to take you 6 months to refactor, can that developer make a more pragmatic decision given that the market is making a huge shift right now? That refactor is ideal but not smart. Sure, you can refactor..and then 6 months down the road wonder why all your customers have jumped ship to a new competitor who made the decisions you failed to make. The ability to make those types of decisions is a critical component of a great developer because they become a huge asset to the company and not just another employee affecting your payroll expense.
Which are your 4 must-follow coding practices?
- Comment everything. I don’t even care if it makes you nauseous. Don’t fool yourself thinking you will remember what you were doing when you come back to code 3 months later. Do yourself a favor and make notes now so you remember what in the world you were thinking way back when.
- Fix issues for customers before they even know about them. I call this going down the rabbit hole of issues in your code. Think of as many scenarios as possible and try to fix them before your customer has a chance to discover them. A deep bug scrubbing of sorts. It will make your customers happier because they have less friction using your code, and it will make you happier because that is less support headaches that you have to resolve.
- Use some type of code repository. Github. Bitbucket. Whatever you chose – use some type of code tracking tool so that you can recover items from the past and quickly find where changes/bugs occurred.
- Build for the least common denominator. This deals specifically with distributed code. WordPress has a very low barrier to entry. Because of this, there are a bunch of very new coders trying to figure out how things work. If you can help it, try to build your code in a way that is usable for them. Part of this loops back to #1 of commenting everything, but you must always keep in mind that abstracted logic is tough to understand for a beginner. If your code does something simple, don’t make a complicated mess out of the code – keep it simple, too.
How elaborate is your testing process for a plugin you’ve built?
It is elaborate as it needs to be. I don’t have an official suite of tests. Rather, I follow the logic I mentioned above in #2. I take very seriously the idea of quality assurance and rigorous testing. I try to imagine every possible scenario and use case and then build to accommodate that. Sure – it may take me longer to get the product out to market, but I think the reputation that my products have speak far more powerfully to this than I could ever say. You don’t build a base of raving fans by releasing shoddy work.
Soliloquy, Envira Gallery, OptinMonster – which was the most challenging plugin to build and why?
Soliloquy most definitely because it was my very first one. Back when I started building it in 2011, WordPress did not have a lot of the awesome workflows and plugins that it has now to make building and selling a product easy. I had to build my own payment and license system. I had to build my own automatic update system. I was also learning, for the very first time, how to build a product distributed to the masses. This is very, very different from building a theme for a client. Now that I have a ton of experience creating and selling products successfully, each new product is that much easier because I already know what to expect during the build process.
To what do you attribute the success of OptinMonster?
There a few things that I think have helped make OptinMonster the huge success that it is today. These are in no particular order but have all helped anchor the success of OptinMonster.
Our timing was very good. Our main selling point was our exit intent technology, which up until that time was only accessible to the most deep-pocketed corporate clients. We brought this technology to the masses. There are now many competitors who tout the same technology, but we now have the benefit of being the immediate association when you think of exit intent technology.
We had (and still have) very good distribution channels. Our first month of sales looked like a couple years of hard work for most other products. Why? Because had a variety of distribution channels that ensured the initial success of our launch which then acted as a catalyst for future growth.
We have an awesome reputation for a good product with good support. Let’s face it – the popup industry does not have a good reputation. It is known as spammy with shoddy products built by people looking to make a quick dollar. We are not those people. We saw a unique opportunity to create a product that adds real value to the person using it and actually support it like a real business. It is no wonder, then, that a huge portion of our customer base is small to medium sized businesses. We have worked very hard to build and secure that reputation, and I believe that is a competitive advantage in this particular niche.
Syed is a super smart guy. I don’t know what else to say. He knows how to market and sell. 🙂
We now have an awesome team supporting and building OptinMonster. They are all excited and passionate about the work they do, and I think that is reflected in the product that we have created.
What have been your biggest takeaways from partnering with Syed Balkhi?
I am incredibly humbled by his knowledge and business acumen. It is impressive to say the least. He is without a doubt one of the smartest business people I know. I am lucky I get to be a beneficiary of that.
Also, marketing matters. Long gone are the days of “build it and people will come”. Your selling and distribution strategies are just as important (if not more) as the product itself. Syed is brilliant with marketing, sales and distribution. I am very good at building things that work really well and are very easy to use. Putting those two together is a very dangerous combination.
I have also learned that there is only so much you can do as a one-man show. Everyone is strong in some area to the detriment of another. Finding someone like Syed to complement my own skill set was critical to the success I have witnessed in the past few years with our products.
Thank-you Thomas for taking the time to talk to us. I’d say you are an insightful developer, an intelligent businessman and a genuine person.
If you have any questions for Thomas, be sure to leave them as comments in our comment section below.