My last day at Automattic

My last day at Automattic

It started with a tweet. WooThemes, a company whose products I’d purchased & used many times before and brand I’d followed for years, were hiring. I’d never really worked for any one company before. I’d never even considered it, having never even looked for a job. But that tweet stood out to me and moments later I fired off an email saying I was interested.

A few weeks went by and after a few interviews, I was in. I still remember that moment when I got the offer and it wasn’t until right then that I realised how much I wanted it.

For years I’d just built my own things, worked in the shadows and gotten by. But in that moment I was given the chance to learn from and work with people I’d admired from afar for years – to become friends with them, to travel with them, to know them – and while I didn’t know it at the time, I needed more than anything.

10855064_10153534022948102_8967646388228094488_o

I look back at that first year at WooThemes and think about what we as a team accomplished and it blows my mind that it was just that – a year. During those 12 months I was fortunate enough to be moved into a full-time developer role, something I’d never imagined I would be paid to do. I got to travel internationally for work several times, help out on countless open-source and paid products, and improve the user experience for our 100,000’s of users.

I remember many years ago while I was learning to code, I saw a tweet from WooThemes about their site redesign. I replied congratulating them but asking why it wasn’t responsive on mobile. They said it was coming soon but wasn’t a priority at the time. Years later, I ended up working on the project to make the site responsive.

The experience I gained over that year at WooThemes was invaluable and only comparable to the year that followed. The year at Automattic.

I remember the night we got the news quite well. My girlfriend and I were travelling around Korea and staying the night in the small historical town of Gyeongju. We’d spent the day walking around the city and I remember a conversation we had about my future of WooThemes. What would I be working on for the rest of the year? What role could I move into next? Where would we meet for the company trip later in the year?

All those questions were answered by the time we got back to the hotel and had internet again. I checked my email before going to bed and froze. We were getting acquired by Automattic. I’d never even considered it as a possibility. I didn’t even believe it at the time – thinking maybe it was some trick they were playing on us or a delayed April Fools joke. But I soon realised it was real, it was happening, and it was a good thing – a very good thing.

17662_10153892570523797_2668541104263455177_n

A week later I was in Chicago with my team, digesting the news together over beers and thinking about our future at Automattic. We were going from 50 people to over 400. What would change? Would we move teams? I suppose you could compare the feeling to that of moving schools. Things were comfortable and predictable before and now everything’s changing. But were they changing for the good?

A month after that I was in Seville, Spain, giving a talk at WordCamp Europe to a 1000 people, many of whom I’d respected and admired for years. And while I’d never given a talk to that many people before, I was far more nervous to meet some of my future Automattic colleagues that were also there for the conference. But there was no need to be nervous. It was love at first sight and I knew the future was bright. The people I would be working with were kind, welcoming and fun. I officially started at Automattic a few days later from an Airbnb in Malaysia.

The last year has been a rollercoaster with far more ups then downs. I somehow managed to meet close to 50% of the company. I got to work with my previous Woo team and several talented newcomers. I think I travelled internationally every month for the past 12 months, flying something like 350,000km. I was fortunate to be given the chance to speak and represent Automattic at several events, especially WooConf where I gave my favourite talk ever.

I look around me and am so grateful to Automattic because almost everything I have is because of them. All the experiences, all the comfort, all the knowledge – directly because of Automattic, WooCommerce and the hundreds of amazing people I got the chance to work with over the last couple years. There’s so many people (100+) I could thank and acknowledge here but I’m confident you all know who you are.

13718593_10157385174625495_5936148571419558741_n

Tomorrow is my last day at Automattic. A few weeks ago I put in my notice and started saying my goodbyes. While it has been a difficult decision to make, it’s the right one for me and I’m grateful to everyone I work with for being so supportive of me even though from the outside I look crazy leaving one of the best companies in the world.

What’s next? I’m going to try build my own product; my own company. It’s going to be challenging and scary but I can’t put into words how excited I am to get started. I want to keep things as a surprise but I will say that it’s an old idea I’ve had for a while and WooCommerce (ecommerce) related. I plan on getting started next week and hope to have a beta/something to share as soon as possible – no matter how many sleepless nights and sore fingers it takes!

If you want to know more, follow me on Twitter and/or sign up to the weekly newsletter I’ve been sending for the past few months, Pivoting.

And to everyone at Automattic and in the WordPress/startup space – thank you.

 

Thoughts on No Man’s Sky

Thoughts on No Man’s Sky

Maybe you were living under a rock the past week and didn’t hear about No Man’s Sky. Or maybe you don’t care. Either way it’s okay. But now that you’re reading this, let me tell you a bit about it and why I think it’s one of the most brilliant games I’ve ever played.

It’s a game set in space. You play alone, flying across galaxies going planet to planet, collecting resources and items while discovering new plants, species and universes.

