Automattic Grand Meetup, 2014

Once a year, all of Automattic gets together in one place for a full week of face-to-face work, learning, food and fun. We fly in from all around the world, shuttle to a hotel/resort/space of some sort, and then get together to work through a bunch of things. This year we descended upon Canyons Resort in Park City, Utah (another US state crossed off my list!). The week was roughly structured into a front-loaded, work-type-things section, and a tail end more loaded with activities. For my part, I:

  • Learned more about Node.js (and got a copy of coworker @TooTallNate‘s “Node.js in Action“), specifically in relation to some new applications we’re building out at WordPress.com
  • Worked with React.js some more (which is awesome and pretty exciting)
  • Went on a 5km run (walked the first bit, but then my knee was feeling OK so I ran most of it)
  • Took a gondola ride up the mountain, then went on a ~1.5 hour hike through beautiful aspens and conifers, past a trout-stocked lake and through some downhill MTB trails
  • Went on a guided fly fishing trip with guides from Trout Tales, where I (finally!) caught my first fish; and then my second and third as well
  • Visited High West Distillery for a tour, tasting, and picked up a bottle of their Son of Bourye (a delicious blend of Bourbon and Rye)
  • Met a bunch of new Automatticians and spent time hanging out and getting to know people new and old
  • Road tripped from Denver, CO to Park City, UT and back again with @alternatekev and @michaelarestad

Michelle did a great official write-up on the WordPress.com Blog.

Here is a collection of shots from the week (including the trip there and back):

* Title image taken by Luca Sartoni

Phantogram Blew My Mind

I just got back from seeing Phantogram play at the Ogden Theater here in Denver, CO, and they blew my mind. It was definitely one of the stand out shows that I’ve seen recently, which was extra impressive for a Monday night, at a venue I can walk to from my apartment, for $25.

Their set was super tight, and flowed really well. Instruments were switching constantly, and the four of them wove guitar, drums, keys, bass and samples together flawlessly. The two core members, Josh and Sarah, switched vocals every few tracks to provide a balance and variety that kept things interesting, while one of the best-executed light shows I’ve seen played on around them. Their stage presence was dramatic, powerful and engaging, when it wasn’t intimate and personal, depending on the track.

If you get the chance, go and see them, you won’t regret it.

I was moved enough to buy a shirt as a memento, which I almost never do at live shows.

* Header image from Wikipedia entry.

Why JavaScript Is The Next (or first) Programming Language You Should Learn

I’ve been asked a few times recently what programming language I’d learn if I was just starting out. Right now, the answer is definitely JavaScript, and here’s why:

Easiest Development Environment

I believe one of the biggest hurdles for people to get into programming is actually all of the other stuff around just writing code. Anything you can do to get to the point where you’re writing code faster (at least while you’re learning) is a win in my mind. Everyone has access to a web browser, which means everyone now has access to a simple development environment. If you’re using Chrome on a Mac, press cmd-opt-j. Welcome to the console, you’re now able to start writing JavaScript to manipulate the page you’re looking at. That’s pretty awesome. There are also a bunch of online editors and tools like CodePen, JSFiddle which allow you to dive into a more complete development/testing/prototyping environment right in your browser.

Simple

JavaScript makes it really easy to write simple code when you’re getting started, which is perfectly valid. Define a function, call it. Make a loop. Ignore the DOM (in fact, ignore the web almost entirely) and focus on simple logic and code. Start building objects and arrays. The OO-model in JS can be a little weird (especially around classes and inheritance), but that’s OK, you’re going to need to be flexible if you’re going to be a developer anyway. Once you get the basics figured out, you can start diving deeper and discover the full power of JavaScript.

Flexible

The flip side of the previous argument is that JavaScript is also super flexible (arguably too much so!). Once you move on from a few functions embedded directly in script tags in your page to manipulate an image or a menu, you can quickly move towards a fully-architected web application with many files, larger object/class-style structures, complex single-page-applications and a whole lot more. JavaScript actually scales up quite nicely to handle bigger challenges, and is ideally suited to web applications, since it’s so tightly integrated with the DOM and the browser.

