You, Me, and Node @WalmartLabs

Another adventure begins.

Two months ago I’ve joined @WalmartLabs to lead the mobile web services team. Surprised? I was. After working for one of the largest web companies in the world, all I wanted to do was go to a startup. That’s not exactly right; I wanted to be part of a tiny team with a big mission, a place where the size of the challenge is matched by the freedom and resources to address it. Oh, and a lot of node.js!

I am excited to share this and tell you all about it, especially on the heels of this morning announcement of the acquisition of Small Society. But I’m not going to lie to you: I have an agenda and I am trying to recruit you. If you are contemplating a career move and I “had you at node”, feel free to jump right to very end of this post to find more about the team we’re building.

Rethinking Retail Through Mobile

It’s all about size, especially when it comes to consumer retail. @WalmartLabs is part of Walmart’s Global E-Commerce group and is focused on reinventing retail through technology. This is among the most important strategic investments Walmart has made in recent years and it goes deep and wide. This is not simply about making online shopping better, but about fundamentally changing retail by creating a new, continuous shopping experience across technologies and venues.

Our team is focused specifically on executing this vision through mobile. Unlike most other mobile retail applications, our focus isn’t limited to buying stuff on your phone or tablet. We are looking at the full range of possibilities when you have a powerful mobile device in your hand, both inside and outside the store. In addition, we are looking at a much wider set of products, from electronics to pharmacy and all the way to fresh groceries.

The best part about building a team and talking to potential new hires are the new product ideas that come up when you start to think about what’s possible: An app that sorts your shopping list based on aisle location as you walk into a store; the brick-and-mortar version of ‘60% of your friends bought this brand of toothpaste’ when trying to decide which to buy; real-time checkout, showing you the total dollar amount including tax of the items in your cart; shopping analytics across stores and online purchases producing a new and unmatched dataset about your lifestyle and health as the foundation of new tools to improve your life. And this is just from my most recent conversation.

From my first meeting with the team, I found myself thinking about new ways to change retail. I’ve never given much thought to that, other than noticing a feature I liked on Amazon or a time-saving service at a store. All of a sudden, I’ve started noticing all the small things we can change today – the obvious ideas just lying on the floor – if only I could get those apps in the hand of enough people. And that’s where Walmart offers a unique opportunity, with hundreds of millions of loyal customers worldwide eager to give your new idea a try.

Working for Walmart? You Can’t Be Serious!

Now let’s talk about the big blue elephant in the room: working for Walmart. I’m in no way trying to change how you view Walmart; only to share with you the process I went through.

To put it bluntly, I had a gag reflex reaction to the idea of working for Walmart. It’s hard for me to pinpoint exactly what my reaction was based on. Walmart’s image, history, and impact on society played a role, but it was mostly my recent experience working for a large web company and past experience working for Citibank, the largest bank in the world, that turned me off. Short of working for the Department of Defense or the Chinese Army, nothing gets bigger than Walmart.

This was not the employer of my dreams – far from it! – but the opportunity itself, and more importantly the caliber of the team, convinced me to take a deeper look. I spent hours reading up on Walmart, the good and the bad. Given the size of the company, there was plenty of both. I was surprised at how much I didn’t know about the company.

I was mostly blown away by the numbers, of which two really stuck with me:

  • in the United States, 140 million people visit a Walmart store every week, and
  • Walmart is responsible for 35% of all groceries sold.

I remembered an article I read a few years ago about Adam Werbach, once the youngest president of the Sierra Club, and his decision to join Walmart and the backstory of that decision. I also recalled the Stonyfield story in Food Inc. and the impact Walmart had on the landscape of organic food (price, availability, and commoditization) once they decided to carry it in their stores.

I’m not trying to draw any comparisons between these stories and my personal decision, other than to point out that when you get to point the “Force” (or “Death Star”, depending on your perspective) at a target, big things happen.

At the end, we all make compromises when we work for any corporation, especially those large enough to have real impact. Walmart’s size translates directly into a noticeable impact on society but without getting too philosophical, so does Google’s, Apple’s, and News Corp’s to name a few. I have major grievances with all these corporations, but I do recognize that if I was trying to recruit you to work there, I would not be spending this much time to get you to look past the brand’s reputation. I respect the fact that for some it will always be “you lost me at Walmart”.

What Do I Want to Do When I Grow Up?

