How I went from $100-an-hour programming to $X0,000-a-week consulting.

If you don’t subscribe to Patrick McKenzie’s newsletter, you should.  It’s loaded with ideas for running your business and is especially good at helping those running software companies or consulting practices.

As someone who charges for time, it’s really hard being comfortable asking for what your worth.  Clients tend to try to negotiate a better rate and we quickly learn we have a desired target rate and a rate we are willing to settle on to satisfy the client.

Patrick’s most recent newsletter titled How I went from $100-an-hour programming to $X0,000-a-week consulting, is a really great look at pricing services and moving from an hourly consultant to selling time in blocks.  The main point that hit home most for me was how clients are more willing to pay for value, rather than time.  It sounds obvious but wasn’t for me:

I have an Internet buddy in Chicago named Thomas Ptacek. We met on Hacker News. He’s the #1 poster by karma and I’m #2. Since we apparently share the same mental disease characterized by being totally unable to resist comment boxes, I decided to invite Thomas out to coffee. My agenda, such that it was, was to gossip about HN threads.

Thomas runs a very successful webapp security consultancy, Matasano. (Brief plug: they’re hiring and if it weren’t for this business thing I’d work there in a heartbeat: some of the smartest folks I know doing very, very interesting work which actually matters. If you can program they’ll train you on the security stuff.)

Anyhow, after we got our coffee, Thomas invited me into their conference room. We talked shop for three hours: Thomas and his VP wanted to hear what I’d do to market their products and services offering. I had been writing about how I marketed Bingo Card Creator for a while, and started applying some of the lessons learned to their content creation strategy.

(The actual contents of the conversion are not 100% germane to the story, but I blogged a bit about it and Thomas posted his thoughts on HN. Long story short: programmers can do things which meaningfully affect marketing outcomes.)

At the end of the conversation, Thomas said something which, no exaggeration, changed my life.

Thomas: Some food for thought: If this hadn’t been a coffee date, but rather a consulting engagement, I’d be writing you a check right now.

Me: Three hours at $100 an hour or whatever an intermediate programmer is worth would only be $300. Why worry about that?

Thomas: I got at least $15,000 of value out of this conversation.

What an eye-opener this must have been, it would have been for me.  I think I would have had the same epiphany:

This is, far and away, the most important lesson to learn as a consultant. People who are unsavvy about business, like me in 2009 or like most freelancers today, treat themselves like commodity providers of a well-understood service that is available in quantity and differentiated purely based on price. This is stunningly not the case for programming, due to how competitive the market for talent is right now, and it is even more acutely untrue for folks who can program but instead choose to offer the much-more-lucrative service “I solve business problems — occasionally a computer is involved.”

Thinking this way and selling yourself as such makes so much sense.  Why didn’t I think of it?  I think most consultants, contractors and freelancers are so trained by their peers and clients to think they are just a commodity that we don’t know to think differently until it’s explained so well.

The newsletter goes on to explain all the benefits of billing weekly; all reasons make sense.  Time to make some changes.

So, go now and read the newsletter.  Great stuff.

Farewell to Stack Exchange

I posted recently about having priorities straight in your profession and Jeff Atwood, founder of Stack Exchange, comes to the realization as well.

Startup life is hard on families. We just welcomed two new members into our family, and running as fast as you can isn’t sustainible for parents of multiple small children. The death of Steve Jobs, and his subsequent posthumous biography, highlighted the risks for a lot of folks.

I’m sure the decision must have been hard,  to leave the business he co-founded.  The posts hits home because I made a similar decision over 10 years ago.  I read this last week and I was surprised by the abruptness but his reasons are solid and understandable:

You may have more discipline than I do. But for me, the mission is everything; I’m downright religious about it. Stack Overflow and Stack Exchange have been wildly successful, but I finally realized that success at the cost of my children is not success. It is failure.

How many parents choose a career for personal gain and with the thought of given their children a better life?  At what cost?  Kids grow up not really knowing one or both of their parents.  Steve jobs had a book written about his life so his kids would know why he did what he did.

Less is More, Enjoying Startup Life

Interesting, thought provoking and true post by David Heinemeier Hansson (DHH) of 37Signals about how people seem to feel obligated to work crazy hours and make their startup all consuming.  This is the wrong approach and can be harmful to the overall life of the startup.

As David points out:

This myth neatly identifies those fit for mission: Young, without obligations, and few if any extra-curricular interests.

I was young one and I can attest to this, 100%.  It’s really easy to think that if you pour your waking hours into your startup, you will be insured of success.  More is not better…after working 80 hours per week for a long time I became burnt out and it took an eternity to recover.  I learned my lesson, work less.  Yes, I said it, work less.