1434567347-no-mans-sky

Besides the fact that the game is visually stunning, it’s receiving a lot of attention because of how big it is. There are 18 quintillion planets. I don’t even know how many 0’s that is. The creators – the tiny game studio Hello Games – has stated that to visit each and every planet for just 1 second, it would take you over 5 billion years.

There are a lot of conversations currently taking place around the game. Some people love it, some don’t. That’s to be expected. But one common argument I’ve seen the non-lovers use is that while the game is beautiful (it really is), exciting and unique, it lacks focus.

No one can argue that. You play alone, there’s not really a story and probably the scariest part of it all is that the game is so vast; so infinite (like our own universe) that you can never even hope to ever complete the game. To me, this is not a flaw.

As a species we expect everything to have a start and an end. There’s a goal to everything, whether it’s your day, month, year. There’s a time during everything that you can define as the moment of success; of completion. We expect things to be this way because it’s comforting and makes life feel like it has more purpose then it really does.

No Man’s Sky challenges all of this. It takes our expectations and says “fuck that – that’s not real”. It places us in a reality not so different from our own and provides a unique and captivating experience that lets you trade one reality for another.

The most surprising realisation is that with all the games we’ve grown to love, from Call of Duty to Pokemon Go to Grand Theft Auto, the realest game of all to me is No Man’s Sky. It’s both the truest and scariest reflection of the world we live in and a constant reminder that the universe is whole lot bigger than any single one of us.

PS. If you’ve already fallen in love with the art of No Man’s Sky, here’s a bit more of it.

Appreciation by doing

There’s an old saying that pretty much every one knows:

If you could just put yourself in his shoes for a moment, perhaps you would understand why it is not as easy as you seem to think.

But it’s often forgotten or not realised until it’s too late.


I don’t cook very often. In fact, when asked “can you cook?”, I often jokingly reply “I’m pretty good at making toast”. Growing up around chefs and spending years in Asia where a good meal costs less than $2 didn’t help. Also, I’m pretty lazy.

But tonight I cooked something. It doesn’t matter what it was or how it tasted but it did involve more than a toaster and took more than a minute to prepare.

It reminded me how hard cooking is. The simple act of combining several ingredients to make something tasty is really not that simple at all. Much like tech, there’s more to it than meets the eye.

When building an app, combining two services (like Instagram & Twitter) seems easy enough – but there’s an art to making it seem easy, and 100 ways to complete that same task.

Only after years of trial & error, painstaking rewrites and a deep understanding of your art – be it programming, cooking or cleaning – do you become a master.

This is more a reminder to me than anything else. Things always seem easier on the outside (and on the inside). It’s only through doing that thing that you can truly appreciate the finesse and years of experience required to do it well.

Introducing MagicPress

Introducing MagicPress

The other day I saw Aaron Rutley tweet about a tool he’d built called ValetPress:

It combined two of my favourite things – WordPress & Laravel Valet. If you’re reading my blog, you likely already know what WordPress is but may not know about Valet.

Valet is a Laravel development environment for Mac minimalists. No Vagrant, No Apache, No Nginx, No /etc/hosts file. You can even share your sites publicly using local tunnels. Yeah, we like it too.

Laravel Valet configures your Mac to always run Caddy in the background when your machine starts. Then, using DnsMasq, Valet proxies all requests on the *.dev domain to point to sites installed on your local machine.

In other words, a blazing fast Laravel development environment that uses roughly 7mb of RAM. Valet isn’t a complete replacement for Vagrant or Homestead, but provides a great alternative if you want flexible basics, prefer extreme speed, or are working on a machine with a limited amount of RAM.

It’s not for everyone, but I’ve found it to be sufficient for quickly prototyping new things and keeping my MBP’s battery alive more than a couple hours.

Aaron’s solution is awesome – he’s introduced a new command that allows you to quickly spin up new Valet powered WordPress sites using WP-CLI.

I wanted to try make the install process a little bit easier, have always wanted to build a Node CLI app and selfishly, wanted some specific commands for making WooCommerce development sites, so I got inspired and put together MagicPress.

If you’ve already got Valet and WP-CLI installed, you just need one more command to get started with MagicPress.

npm install magicpress -g

For the rest, check the docs. You may need to configure the MySQL username/password if yours isn’t rootroot. To do that, just run:

sudo mp config

At this point, you’re ready to to create new WordPress development sites! The good news? It’s almost instant:

mp new sitename

sitename.dev is now a functioning WordPress installation with a DB and everything!

Check out the docs as things have likely changed since I wrote this, but one of my favourite optional commands is –woocommerce. Append it to the end of your mp new command and the new site will have a copy of WooCommerce installed, along with the Storefront theme.

mp new woo --woocommerce