Last year I wrote about my decision to stay at Yahoo! and work on Sled, a virtual startup within Yahoo! building a collaborative list-making tool. The list included products, culture, manager, team, and work/life balance, and these are still the main factors that matter to me. When the time came to move on to another opportunity, I’ve asked myself a two questions: what is it I’m most excited about these days, and who is it I am most interested in working with?

My passion and focus the past four years has been around APIs: frameworks, design, advocacy, and lot of security (you know, all that OAuth stuff). But my true joy over that period is a lot more specific: node.js. Working with node for over a year in a full-time capacity has spoiled me and for the first time in a while, added a specific technology to my job search criteria.

In one sentence, my dream job was leading the development of a new, world-class, open-sourced, node-based, OAuth-protected, developer-focused, API server framework.

I wanted to take all my experience and ideas from the past few years and apply them to one awesome project. But that wasn’t enough (is it ever?). It had to be real. I didn’t want another academic exercise or working in a vacuum. I also had no energy to constantly fight my employer to let me do what I was hired for. I wanted to build something that will get used and abused as soon as it was forming, ideally by millions of users.

I wasn’t expecting to find it but I actually ended up with two such opportunities – both amazing. One was an early stage startup and the other, Walmart. The Walmart opportunity was a surprise. One of the people I really wanted to work with was Dion Almaer. We have not worked together before but we did cross paths over the years and I’ve been following Dion’s and Ben Galbraith’s work with interest. Turned out that earlier this year they sold their company to Walmart and took over mobile engineering, helping to create @WalmartLabs.

Ben and Dion’s story on how they got to Walmart is pretty interesting by itself but even more telling about the team and the kind of opportunities it offers. At the end it wasn’t an easy decision and it was very close. I’m happy to report that a 2 months into this, I’m super excited about my decision and it seems to be the prevailing attitude shared by the rest of the brilliant people I get to work with which include Kevin Decker leading the mobile web team, Stefan Li leading the Android team, Brandon Sneed leading the iOS team, and the new folks from Small Society to mention just a few.

Let’s Talk About You!

Now that you know how I ended up at Walmart and got the big picture of what we are trying to do, we can talk about what it is we are actually doing and how you might fit in.

To expand a bit on my one sentence job description, the mobile services teams is in charge of the backend serving all of our mobile applications. Today these include iPhone, iPad, Android, and mobile web. We are mainly focused on the US market but will expand internationally in the coming months. We have a legacy JAVA system in place which we are going to replace over the next few months with a brand new node solution, as well as develop new services directly in node.

Our main focus is building a world-class web services operation which includes building the best API server framework possible. Think of it as Express for APIs, with the typical requirements for speed and flexibility, but designed in a way that enables building an entire API service in days and focus primarily on business logic instead of facilities (e.g. query and payload validation, smart routing, dynamic documentation, OAuth support). And of course, we are going to build the core of this framework as open source from the very beginning.

In addition, we are looking to build and contribute to projects aimed at making mobile services better, including smart caching (we are currently evaluating Redis and other new technologies as the foundation of such facilities), and dynamic repositioning of HTML rendering services between the back-end and front-end. Also, in alignment with our ‘Labs’ name, we experiment with new technologies and architectures aimed at improving mobile performance end-to-end.

The current services team is about four people and we are looking to add a few more over the next few weeks. The new roles will be 100% node, working on the new framework and services. Unlike most other “node jobs”, this is really all about node, not a trick to get smart people excited about yet another JavaScript gig.

If you noticed, I haven’t wasted your time with stories about how, despite the size of the company, it still “feels just like a startup”. After all, this is what every large company tries to sell these days. Instead, I invite you to come and check us out, talk to the team and form your own opinion on how lean and mean we really are. Most of our team joined us from recent startup experiences and they care a lot about that culture and energy. Our team is fairly distributed with the main office located in a new building in San Bruno, CA. The iOS team is based in Portland, OR, and we have quite a few team members working remotely.

We are looking for brilliant engineers passionate about new technologies in general and node.js in particular. We are not going to bore you with a useless list of experience and requirements. If you think you have what it takes to get the job done, we want to talk. We promise not to bring you in for an endless parade of grilling interviews or ask you to write code on a whiteboard. We much rather check out your Github account and have a lively debate about technologies, software design, and your obligatory bizarre geek hobbies (we’ve got our own to share).

I will be writing about our progress and the new framework over the next few months. This promises to be an exciting ride. If you want to learn more, drop me a line.