It was really easy to getting into the mindset and the routine of working the crazy hours.  I knew about burnout but sometimes with stubborn people, it has to be their idea, their realization.  This is how it worked for me.  The days got harder and harder to start and the hours resulted in less actual work done.  I wasn’t putting in my best efforts but rather going through the motions and passing the time.   The products shipped but I can’t say I was particularly proud of the quality.

I sold the company I founded which forced me to reset and determine a better path.  I realized less is better and be more efficient with less hours.

Most people will look at that and say that’s not me. I don’t have 110% to give. I have a family, I have a mortgage, I have other interests. Where’s my place in the startup world if all I have to give is 60%? What can putting in part-time give?

Get out of the mindset you need to put in ungodly hours to be successful, you don’t.  I provide consulting work to clients but I put aside time for the projects I am passionate about, the products I want to see come to market.  I make more progress on these projects with small, focused efforts than I would have in that past life.

DHH works at 37Signals, the poster children for working less and enjoying your life:

The good news is much more than you think. The marginal value of the last hour put into a business idea is usually much less than the first. The world is full of ideas that can be executed with 10 to 20 hours per week, let alone 40. The number of projects that are truly impossible unless you put in 80 or 120 hours per week are vanishingly small by comparison.

Steve Eichert, a fellow entrepreneur and someone who moved from the cubical to his own company has a great and timely post about doing things little by little.

No matter what I do, I’m still going to have things I need to do that will prevent me from creating. The good news for me, is I have the ability to put aside all of those things and go and create. I’m starting small, trying to pick a few features that I’ve wanted to add to one of our software products and getting them implemented this week. My goal is to continue that tradition every day by finding at least 1 small thing to add, improve, or tweak for the better.

It’s important to realize you can do the things you want to accomplish by doing them in small steps.  You will enjoy working less, leave the 80 hour weeks to those that don’t know better.

How I Don’t Provide Customer Service

I recently bought a Mobee Magic Charger to stop having to replace the batteries in my Apple Magic Mouse so often.

I immediately had issues with the Magic Charger and figured I must have a possible defective unit because it should not work this way. I wrote up a blog post about my issues and submitted a support request to Mobee.

You can see below the Mobee Support Form asks the right questions, clearly taking my name:

Mobee support

My message submitted April 10th, stated my issues:


I have just purchased a Magic Charger and having some issues. I put the mouse on the charger and the power light flashes green but never gets to a solid green light indicating the charge is complete. I have left the mouse on charge for over 24 hours and still blinking.

The charge level of the battery never goes above 76%.

It appears I may have a defective unit. I heard similar issues with the charge level not going above certain levels from other users.

How can these issues be resolved?

Thank you,
Robert Bazinet

And their response on April 12th:

Dear Customer,
Please make the following test:

– Remove the battery pack from the Magic Mouse and place it on top of the base station. Please confirm that the LED is blinking green ?

– Leave it during a full night on the base station, please confirm that the LED is now full green ?

It is normal if you seen a battery level of 76%.

You can fin the explanation on the link below:

Thank you

The first thing that stuck in my mind is “Dear Customer”.  What?  They took my name in the support request form but don’t use it to address me.  This may sound picky but it really annoys me when companies do this.  Take the time to use my name, otherwise, don’t ask for it.  This tells me you really don’t give a damn about me but rather I am just a response in your customer support system.

Pro tip: If you have the customer’s name, use it.  If you have a customer support system beyond just email, learn how to use it.  If your support system won’t allow customizing emails, it sucks, replace it.

My two problems could have been addressed better.  The first one, “It is normal if you seen a battery level of 76%”, is a result of a poorly designed and implemented product.  How many support requests do you think Mobee gets on this one?  Well, enough to put in a FAQ.  As a product owner this would bug me until I engineered a way to make it go away.

The second problem where the Magic Charger seems to charge forever, never giving an indication it’s done.  So, based on the answer to issue #1, 70-something percent is normal, a full-charge should occur in some magic window of 70 to 80 percent.  Well, the batteries charge to that level but don’t get any higher yet the charger is still blinking.  The suggested solution to the problem is “Remove the battery pack from the Magic Mouse and place it on top of the base station.”.  Now, I may have missed something but I thought the purpose of the Mobee Magic Charger was to be more convenient?  If I need to remove the batteries to charge them, then why not just use regular AA rechargeable batteries?  They would certainly cost a lot less.

Rather than admit I might have a defective unit or apologize for a poor design, I need to remove the batteries from the mouse to charge them and know I have a full-charge at 70-something-percent.

As a product owner I would not ever handle support this way.  I always address the customer by their name, not some all-fitting title, offer a way that fixes the problem to their expectation OR offer to refund their money.  I think this is a pretty simple way of doing customer support, fix the problem or offer a refund.

Bootstrapping Your Ideas

