Skip to content

Beau Lebens

Automattic

Beau is an Australian-born PHP and JavaScript developer who has worked in the WordPress space for 10 of the 20 years he’s been coding. He spent the last few years managing teams delivering the Jetpack plugin to millions of WordPress sites and is now working on WooCommerce.

Inteview image for Beau Lebens

What led you to become a developer?

I kind of stumbled into it. I’ve always been very curious and like to learn new things and tinker. We had some of the first personal computers (BBC Micros!) in my classroom when I was a kid, and I loved playing around with the limited applications available. In my teens, I started dabbling with HTML and creating my own web pages.

That thrill of creating something, and the feedback loop of being able to hit refresh and see the changes immediately really hooked me. From there I just kept wanting to build more complex and interesting things, so I self-taught CSS, then some JavaScript, then PHP (this was around 1999-2000). PHP really gave me the ability to build almost anything at the time.

I especially fell in love with the idea of the open web, and went deep on APIs and leveraging multiple systems to create new things. Fundamentally I love the process of creating new things, and being a developer is a specific form of that.

What’s your setup and development environment?

Automattic is completely distributed, so we all work from home offices, cafes, coworking spaces, or wherever else we can be productive. I sometimes visit a coworking space or cafe, but mostly work from home, where I have a space set up as an office, using a sit/stand desk. I use a 13” MacBook Pro (hooked up to a 27” LG Ultrafine display) and have an iPhone XS and an iPad Pro (with Logitech keyboard case) that I also use a lot when I want to focus on certain things (mostly non-coding). Here’s my home office (don’t worry, I cleaned up just for the picture).

My current editor of choice is Atom. I’ve been meaning to try out NetBeans and Visual Studio Code because I keep hearing good things about them. I use Chrome as my browser, and still, just use Terminal. I’m experimenting with Hyper, written by my ex-coworker Guillermo. I use Alfred for all sorts of shortcuts. 1Password for all passwords. I’ve been using SourceTree for some git work and juggling a bunch of different repos.

What’s your favorite stack to work with?

I’m actually pretty old-school, and I like the simplicity of working with PHP, so I guess LAMP, although I think Nginx is giving Apache a run for its money these days. I love not needing any kind of build process or anything, and just being able to hack on changes and have them be available immediately. It’s also a really easy stack to get running locally, is available on every host, and tends to be pretty bullet-proof.

On the JS side of things I like React, and all the typical things that come with it (Webpack, Babel, etc). I haven’t worked with it specifically, but am curious to explore Next.js.

What are your top 5 go-to repos?

I spend most of my time in work-related repos, which would primarily be github.com/Automattic/wp-calypso, github.com/Automattic/jetpack, and github.com/woocommerce/woocommerce.

Beyond those, the repos I find most interesting are actually the ones that are not managing code (those are important, but the repo itself doesn’t tend to be particularly interesting). As an example, I love github.com/remoteintech/remote-jobs and github.com/public-apis/public-apis for the way they collect and curate information, via a repo.

What technologies are you most excited about now?

Machine learning fascinates me, although I haven’t dabbled in it at all. I love messing around with Smart Home/automation stuff, and think the IoT is going to change everything about how society functions. Voice systems (Alexa/Google Home) are pretty interesting, although beyond music, weather, and some basic smart home actions, I’m still kind of searching for my own killer app.

I’ve dabbled with a couple of voice-powered applications, but they didn’t really stick for me, and I ended up just defaulting back to a mobile device for most of them. I recently purchased a drone (DJI Mavic Air) and the technology in these things blows me away. I think the software (combined with sensors) side of drones is fascinating, already incredibly advanced, and speaks to an interesting future when tied in with automated cars and other “intelligent” modes of transit, travel, and automation.

What does your ideal workflow look like, from messing around to production?

Messing around in production! Just kidding. I like to collaborate really closely with designers, and enjoy the back and forth of working with someone who thinks very differently from me, where we can supplement each other’s gaps, and push each other in new directions.

We use Docker for a lot of development at work (Automattic), with GitHub for most source control. So it’ll be branching from master, working in the branch on small/discrete changes, then aiming to get those merged back to master as soon as possible (we aim to keep master deployable or deployed live, with changes merged as early as possible, even if feature-flagged off in production). I’m a big fan of this model because it means you hopefully find out as early as possible if there are problems, all new work is branched from the truly “latest and greatest”, and you minimize merge conflicts that tend to come from long-lived branches.

We have a split environment where some of our work is continuous deployment/SaaS, and some are “shrink-wrapped” software released on various cadences (from monthly to roughly quarterly). I much prefer working in the SaaS-style arrangement, but monthly releases are bearable if managed properly.

What are you currently learning?

Right now I’m actually re-learning how to be a developer. I took a hiatus of a couple of years where I was managing larger and larger groups across engineering, design, and business, so it’s been a while since my daily work has involved writing much code. I’m honestly just getting back into figuring out how to work efficiently with Git(Hub), Webpack, React, Docker, Vagrant, modern PHP, etc, etc.

What project are you most proud of?

On a personal level, I’d say the combination of Keyring and the Social Importers I wrote. Keyring is a flexible authentication framework/abstraction layer for WordPress, which allows you to connect to and communicate with various web services from a WordPress install. I built that primarily to power the Social Importers, which I use to pull back copies of most of my “digital footprints” into a WordPress install at dentedreality.com.au. It’s all kind of a big experiment, but a bunch of other folks have found use in Keyring in particular, which is cool.

What are beginner developers not learning that is critical in this day and age?

Clear communication. In particular written/text-based. I think the value of clearly-articulated (and understood) written prose is vastly underestimated as a crucial skill for developers. It might not be long-form thought-pieces, but your GitHub issues, code comments, and likely daily interactions via Slack or whatever are really going to be the meat of your career. The better you can get at writing, the sooner, the smoother ride you’re going to have.

I’m biased here because I’ve worked in a purely distributed workplace for the last 10+ years, but I really think being able to think and then write clearly is crucial to be a successful developer (or basically anything else in the web industry for that matter).

What tech challenges are you facing at your company?

At Automattic, we focus on WordPress-based solutions. My personal specialty has been in the space between hosted services and self-hosted installations of WordPress, which is absolutely rife with a complexity that tends to be largely out of our control. Developing software that executes on someone else’s system (WordPress), hosted in various different ways, with thousands of plugins and themes that could be interfering (with no code-level sandboxing), is really complicated. Add into that a general approach of backward compatibility, and a lot of community politics, and you’ve got plenty of challenges on your hands.

I think we’re also facing some interesting challenges spanning our hosted, primarily-React.js-based web app, self-hosted (primarily PHP/HTML/JS) WordPress, and the native mobile apps that we build for both iOS and Android. Keeping the experience consistent amongst them all, and still allowing the flexibility of WordPress as a platform is super challenging.

What music do you listen to whilst developing?

Interview image for Minko Gechev
Minko Gechev

Google

Minko is an engineer in the Angular team at Google. He is working on compilers, tools for static code analysis, and machine learning. Minko received awards from the President of Bulgaria for his impactful open source projects.

Interview image for Thomas Ezan
Thomas Ezan

Lyft

Thomas is a French Android Engineer. For the past 4 years, he has been in Lyft’s Growth team. He is currently based in Seattle, WA.

Interview image for Conor Hastings
Conor Hastings

Netflix

Conor is a Senior Software Engineer working on Studio Apps at Netflix. When he’s not at work he likes to see what parts of the internet he can break and get away from his computer by spending an inordinate amount of time decorating a dollhouse which for some reason still has a Macbook.

Be the first to read new interviews just like this one with Minko Gechev. from top developers.