June 15, 2014

As an established software consultant in San Francisco, leads and clients often ask me why I don’t consider offers for full time employment. My answer is often met with confusion.

I find most of the people who ask have preconceived notions falling into a few standard categories:

Aren’t you worried about not having work? #

I get this question the most, from people in all sorts of professions. This is the kindest, and most genuinely curious follow up to the original idea, and usually results in the most interesting discussions.

Aren’t you worried about being fired at any time? #

When I first moved to San Francisco, I worked for a startup that ran out of money within 3 months. The next company I worked for saw 1/3 of the company leave over the course of 2 months. Startups are not a stable choice of employment for risk averse people.

The favored employment contract in startups is one of “at will employment”, meaning that the company does not need just cause to let you go. The balance has shifted such that companies no longer invest in their employees as much as employees are expected to invest in them.

What if you don’t find a client? #

I am in industry that is booming. The demand for my skill set has never been higher, and the supply of able minded software engineers and product managers is extremely low. With minor advertising and effort, I have more inbound work requests than I can personally take on.

Yes, there are down periods. After wrapping up a project it isn’t uncommon to have a break while you iron out the details of your next project with the next client. But we budget for those periods, and a strong consultant will find that even with a calendar that has gaps, they will bring home more than they would in a comparable full time position.

Are you comfortable being a cheat/leech on people trying to make a real business? #

This is the followup I hear most often from recruiters/founders who are looking for technical talent, but don’t want to pay market consulting rates. The assumption being that because I charge more than a comparable salaried employee, I am some sort of thief or con man. This is usually compounded with one of the following statements:

How dare you charge so much? My full time engineers don’t get paid nearly as much as you demand. #

Clients that are new to consulting talent often compare your rates to an equivalent FTE salary. They take an engineer salary, for example $100k, divide it by 50 weeks at 40 hours. They end with $50/hr and assume that is a fair price. What most people don’t think about are all of the hidden costs that are involved in full time employment like taxes, equipment, healthcare, perks, human resources, office space, electricity, heat, etc.

There is more inherent risk when working as a contract employee. It is more difficult to receive payment and schedule work into the future. This results in an increase in the price to make up for the convenience of having drop in talent only when you want it, much in the same way that it costs less to rent a car the longer you rent it.

How dare you charge so much? The engineers on freelancer websites charge 1/10th as much. #

Go try using them and get back to me.

How do you work without having loyalty to a company? #

Company loyalty is a terrible idea. We work for compensation. Compensation can come in the form of money, passion, curiosity, or pride. The idea that loyalty to a company is acceptable as a replacement for compensation is reprehensible. David Brady wrote a fantastic piece about company loyalty on his website.

How can you just work random jobs? How do you work without being passionate about your work? #

I am passionate about my work. Working on the same thing, day in / day out doesn’t generate passion, it generates complacency and frustration. I get to experience new problems and domains all the time. I’ve learned more in my last year consulting than in the past three years of full time work.

As always, not all projects are sexy. Having to work out the kinks in a automated deploy process is never going to be as fun as implementing a matching algorithm with the graph theory. Working QA at the end of a feature isn’t as compelling as drawing out a system architecture for a green field project. But it is still interesting in how quickly you learn, and over so many different disciplines.

When a client pays you for explicit time, there is no excuse for slowness. As a full time employee, it was common for the team I was working on to push back non-critical features like testing and automation because no one wanted to do it and it didn’t take that much time to run through scenarios by hand. When a client sees how much developer laziness costs they jump on the best practices wagon quickly, and you just gained a whirlwind of experience with some of the technologies you would never have expected to use.

Don’t you just charge a client an obscene amount to make a barely working product? #

No. This is so wrong. I’m guessing this is a reaction to experiences with oDesk or freelancer.com, where engineers are in a race to the bottom on pricing, and adjust their quality accordingly.

When you are a full time employee, it’s tough for your reputation to follow you from one job to the next. A company that speaks ill of a previous employee can find themselves in a legal pickle.

My reputation is my career. As a consultant, my clients can sink my reputation in an instant. I depend on past clients to spread my name around their networks, and generate new work for me. Our industry is small enough that if I provided shoddy work for a client, it would mar my name for years. I find myself generating higher quality work as a consultant than I ever did as a full time employee.

I believe that we will see a sway in the number of people who shift from full time employment to contract work over the next few years.

Shameless plug #

I run a software consultancy in San Francisco, and would be happy to talk to anyone about what it is like and potential projects.

380 Kudos