bootstrap As an individual entrepreneur it is sometimes hard to get things done with our limited time in a day and limited financial resources.  I find it helpful to have a large base of contacts which I know well and can reach out to when I need a hand, but timing may not always be right.

Derek Sivers had a great post recently titled "How to hire a programmer to make your ideas happen".  Derek discusses some great points when looking to bring your idea to fruition and suggests using services such as oDesk, elancer, and vworker:

Go to the following sites to open an account at each:,,,

Post this short project at each site. Use their escrow service. Location of provider doesn’t matter – they can work from anywhere. Don’t pay for a highlighted listing. Pay by the hour. Set the bidding time limit to 7 days. Most bids will come in the first 3 days.

You’ll get many offers, but if they don’t have your magic phrase at the top (“I AM REAL” or whatever), delete them. This is very hard to do, since you’ll feel thrilled that so many people are offering to help, saying things like, “We have looked at your project and would be glad to complete it immediately,” but trust me and delete those. If they didn’t read something marked as VERY IMPORTANT already, you don’t want to work with them.

Also important: Only go for providers who have great reviews from many past customers. This shows they are used to working this way through this site. Decline bids from providers without many great reviews.

Don’t aim for the lowest bid. Use these sites to find someone that seems great and capable, even if they are twice as much as the lowest bid, they might work 10 times faster and better.

Each of these sites has its quirks, so sorry I can’t recommend specifics for everyone. But be considerate and nice, once they’ve mentioned your VERY IMPORTANT phrase to prove they really read your requirements. That’s cold enough. Once they’ve passed that test, be very responsive and friendly.

I have worked with a couple of these sites and have had the best experiences with oDesk, of course your mileage may vary.  Taking slow, careful steps when working with these resources can lead big jumps toward your goals.

Personal Experience

I am not a proponent of companies laying off local developers and outsourcing work to save money, I despise the idea.  If you have profitable business and can afford the full-time efforts a local developer, do it.  Sometimes when bootstrapping your business and keeping the bills paid, outsourcing what you can may help get a kickstart to idea.

I try to find people on oDesk who are individual freelance developers setting out on their own or supplementing the income they already have.  It is not always easy working with developers from these sites, but I have found a few rules I try to stick to which has helped:

  • Reasonable Time zone – this is one of the biggest that has bitten me in the past.  When working with developers on these sites fine a time zone you are comfortable within.  I have hired developers both in India and other locations 12+ hours difference in time zone from myself and it does not work very well.  It seems when I needed to talk with them they were sleeping and we only conversed over email, making things hard.  It often took days to discuss an issue.  I require developers to be willing to either work in my time zone or overlap some number of hours from mine to theirs. 
  • Reliable Commitment – some of the developers you will find often are supplementing their income with some side work.  It is hard to work a 40 hour a week job and commit to any substantial side work.  If the developer has a full-time job make sure to ask what they can actually commit with regards to hours.  I have personally experienced developers committing to 20 hrs a week but barely making 10, which at that point they make themselves scarce and the project suffers even more.  So, ask for the commitment and reiterate the need for a realistic commitment and monitor closely.
  • Code Quality Monitor – it’s hard to get a real idea of the quality of code coming from an offshore resource.  I monitor all commits to GitHub and make sure code is up to par, for now..I can always refactor later but the goal is to get the job done.

It has taken me a while to be better able to choose a good developer through oDesk.  It certainly can be done but takes some trial and error to see what best works for you.

The Long Term

Hiring local developers is my long-term goal for my business but until I can afford the commitment to hire full-time, I will use freelancers I can afford.  I have hired before and had to lay them off, it is not a fun thing to do. 

Brining on these inexpensive contractors can allow you to try out an implementation of an idea long before you hire and gets it to market that much faster and so much cheaper.  It is very hard to go wrong indeed.

Using these type of outsourced resources are applicable to both those full-time freelancers trying to get an idea developed but the idea of doing it on the side just never works.  This also works for someone with a full-time job trying to do the same thing, get something going on the side during those “extra” hours that never seem to appear.

Design Lessons from the Apple Store

I recently visited the Apple store in Farmington, CT because I was having a problem with my iPhone 3GS.  I own many Apple products and happy with them all. The area we live is not located near any Apple store so I buy my Apple products from the Apple web store. Up until recently, have had no problems with any of them, this was the first trip to an Apple store.

I am not trying to come off as an Apple fanboy here, but I think my first impression of experiencing Apple retail can be translated to how everyone can better deal with customers and how to convey company culture.


First Impressions

There is an old cliché that says you have one chance to make a first impression.  Those of you who are long-time Apple customers who visit an Apple store on a regular basis then you probably take it for granted how the store works and have long since forgotten your first time to one of these stores.   I can only say it was an great experience and a completely positive one.  Had this first experience to the store been negative, I probably wouldn’t be writing this now.