Web-native

As much as native mobile app developers would have you believe that apps are the future, I still think that open web technologies are the key to the future. Give it a little time, and we’ll mostly be writing all of our mobile apps in HTML/JS, and deploying them in wrapper-apps to our phones. I consider this basically inevitable. Learning to develop for the web is super important. You’ll need to know it basically regardless of what main language you’re working with, because despite our best efforts, you will still end up manipulating CSS, tweaking some HTML tags, etc. That’s not going to go away any time soon I don’t think.

Inevitable

This is pretty far down the list, but that’s mainly because of a thought progression more than anything else. I actually see this as a really important reason for why you should learn JavaScript. Here’s the deal — if you want to develop things for the web, you will end up writing JavaScript. There’s no avoiding it. There’s only so much you can do with a server-side language (PHP, Python, Ruby). At some point, your payload is delivered to a browser, and if you want to do anything remotely interesting there, you have to do it in JavaScript. So if you’re going to have to learn it anyway, why not optimize that process (and perhaps use JS in more places, rather than less?).

Portable (browser/server/native)

Now that we have things like Node.js, JavaScript has moved beyond the browser. Not only can you write server-side JS (so you can build the front and back-end of your web application in JS), you can also use something like node-webkit to bundle it up into a distributable desktop application, or use PhoneGap to package it as a mobile app for any platform. No other language can match that portability right now.

Toolchain

If all of the above wasn’t enough, the exploding JavaScript community has really come a long way in the last few years as far as the developer’s toolchain goes. While we might not have the integrated, one-stop-shop approach of something like XCode for Mac developers, we have tools like Grunt and Gulp which allow us to build our own asset pipelines. Every code editor known to man has support for JavaScript syntax highlighting and linting, and we don’t need a build process like other languages, so we’re lighter on our feet anyway. There’s also a bunch of tools for testing; everything from unit tests to functional tests, to fully automated simulations of users-in-browsers.

So anyway — there’s never been a better time to get started with coding, and if you’re going to do it, I suggest starting with JavaScript. Start small, work your way up. View Source. Get on Github. Go nuts.

Personal Location Tracking

I’ve been pretty fascinated with the idea of recording my own location for a while now. I started using Foursquare at SXSW in 2009 and have mostly continued to do so since then (I have over 3,700 check-ins). You can see my check-ins being syndicated back to this website (using Keyring Social Importers), and if you scroll back through the history of the main page, you’ll get maps aggregating a few check-ins at a time.

TripIt helps me keep track of all (most) of my travels, and provides back some data (via API), which I also import into this site. Here are all of my trips since March, 2008.

In February last year, I started using Moves, and quickly came to love its simplicity. It’s a background app that runs on your phone and keeps track of your location. Using server-side data processing, they crunch the raw location information to figure out when you were walking, running, riding, or on some form of transit, then give you back a timeline and a map showing what you’ve been up to. It’s a really nice “set and forget” way of keeping up with how many steps (roughly) you’re doing each day, plus your other forms of exercise. The app has continued to make small improvements, and then on April 24, Facebook bought them. I can’t say I’m stoked about the acquisition, but regardless, it’s a cool app, and it collects some fantastic data.

Since it’s all data, and there’s a growing sphere of location/movement-related data services out there, shuffling your data around is just a matter of a little programming. As I mentioned, I’m importing my Foursquare data into my blog already. I also have a Moves importer that’s currently creating a text-only summary of my information. I’ll probably add simple maps to it at some point. Moves-Export is a pretty neat service that will automatically import your Moves data and can give you a better breakdown of things, plus auto-post to Runkeeper and Foursquare (if you like) when activities are over certain thresholds (e.g. riding for more than 15 minutes). Pretty awesome.

