Converting Full Time Pay to Hourly Contract Rate

Multiple people asked me this week how much they should charge for an hourly development engagement, trying to figure out what’s fair. They all know their full time salary range but didn’t know how to translate that into self-employed hourly rate. This post is a quick explanation of the formulas I use. This is obviously not an industry standard or what your next employer (or employee) is going to use but you might find it a useful reference point. This is limited to US based employment. Needless to say, these formulas ignore the many employer tax differences of employing W-2 vs 1099 employees. They are also ignoring the most important factor which is the human element. We are talking about people hiring other people where unique skill sets, personalities, and economic realities can often mean more.

There are two types of hourly employees, those you can easily replace with full time people and those you can’t afford (or can’t convince) to work for you as W-2 employees. For the first group, the hourly rate is based on the employer cost of a full time person. Basically, the employer will want to keep its cost about the same regardless of the employee status.


  • 20% employer overhead cost over the employee cash compensation for benefits, taxes, and other expenses
  • 250 work days a year
  • 15 days paid vacation
  • 8 hours work day

The formula is:
Hourly rate = Total annual cash compensation / 1567

For the second group – people the employer can’t afford to pay full time or the kind of top talent they can’t convince to join full time – the formula is slightly different. There is an additional consideration. People doing short term contract work typically lose about 20% annually due to time in between jobs and the cost of finding work on a regular basis (a contractor factor of 0.80 – 20%productivity loss). Because they are top talent, the employer will have to pay for that loss. This gives us:

Hourly rate = Total annual cash compensation / 1253

The full formula is:

\displaystyle \frac{A * E}{(W - V) * H * C}

  • A – total annual cash compensation
  • E – employer overhead percent (1.0 is 100%)
  • W – work days a year
  • V – paid vacation days
  • H – hours a day
  • C – contractor factor (percent time employed)

This means:

  • An average developing making $120K a year would be able to get about $80/hour
  • A senior expert making $200K a year would be able to get about $160/hour

If the full time job come with equity (assuming a 25% annual vesting schedule of a publicly traded stock), you can add 25% of the equity value to the annual salary.

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).

Hiring Engineers, a Process

Disclaimer: The process outlined in this post reflects my personal approach. Please consider this as a helpful insight into what it takes to get a hiring recommendation from me. As always the law and corporate policy applies.

This post has three purposes. First, to save me the need to explain every time how I interview and hire people. Second, to inspire others to break away from the conventional and ineffective hiring process most companies use. It’s a process that fails to identify non-conforming great talent. And third, when the time comes for me to look for my next adventure, I can point hiring managers here to know how I’d like to be treated.


If you don’t have time to read this, we are not a good fit. Continue reading

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.

Continue reading

Goodbye Open (and Why I’m Staying at Yahoo!)

It’s that time again, to move on. The past three years have been a roller-coaster. Coming from a small startup after a decade in financial services technology, I got to learn, contribute, lead, and provoke open web development. My standards participation landed me a great job, relocated my family to the West coast, and introduced me to a lot of amazing people. It has been awesome.

Over the past couple of months I have been steadily phasing out my open specifications and standards involvement. The OAuth 2.0 core specification is the only thing I am still working on (OAuth is a keeper). Everything else has either fizzled away or lost its interest to me. This should not come as a surprise to anyone who talked to me or read my posts over the past few months.
Continue reading

Clarifying Thoughts on OpenID

Muppets Two weeks ago I posted two items about OpenID. The first praised the significant contribution OpenID is making to the Open Web. The second raised questions about the direction the OpenID user experience is taking, and how the community discussion seems to be taking a very strong corporate voice. Needless to say, some people didn’t like my questions and what they thought I was implying. Ironically, they opted to send their comments in private.

Let me start by reiterating some points about my employer’s position, wearing my Yahoo! hat for a second, something I rarely do on this blog.

  • Yahoo!’s support for OpenID is unequivocal.
  • Yahoo! is an active member of the community, a specification contributor, and a sustaining member of the foundation.
  • Yahoo! has made a commitment not to invent any new or proprietary alternatives to OpenID.
  • We are also committed and actively seeking ways to support OpenID as a relaying party, accepting OpenID logins from other providers.

Continue reading

Weekly Recap and All the Rest

(Or, What I’ve Been Up To Lately at Yahoo!)

Yahoo!This week was as much about what I got to write as it was about why I didn’t get (around) to write. And the funny thing is, it’s a good thing. I’ll explain.

But first, let’s recap this week’s posts. I started by talking about OAuth, where we are as a community, where we are going, and gave some ideas on how people can keep the effort moving forward. I continued with a brief discussion on using content negotiation for discovery, and concluded with the first post in a series about the new landscape of discovery: the XRD protocol stack.

Back to why I didn’t get to write more…

Continue reading