I had contacted Apple Support via their web site and made an appointment to see an Apple Genius about my iPhone.  This reminds me of making a doctor’s appointment.

As I arrived at the Apple Store in the Westfarms Mall and several things came to my attention immediately.  I think we can apply Apple Store design to application design:

  • Large and spacious – the store itself, unlike many retail stores in the mall, had plenty of room.  I didn’t have to bump into customers or employees.  As with many web applications I see, clutter is the norm – full of ads and jamming as much content as possible in a small place.  Well designed web application have plenty of white space and don’t give me the impression I am at the carnival.  My favorite applications are cleanly designed, like
  • Very bright – the store was very well-lit with lightly colored walls.  Comparing other stores in the mall, some are dimly lit and painted with dark colors.  I guess it is better to hid a poor product until the customer has left the store.  I like to apply design to my applications the same way, keeping colors light which are easy on the eyes.  I don’t like my users to have the experience they are visiting a dungeon.
  • Lots of iPads, iPhones, MacBooks and iMacs with which to play – Apple wants you to experience and appreciate their products.  When visiting the store you aren’t faced with endless glass display cases like you are visiting a computer museum, you get to actually touch and try-out any product you want.  My first experience with the iPad was at the store and this experience determined whether or not I was going to buy.  If users can’t try out your application how can they decide if they want to use it?  It is my policy to give users a full 30-days to try out my software before deciding if they want to continue.  Many sites give limited access to features until you cough up money.
  • Genius bar looks like a bar, including bar stools – upon entering the store and briefly looking around, I immediately knew where I needed to go to see my Apple Genius.  The store, as I mentioned, is laid out very cleanly with the Genius Bar (an actual bar as you recognize in any lounge) in the far back of the store, separated visually and physically from the rest of the store.  This makes it very clear where someone needs to go to get help.  This is exactly how web applications should be designed, make it very clear where users need to click to sign-up, cancel, get help, contact and any other function they may need.  How many times have you been to a web site and had to struggle to find an email address so you can contact someone at a site?  It is annoying and does not make me want to do business; keep the links and information readily available so [potential] users can find it.
  • Lots of people to help you out – who also carry iPads to check-in people with appointments.  Nice way to demo the new iPad platform.  I think “eating your own dog food” is essential.  If you don’t use the tool you create, how can you really know how people use it?  Apple uses their iPads to let the Geniuses know when an appointment has arrived or add folks who are just walk-ins to the queue.  This is free advertising for one; customers get to see people actually using an iPad for something other than a “big iPod Touch”.  This also gives Apple feedback from the field for both the software, operating system and hardware perspective. Brilliant!  Use the applications you create.
  • Don’t make me wait – Wait time was small even with a lot of people and dealing with the Genius was simple, no hassles and out in minutes.

These were my initial impressions when visiting the Apple Store, all positive.  I can take away so much from the experience which I can then apply to my own business, my own products.  Apple has spent countless hours and piles of money to offer the experience they offer.  Why not take some lessons from them?

Customer Service

Beyond my first impressions about the look and layout of the store, I think the real win in my mind was the great customer service experience.  I had in my mind, since my issue was not exactly reproducible on-demand, that Apple may tell me there was nothing wrong with my phone and send me on my way.  They could have just as easily pointed blame at one of the applications on the phone.  I was well-prepared to visit the Verizon Store in the mall and walk out with a new Motorola Droid running Android and say good-bye to the iPhone and AT&T forever.

My overall wait time was only about 10 minutes after checking in upon arrival to the store.  The process was really very simple:

  • Called up to Genius Bar
  • Genius takes phone, asks a few basic questions.
  • Runs diagnostics on the phone, finds nothing.
  • Offers to give me a new phone.

There was no griping from the Genius, he instructions were clear, just make the customer happy.  I came expecting a fight and left with a new iPhone and a smile on my face.

Isn’t this how we should treat all of our customers?  Customers have choices, they can buy our product or service from suppliers other than us.  It takes much effort to attract and keep people willing to give us their hard-earned money, so why not just agree to do whatever it takes to keep them.  This is a rule meant to be broken, we all have those customers that no matter what you do you cannot make them happy, these will always exist.  We do have plenty that are happy and just want good service, so think about it next time when you are just thinking of saving a buck and refuse service to your existing customer.  They will eventually go somewhere else.


There are plenty of lessons to be learned here and not just from Apple.  Number one, first impressions are important, so please make your web application, store front or company presentable.  Make it reflect on you and how you want to be viewed, put your heart into it.  Number two, treat people and customers the way you want to be treated.  It is easy to think of the bottom line at a very superficial level and I think this will hurt your bottom line in the long run.