Today, Chris Messina tipped me off to Move-o-scope, an awesome web app that will slurp in your Moves data, and give you back a rich visualization of it all. It lets you toggle things on and off, pan around the globe and see what you’ve been up to. It’s fascinating. Here are some places I’ve been since last February!

It’s fun to turn on the “Transit” layer (orange/brown, seen in the last picture above and the first one in the post), and follow the lines around the globe to see where you’ve been, then turn it off and zoom in to get a feel for what ground you covered while you were there.

Automattic, 5 Years In

On May 11 (today) in 2009, I started full time at Automattic. I’ve written about my experiences over the years, and marked the occasion each year in some small way. Let’s continue the tradition.

automattic-logo

This year has actually been a particularly big year. Probably the headliner happened only a week ago; Automattic raised $160 million, on a valuation of $1 billion. That’s a lot of money. That’s a large valuation, and it feels kind of weird to be employee #35 of a company of that scale. We’re now at 247 employees, and we span 30[1] different countries. Whoah.

Other than that, this year we: had a pretty large secondary fund-raising ($75m, via Tiger Capital), made some exciting acquisitions: Cloudup, Scrollkit, Longreads, had another successful WordCamp San Francisco (where I spoke, and organized the Contributor Day again), launched WordPress.com Connect, transitioned to a new CEO (Matt Mullenweg, our founder), and a bunch of other interesting things both internally and externally.

On a more direct/personal note, I feel like I’ve settled into my role as a team lead, and my team and I continue to evolve our development practices towards a modern, iterative workflow, heavy with JavaScript, Sass, and the like. Shout-outs to Allen, Gary, Jennifer and Kevin (my team) for working with me as we continue to make it all up as we go.

 In my sixth year as an Automattician, I’ll be relocating to Denver (my second relocation since I started, capitalizing on working for a completely distributed company). I look forward to new adventures there, and continued adventures with Automattic. It continues to be an inspiring and challenging company to work for, full of interesting and impressively-smart people.

Thanks everyone for continuing to make Automattic home, it’s the best job I’ve ever had, and it would be hard to ever top.

[1]: Argentina, Australia, Austria, Brazil, Bulgaria, Canada, Denmark, Finland, France, Hungary, Iceland, India, Ireland, Israel, Italy, Japan, Lithuania, Luxembourg, Malta, Portugal, Russia, Scotland, South Africa, Spain, Sri Lanka, Sweden, Switzerland, United Kingdom, United States, Uruguay.

A Moment In Time

Last weekend, I went to a friends house for a “story telling” night. The theme was “time”. I decided to tell the story about how I cut my thumb with a hatchet recently, and someone recorded it, so now you get to hear it as well.

(It’s pretty quiet, so you’ll need to turn your volume up to hear it properly).

The Year Without Pants

Today is kind of exciting, although it’s been a long time coming so it’s not much of a surprise for me 🙂 Today Scott Berkun, the author of books such as The Myths of Innovation, and Confessions of a Public Speaker, releases his latest book, The Year Without Pants: WordPress.com and the Future of Work.

The book gives an inside look at what it’s like to work at Automattic, and to work on something like WordPress.com. Scott was my direct team lead (of the team that I now lead) while he was at Automattic, so the book contains a lot of personal interaction with yours truly. It also happens to be a fun read with a bunch of interesting insights into distributed teams, management, and the open-source-based culture we have at Automattic, and which may well be the future of many more companies.

I’ve read versions all the way back to some of the first drafts, and am right now reading the “final” version which I received in hard copy. You should go get it and read it as well.

4 years on Automattic

On this day, 4 years ago, I started full time with Automattic. This is my 4th Automattiversary.

I had already been on trial for 5 months by that point (since January), and had a good feel for the company and the other Automatticians. I knew it was where I wanted to be. So I accepted the offer, and became a fully-fledged member of a relatively small team (I was employee number 35) that was bringing blogging to the people (amongst other things).

In the four years since then, a lot has happened and changed.

(more…)