There’s also the –dev command that I highly recommend using, which will install a bunch of useful developer-friendly plugins like Query Monitor. I hope to add some more commands and delete functionality soon, but for now, I’m interested to see if others find this as useful as I have!

PS. It’s MIT-licensed, so you can pretty much do whatever you want with it (except blame me if something breaks).:)

Photo by Thomas Kelley

The Bot Future

Screen Shot 2016-04-15 at 10.49.21 AM.png

If you’re hearing the news about Facebook’s new Messenger Platform and all you’re thinking is:

This is just hype. It’s not that big of a deal.

You’re missing the bigger picture. The future of our interaction with technology will be completed automated – and bots will play a big part in getting us there.

The significant thing about Facebook now taking part is the 900 million users they bring to the game.

I get excited thinking about the possible applications of this technology.

Customer service – no longer apprehensive to approach a company – no need for the anxiety that comes with making a complaint.

Learning a language – your own private teacher that is only a message away – can message you throughout the day to help you learn.

Discovery – the effort to find new content and stay up to date with the world will be reduced. Acquiring new information will no longer be an active but passive.


Over the last few years I’ve watched brands adjust to the trend in message-orientated customer service. A company that you once had to interact with my phone is now just a message away.

This isn’t groundbreaking. Email has been around for decades, and it was long ago that the first contact form was introduced. But there’s something special about a message.

Emails and phone calls these days tend to be reserved for work and interactions with businesses (besides for the occasional parent phone call). Messages are intimate. They provide an eternal log of our relationships and conversations – an always-available means to contact friends, not prohibited by time or location or feeling.

Businesses picked up on this. They’re now easily contactable through any social media platform. I’ve started a conversation with a business through tweets and ended up getting a DM (direct message) from them soon after. Recently my home internet cut out so I just sent the business a message through Facebook Messenger on my phone and got it resolved. Months ago, I was trying to find a shop in Melbourne that had a special variety of Thai basil needed to make my favourite Thai dish. I messaged a local Thai grocery’s Facebook page and had a bunch of the basil reserved for me just moments later.

I’m yet to find a reputable and established business that isn’t just a message away. In fact, the only exception seems to be with government organisations and traditionally terrible companies that are no better on the phone.

And yes, while it’s true that messages are more intimate and usually just for friends, I’ll gladly allow a business into that intimate space if it means my problem gets resolved quickly and asynchronously.

But phone calls can still be quicker. And when you have a serious issue, like a missed flight or internet emergency, you suck it up and make the phone call, speak to another human and get your problem fixed. It’s awkward and time-consuming and exhausting but sometimes it’s the better choice, purely because it doesn’t involve waiting for your message to be replied to.

So the fact that there is now a means for developers to automate messages – to eliminate the one thing that was keeping phone support alive – is exciting.


Good bots won’t try to be magical interpreters of user will and intent. They’ll listen, ask questions with structured answers and evolve naturally.

An example of this is the interaction here between Danny and the 1800 Flowers bot. The bot doesn’t try to be intelligent and have a conversation with Danny. It determines what he wants, gets the answers it needs by asking simple questions and uses predictable buttons to get user choices.

We’re on the brink of a bot revolution. The bot future won’t be obvious. It’ll slowly creep up on us and steadily improve every business interaction we have. But once it’s here, you won’t want to go back.

eCommerce-powered 3D printing

eCommerce-powered 3D printing

This post talks about using WooCommerce, a free and open-source ecommerce plugin for WordPress, but the same principles could be applied to any ecommerce software.

A couple short weeks ago, you allowed me to take a risk and show you several WooCommerce API powered demos live on stage at WooConf 2016.

It went well for the most part, with attendees (both in the audience and online) getting to see a variety of integrations, like sales appearing on a LaMetric display:

To an autonomous drone that took flight when a WooCommerce sale was made:

Side note: How good are David’s GIF skills?!

And while I’m relieved, to be honest, that I don’t have to prepare and perfect that talk any longer, I made a promise on stage. One of my final slides teased at the idea of WooCommerce-powered 3D printing.

screen-shot-2016-04-18-at-9-39-26-am

I mentioned on stage that this was completely possible and that the only reason I didn’t do a live demo is that a 3D printer doesn’t really fit in carry-on.

Continue reading “eCommerce-powered 3D printing”

Code & Jazz

For me, programming is a lot like jazz, and writing a good app, program, function, is like writing a good jazz piece.

In some jazz pieces, there’ll be several instruments played simultaneously, each on their own path, each with their own tone, own focus, all taking a different approach to the same beat, same goal, eventually ending up together in the same place.

Programming seems to be the same. There are several parts of every app that get built simultaneously, be it the frontend or API, structure or architecture, each contributing in their own way – some taking the lead at times while others are there as support, eventually ending up together in the same place.