On Leaving Walmart

It has been an exciting three and a half years, but it’s time to move on.

Looking back, there is much to be proud of. We have produced massive amounts of open source code that have been successfully adopted by dozens of companies. We created an open flow of information on our production experience (e.g. #nodebf) that played major role in increasing node adoption by the enterprise. It’s amazing how our small team of 18 people had an amplified influence over the future of node. I am extremely grateful for the trust I was given building and leading this exceptional team. This was very much a team effort all around.

Our biggest and most visible accomplishment has been the creation of the hapi framework and its community. It is very hard to predict how an open source project will work out, especially one created by a corporation (and even more so when that corporation is Walmart). hapi’s success clearly demonstrates that by embracing the community and openness from the start, companies can reap valuable rewards.

We never said “we want to work with the community” because we considered ourselves part of the community. Over the last year, the vast majority of work on hapi modules has been done by people outside of Walmart. In fact, the shift has been so dramatic that we changed the entire governance model last year to encourage and empower this transformation. At this point, Walmart is responsible for a very small share of the resources maintaining the codebase and the community.

This transformation has been so successful that it is no longer a Walmart project – and that’s a huge win for Walmart. Walmart gets to continue to benefit from their initial investment by having access to a best-in-class framework, custom-made to suit their needs, with little to none ongoing cost. They planted and nurtured a seedling and now get to share in the benefits of the tree, cost free.

There were two less visible accomplishments (but equally impressive) worth mentioning. The first is the amazing remote team we built which can serve as a model for other companies to follow. When I joined Walmart, attracting talent was a major challenge. People interviewed with us for the sole purpose of getting a competing offer to leverage against the company they actually wanted to join. But by reaching beyond the local Bay Area boundaries and showcasing our work and community participation, we quickly became one of the most sought after teams to join.

The second is the culture of quality we created. Learning from open source and community management best practices, along with extensive investment in testing tools, we developed an engineering workflow that has produced unmatched quality results. What is impressive about it is how quickly it was adopted by others outside of Walmart and the hapi community.

It has been gratifying to see our accomplishments celebrated by the community and to be able to share our success with others through open source and public sharing of information. Walmart has been consistently supportive of these dramatic cultural shifts in attitude towards the outside world more than any company I have previously worked for. I hope others will use this example to push for change in their own organizations.

As for hapi moving forward, nothing changes. I will continue to maintain hapi and participate in leading the community around it. As I mentioned above, hapi has been successfully transitioned out of Walmart over the last year and is fully owned by the community that supports it. No one owns any trademarks or has special rights to the code, names, logos, etc. It’s all under the same open license.

There is one person I have to thank by name and that’s Dion Almaer – you won’t find a more supportive, generous, and inspiring person to work for. It has been an amazing experience and I am grateful to everyone who took part – we share these accomplishments.

As for what’s next, I guess it’s time to find another adventure (yep, I’m looking).

Thank You

It’s hard to describe the joy of writing a successful open source project. There is the satisfaction from people using your code and knowing that all that effort wasn’t for not. There is the gain in reputation and boost to one’s career that translate most directly to the bottom line. But all these measurable metrics still fall short of the true joy.

For the longest time, hapi was about me. The most gratifying feeling is knowing that it really isn’t anymore. It is a community of kind, smart, and dedicated people who made a decision to use it and be part of it. I still get to lead but it is not mine anymore. It has taken a life of its own and that’s the most rewarding return you can ever expect. Creating something that far exceeds my own abilities.

I’ve been thinking a great deal lately about how I want to cash in on this success and I’ve decided to use my influence to fix diversity in tech. I think the hapi community is leading the way in stability (enterprise grade with that startup smell), quality (fanatical code coverage), and openness (almost twenty leads working together in the open). It should be enough, but what’s enough? So I decided to set my own personal sight on diversity.

As a gay man (yes, still a white male) I have been fortunate to never know true adversity. But I can easily empathize with those who do not feel comfortable stepping forward and joining the crowd (and let’s face it, white males do not have the best track record). I have been listening to non-male developers I respect and I’ve been reading research on the topic. To me, fixing diversity is the next big challenge.

I plan to use whatever influence I’ve earned, whatever open source karma I’ve got, to help nudge gender diversity in tech. Not because I have a daughter (I hate this stupid excuse), but because it is the right thing. It’s that simple. And I do have a lot to gain from it because the few women I got to work with in my career have been outstanding and I would like to see more.

So thank you for putting me in a position where I can try and make a difference. The support and adoption the hapi framework is getting is one of the highlights of my career and probably what I will be known for in the near future (much better than that authentication protocol I once wrote).

I would much rather be known for creating the most diverse community in tech. Now that’s something worth aspiring for.

Don’t Be a Bully

I don’t know Brendan Eich. I don’t know much about him other than (1) Mr. Eich created JavaScript and (2) made a contribution to support proposition 8, aimed at taking away the right of gay couples to marry in California and voiding the marriages already taken place, including my own.

When the news about Brendan Eich’s contribution became public a couple years ago, the reaction within my community – the web development community – was pretty strong and one sided, deriding and marginalizing him. Brendan Eich didn’t do himself much favor with a blog post full of grand standing and lack of empathy. I did agree with his basic argument though.

Being a bully is never a productive strategy. It might be satisfying but it is counterproductive and shows the same lack of empathy that is at the root of the issue on the other side. If you limit your social and business circles to people who only share your exact social ideal, you are actually taking part in sustaining the status quo. There is nothing more powerful than an open dialog.

With his appointment to Mozilla CEO this week, the story got resurrected and many people I love and admire expressed their disagreement with the promotion solely on the base of his contribution. This is unfair. From all accounts, Mr. Eich has never applied his (assumed) personal belief to his work or to others, and pretty much everyone who chimed in has no real first-hand experience with Mr. Eich.

I don’t participate in parades or demonstrations. I am not very active beyond voting and making political contributions. But I am confident that by living my life in the open, by engaging those around me, I am making a positive impact on the lives of other gay people. I constantly invite my friends and coworkers to my house for dinner with their family, exposing them to what is often their first same sex family experience. I seek people and share my personal experiences, explaining why their positions are hurtful.

I strongly disagree with the claim that one can donate or vote to something like proposition 8, and be ignorance-free, hate-free, or bigotry-free. Try walk a mile in the shoes of most gay people, especially during their teen years in a society that still sucks today with its treatment of gay people and tell me you still stand behind that claim. But that’s also my point – it is very much my responsibility to share my feelings and experience with those who disagree with me in hope of seeding this understanding.

It is sad how many people lack true, actionable empathy for people who are still today being beaten, abused, derided, mocked, disowned, dismissed as an abomination, lynched, or executed. That even those who support gay rights are not sufficiently open minded about the wide range of gender expression that doesn’t fit their norms.

Instead of posting comments on Twitter aimed at specific individuals, consider sending those you disagree with an email explaining to them in  personal tones how their actions hurt you and impact your life. There is nothing more powerful than a personal interaction to change minds. I’m not saying you can change everyone’s mind, or that everyone would be open to engage, but you should at least try.

You don’t get to take the moral high ground unless you actually climb there first.

On Being (Mentally) Well

tl;dr – 1 in 4 people suffer from a mental disorder. If you feel depressed, anxious, or otherwise unhappy for more than a few days, please reach out to a friend, a family member, or a professional. If you feel alone or isolated, know that you are very much in good company with almost 60 million others (in the US alone). You might be surprised to know that many of your friends are (or have been) in therapy or use medication to help with their mental health. Regardless, educate yourself about mental health and make it known to your friends and family that seeking help is a sign of strength and that you are there for them. Please reach out today.

The past few weeks have been a sad and frustrating reminder of the painful toll depression and other mental disorders take. Right before New Year’s, our bay area community lost Conor Fahey-Latrope, a talented C++ developer. A few days later, Luke Arduini, a prominent node.js developer went missing. Sadly, they were not the only ones.

Continue reading


I’ve been asked by a few people for my thoughts regarding the ‘gendered pronoun’ incident that’s occupying the node community this week. I am purposely not linking to that thread. I appreciate Ben Noordhuis contribution to node, and I think that contribution merits a more nuanced response from me than a Twitter one-liner.

First, because it is worth saying, there is no argument that Ben is a very smart guy, has made a significant contribution to node and libuv, and has been tremendously generous with his time and talent. I do not believe the node community is “better off without him”. I hope he comes back.

To me, this is the core of the issue: Ben has an established history of dickishness. This attitude has been tolerated by the node community longer than anyone else’s inappropriate behavior because of Ben’s clear talent and contribution. But this is never sustainable and at some point, one more slip is enough to cause an uproar, and this is what happened here.

If the response from individuals and companies feel exaggerated and over the top, it is because for many insiders, this is not a single incident but the last straw. Whether that is fair or not is a matter of opinion.

I witnessed this behavior in a response to a node issue a member of my team opened a few months ago. I sent a private letter to Ben’s company explaining why I felt it was inappropriate and offensive. The response I received suggested that this was simply a result of Ben’s work load and his need to sort through many issues quickly. I was unsatisfied and expressed that. Shortly after, Ben corrected his behavior on that particular issue and provided thoughtful and patient feedback.

There wasn’t an apology or an acknowledgement of wrongdoing, and that stuck with me. Ignoring all the ‘gendered pronoun’ debate, what is really at the core of this incident is lack of empathy. It’s failing to say a simple ‘sorry’. It might sound trivial or petty but the incident a few months ago left enough bad taste in my mouth not to want to engage Ben further. I’ve actively directed my inquiries to other members of the node core team.

Ben is by no means unique in his attitude. I am sure half the people I interacted with when I was working on that “awful 2.0 security protocol” feel the same way about me. But when I offend people unintentionally, I immediately apologize publicly and privately, and when I choose not to, it is done with the clear understanding of the repercussions. When I quit that working group, the negative reaction I received was very much earned by my actions.

Every community has to decide what is acceptable behavior within its boundaries and especially what it allows its leaders to do. Whether it is an open source project or the workplace, there is always a balance between someone’s attitude and contribution. One often does counter-balance the other, but only to a point.

My behavior within the node community is in sharp contrast to that of my behavior in other communities. It’s not because I’ve changed, matured, or evolved. It is simply because it is the only acceptable behavior within the node community. Context matters.

Ben had multiple opportunities to back out of the corner he put himself in – and he still does. It really doesn’t take much. At least not in word count. People are just looking for some empathy, for acknowledgement that their feelings were hurt, and that the offender understands and regrets their actions, especially now that they know how offensive it was to people.

I hope Ben comes back from his break and continues to contribute. And when he does, it will be our turn to show empathy and move on.

Let’s Talk About Food

My life is split between two seemingly conflicting themes: software and food. I spend a great deal of time sitting in front of a screen moving my fingers. I also spend a great deal of time shoveling shit. Literally. I don’t like the “day job” and “personal life” dichotomy because it is just false. I love writing software. I love farm life. I work from home. Everything I do is out of passion. And as my passion grew deeper for both over the last 10 years, I started to realize the similarities, the shared values, and the harmony they create together.

After my speaking experience at Realtime Conf 2012, I knew this would be the right be venue to try and bring my worlds together on stage. My first pitch to Adam Brault back in May was centered around the idea of getting people’s hands dirty. With actual dirt. I wanted to get that simple universal experience (at least prior to the 20th century) of working with dirt back into our culture. I let the idea simmer in my head for a bit.

Adam and I talked about it some more at NodeConf in July and on the drive home, everything came together in my head. I realized that dirt is just one detail and that food is the creative force I am looking to share. When I got home I sat down and wrote my talk proposal. It was a little bit insane. Some of the ideas in there would have required the conference to increase their insurance policy. But the original pitch largely survived.

Then the insanity kicked in full force.

I am going to talk about food. The food, of course, being a metaphor for breaking through the mundane and seeing things with fresh eyes – rethinking of what it is like being an artist in a very mechanical and scientific craft. I would like to share some of my culinary experiences and studies from the world’s most innovative chefs to show how software engineers must deconstruct, simplify, reduce, and reconstruct our craft in new and creative ways.

I am not going to give away much else other than share some of the insanity with you:

This is by far the most ambitious talk I have ever attempted and probably one of my most ambitious undertakings. Whether a spectacular success or spectacular failure, it is going to be fun.

A few tickets are still available. Come and share my world.