rmurphey Adventures in JavaScript


18 Jan 2013 edit

My friend IM'd me a link the other day to a document he and a colleague wrote at the end of 2011, listing all the things they wanted to make happen in the world of web development in 2012.

"We did almost all of it," he said.

"Well shit," I said. "I should write up something like this for 2013."

"Why do you think I showed it to you?"

A year ago I was working at Toura, a startup based in New York that was developing software to make it easy to create content-centric mobile applications. I started there as a consultant back in 2010, helping them write a saner version of the prototype they'd developed in the months before.

I got the gig because apparently I spoke with their director of development, Matt, at a meetup in Brooklyn, though I actually have no recollection of this. By this time last year, I'd been there for more than a year, and Matt and I had convinced the company a few months before that the technology we'd developed -- a JavaScript framework called Mulberry that ran inside of a Phonegap wrapper -- was worth open-sourcing.

I spent much of January and February speaking at meetups and events -- Vancouver, Boston, Austin, Charlotte -- telling people why Mulberry was something they might consider using to develop their own content-centric mobile apps. By March, though, it was clear that Toura was headed in a direction that was different from where I wanted to go. As it turned out, Matt and I gave our notice on the same day.

April was the first time in almost 10 years that I purposefully didn't work for a solid month. I spent almost two weeks in Europe, first in Berlin and then in Warsaw for Front Trends. I sold my car -- it mostly just sat in the driveway anyway -- to make Melissa feel a bit better about the part where I wasn't making any money. Tiffany was a marvelous host; we took the train together from Berlin to Warsaw for the conference, barely talking the whole way as we worked on our respective presentations. Warsaw was a two-day whirlwind of wonderful people -- Melanie, Milos, Chris, Alex, Frances -- memorable for my terrible laryngitis and capped by endless hours of post-conference celebration in the hotel lobby, which was magically spotless when we made our way, bleary-eyed, to the train station early the next morning.

I flew home two days later; two days after that, I started at Bocoup.

Taking a job at Bocoup was a strategic change of pace for me. For 18 months, I had been immersed in a single product and a single codebase, and I was the architect of it and the expert on it. As fun as that was, I was ready to broaden my horizons and face a steady stream of new challenges in the company of some extremely bright people.

As it turned out, I ended up focusing a lot more on the training and education side of things at Bocoup -- I spent the summer developing an updated and more interactive version of jQuery Fundamentals, and worked through the summer and fall on developing and teaching various JavaScript trainings, including a really fun two-day course on writing testable JavaScript. I also worked on creating a coaching offering, kicked off a screencasts project, and had some great conversations as part of Bocoup on Air. Throughout it all, I kept up a steady schedule of speaking -- TXJS, the jQuery Conference, Fronteers, Full Frontal, and more.

Though I was keeping busy and creating lots of new content, there was one thing I wasn't doing nearly enough of: writing code.

I went to New York in November to speak at the New York Times Open Source Science Fair, and the next day I dropped in on Matt, my old boss from Toura, before heading to the airport. He's working at another startup these days, and they're using Ember for their front-end. Though I was lucky enough to get a guided tour of Ember from Tom Dale over the summer, I'd always felt like I wouldn't really appreciate it until I saw it in use on a sufficiently complex project.

As it turned out, Matt was looking for some JavaScript help; I wasn't really looking for extra work, but I figured it would be a good chance to dig in to a real Ember project. I told him I'd work for cheap if he'd tolerate me working on nights and weekends. He gave me a feature to work on and access to the repo.

The first few hours with Ember were brutal. The next few hours were manageable. The hours after that were magical. The most exciting part of all, despite all the brain hurting along the way, was that I was solving problems with code again. It felt good.

With much love to my friends and colleagues at Bocoup, I've realized it is time to move on. I'll be taking a few weeks off before starting as a senior software engineer at Bazaarvoice, the company behind the ratings and reviews on the websites of companies such as WalMart, Lowe's, Costco, Best Buy, and lots more.

If you're in the JS world, Bazaarvoice might sound familiar because Alex Sexton, of yayQuery, TXJS, and redhead fame, works there. I'll be joining the team he works on, helping to flesh out, document, test, and implement a JavaScript framework he's been prototyping for the last several months.

I've gotten tiny peeks at the framework as Alex and the rest of the team have been working on it, starting way back in February of last year, when I flew out to Austin, signed an NDA, and spoke at BVJS, an internal conference the company organized to encourage appreciation for JS as a first-class citizen. Talking to Alex and his colleagues over the last few weeks about the work that's ahead of them, and how I might be able to help, has quite literally given me goosebumps more than once. I can't wait.

I look back on 2012 with a lot of mixed emotions. I traveled to the UK, to Amsterdam, to Warsaw, to Berlin two times. I broke a bone in a foreign country, achievement unlocked. I learned about hardware and made my first significant code contribution to an open-source project in the process. I met amazing people who inspired me and humbled me, and even made a few new friends.

What I lost sight of, though, was making sure that I was seeking out new challenges and facing them head on, making sure that I was seeking opportunities to learn new things, even when they were hard, even when I didn't have to. I didn't realize til my work with Ember just how thoroughly I'd let that slip, and how very much I need it in order to stay sane.

And so while my friend probably has his list of things he will change in the world of web development in 2013, and while maybe I'll get around to making that list for myself too, the list I want to be sure to look back on, 12 months or so from now, is more personal, and contains one item:

Do work that requires learning new things all the time. Even if that's a little scary sometimes. Especially if that's a little scary sometimes. In the end you will be glad.