Yesterday was my last day working for the WordPress plugin company Event Espresso. I’ve been a member of the “tEEm” for over 7 years— the longest job I had before that was about a year and a half. So it’s a pretty big change. I’m feeling a bit nostalgic but looking forward to the future.
Time. I’m also doing all the software development forPacific Rim Early Childhood Institute, which my wife manages; I started my own plugin Print My Blog; we’ve got 3 kids ages 6-1 and my wife just started her masters degree, and we’re now running a hobby farm with 7 pigs and have ordered 20 more fruit trees.
I blogged a while ago about how I really enjoyed my work, and that’s still true. I’ve also made a much better income from it than my previous job working with a local web development business. But I’d first like to mention the interesting things I’ve gotten to work on, and the people I’ve worked with.
- Brent and I implemented a “model” system inspired by other ORMs like Django’s which made writing queries involving lots of joins a breeze
- A forms system, also inspired by Django’s, which made displaying forms, and handling their submissions, consistent and easy
- A batch system, based off Pippin Williamson’s example, for handling processing large amounts of data on cheap servers (like migrations, querying across a multi site network, and generating reports comprising data from thousands of registrations)
- Payment integration with PayPal, Stripe, Authorize.net, and a ton of others
- Not one, but two REST APIs (which are soon getting deprecated in favour of GraphQL) used for mobile apps
- Event Smart, a massive multisite network running Event Espresso
- Analytics integration with Segment and Mixpanel
- Contribute to WordPress core. I regularly attended the REST API and Multisite meetings as part of work, and the Privacy meetings during the GDPR scare
- Write for the company blog periodically
- Discussing and planning lots of other features that were mostly implemented by others, like the registration system, ticket limit enforcement, notifications system, cron jobs, admin integration, writing performance database queries over very large datasets, etc
- My favourite thing was getting “ICE time”: time to Innovate in whatever way I liked, Contribute to the WordPress community, and Educate myself on whatever I thought relevant. It’s debattable whether it was worth Event Espresso’s resources for all that, but I enjoyed it, learned a lot through it, and think all that reflected in better work.
One thing that repeatedly impressed my wife, who works in early childhood education, was how amazingly supportive my tEEm was. She did not expect a group of techies to be so thoughtful and sentimental, especially when we all lived so far away! But whenever someone had a family emergency (like cancer, car accident, hurricane, etc), had an interesting new event (lots of new babies, ski trips, blog posts), or when folks were just going about their business (“picking up kids”, “feeding the horses”, “connection issues”) they were all abundantly supportive.
There’s a lot I learned from each teammate, but there’s probably a lot more I’ve forgotten, so I’ll populate this list with new stuff as it comes to me. Also, I interacted a lot more with some because of our corresponding roles, which means I ended up having more to say about them. That doesn’t mean the others knew less. I’ll start with the newer folks and those I haven’t interacted with quite as much, and then work my way to those with whom I’ve been conversing daily for years.
Vadim, from Moldova, just started as a developer with EE a couple months ago. He taught me
Likewise Manzoor, hailing from India, hasn’t been a developer with us for too long.
- Telegram is a very popular social network globally
- he’s worked some sort of magic with his WordPress plugin for it, which I think he said was mostly just from being responsive to its users
- hard work (he’s been banging out tons of code, even when there was so much civil unrest in his area that he needed to relocate)
Tony is our British support agent with a knack for code. He taught me:
- a great way to a job at a plugin company is to just start providing value on GitHub etc; once they see you know your stuff hiring is an afterthought
- don’t try USB hand warmer gloves, they sound great but give you occasional shocks
- support agents can make great developers. They probably won’t be as up-to-date on the latest industry trends, but they know users’ pain points, and can often identify quick improvements that users will actually appreciate
Kristin works in sales on a farm. She taught me
- working in tech, and being a hick, are totally compatible and actually quite complimentary (I’m following in her footsteps!)
- having a publishing schedule is helpful
- stick up for yourself. Being the only current female on the team must be tiring, and she’s often needed to correct the biases we didn’t realize we had
Lorenzo has been focused on the marketing, especially with Event Smart. He taught me:
- living in Florida is really cool, especially when you can hop on a cruise ship to the Bahamas. Just get out of the way of hurricanes every now and again
- talk to real customers and identify their pain points
- read up on books related to your industry
Nazar has basically gone from junior-ish, part-time developer to now head systems administrator. He taught me:
- you can get a lot done without needing to chat about it extensively
- you can roll with others’ design, and it’s fine
Josh was support team lead (sometimes he referred to this as “lead janitor”, because he sometimes was left cleaning up after the developers). Years in the support trenches made him pretty matter-of-fact. He taught me:
- new features can spawn more support headaches than they’re worth
- customers are usually right, although a small percent are honey badgers (fearless hackers who mess things up), mistaken, or deceptive (eg a whole team using the same account to get cheaper support)
Darren wasn’t lead developer, he’s what I’m calling the “official opposition”, the political term used for the party with the second-most votes, whose job is primarily to critism. Darren was far from unpleasant; he was a retired minister, so he was all “blessings!” and very helpful. He just had a lot of knowledge, a lot to say, and an inner sense of justice that prohibited him from staying silent on an issue until it was resolved (he could control it if you asked). He taught me:
- stay up-to-date on the WordPress community by following influencers on blogs and Twitter
- although WordPress isn’t the creme-de-la-creme of good design, its lead developers are brilliant pragmatists. Most of their decisions are probably well-justified. When working on software working with WordPress, default to doing things the WordPress way (you’ll see later that Brent often opposed this, hence the “official opposition”)
- consistency. No inconsistency would slip past Darren in a code review.
Brent is the lead developer, who conveniently lived close enough that we actually met up a couple times. He taught me
- “if it can be null, it will be null” —again and again this has proven correct in code. Be defensive in your coding.
- using design patterns can help others immediately understand code, and it really is a science (you need to read about them and how folks are applying them), but also an art (because if you haven’t practiced applying them, it can be hard to identify opportunities to use them)
- when first making software, it’s good to bang it out and make it work, but then it’s good to avoid “code debt” by always taking some time to clean it up, apply a design pattern if applicable, and make the code SOLID
- listen to the non-WordPress community, and don’t do WordPress-y things that just don’t make sense. He rejected WordPress’ “everything’s a post”, coding standards, and “just put all your metadata into a skinny table” half a decade before I noticed the WordPress community at large did.
- don’t overrule decisions just because of your leadership position; talk it out until everyone’s been heard and understands (although I admit this must have sometimes very frustrating)
Garth and I are BYU buddies. He’s also one of the co-founders of Event Espresso, and arguably CEO. He taught me:
- the value of having working in a sprint isn’t just for having nice data to report, but it also helps us developers focus on completing the job
- old school business values (which I admittedly challenged throughout the years, and he softly but firmly challenged back) still hold, like you gotta charge money for stuff (I had the hair-brained notion you could just give everything away and folks would voluntarily pay you), advertising can be effective (I noticed EventSmart being advertised to me, and its corresponding growth), you need to consider the Return On Investment of activities, and you gotta get the hours in to get anything done
- different people communicate differently: when asked for their opinion, some will give you their life story and several entries from Encyclopedia Britannica, whereas others will simply state their opinion with no justification. The former could benefit from asking “what do you think about x and what’s one or two reasons for that”; whereas the latter could benefit from identifying the actual data the decision hinges on, and asking about that— “how many users will be affected by this problem and is that enough to justify fixing it now?” etc
Seth is the other co-founder, and effectively the company’s founder. He made the initial version, and is very active in the WordPress and events industries. He also was homeless at one point in his life. Yeah, as interesting as it sounds! But behind his humility there’s a lot to learn:
- when making a presentation, it helps to first write a blog post on the topic. This fleshes out your ideas, which then makes creating the presentation a breeze, and provides value interested folks who couldn’t watch the presentation (I did this both at my local meetup and for my WordCamp presentation)
- hear everybody out on decisions (although probably not relatively insignificant ones)
- be in touch with the community, both locally (eg he’s been running a WordPress meetup for years) and in the global niche (eg he’s been attending and presenting at WordCamps)
Primarily I’ll be doing more work with the online college my wife manages, Pacific Rim Early Childhood Institute. I’ve been doing it on the side since I started with Event Espresso, but it really could use more love. For example, I’m migrating it from using Python 2 to Python 3, going to improve security, and streamline it so it will be easier for staff and students.
Otherwise, I also hope to sell Print My Blog Pro, using Freemius. The free version will continue to focus on making print, PDF, and eBook copies for personal use; the paid version will be for books and eBooks for selling and as part of a business. This way you can write your blog and book in WordPress simultaneously, with no copy-and-pasting. It will be in competition with the likes of Microsoft Office, Google Docs, Adobe InDesign, and other biggies. How do I hope to compete? Because it won’t be me vs Microsoft Office et al., it will be WordPress vs Microsoft Office et al. because Print My Blog leverages the cumulative centuries of work hours put into WordPress, the Gutenberg editor, and the army of plugins and themes. I think that sounds exciting.
I will try to keep in-touch with the larger WordPress ecosystem by continuing to contribute to WordPress core, primarily in the REST API team.
And I’ll take plenty of breaks from all that to play with the family, feed pigs, and pick all the apples.
Wish me luck!