Zack Burt has been programming for 20 years and consulting for 10 years and he truly loves programming. Over the years, he has worked for large companies and startups in both individual contributor and leadership roles. He is passionate about open source, both in submitting pull requests and launching open source projects. His first book is called Code For Cash and teaches developers about breaking into the world of freelance consulting. He lives in Manhattan where he enjoys playing basketball and meeting new and diverse people; he encourages you to ping him if you’d like to meet.
“When it comes to consulting you generally take more responsibility for what you are delivering to the client.”
Most people use the terms freelancer and consultant however there are subtle differences in the two. Freelancers are brought on to a project to fulfill a specific set of requirements. Consultants concern themselves with the business impact of the code they create.
11:48 Becoming a Consultant
“The first freelance consulting job that I ever took on I was in high school.”
Becoming a consultant does not require being a senior or expert developer if you are confident of the business value of the code you produce. Since you are not a regular employee your paychecks are not reliable.
20:00 Setting a Rate
“My rate was drastically too low, and it was ok if the work was steady.”
The key to setting a rate is to determine your best alternative to no agreement. Calculate your rate based on the salary you would get at a regular job then add to that for using your own equipment and providing your own benefits. Charge whatever rate you can get away with charging. If the rate you charge is quickly accepted consider increasing it. When you charge a higher rate clients percieve as a valued professional.
If you are billing a fixed bid rather than an hourly rate make sure there is a fixed specification. Always estimate on the high side when considering your time.
28:33 Finding Clients
In his book Zack breaks down 15 different ways of finding clients. A few he mentions include Craigslist, LinkedIn, MeetUp groups, Hacker News, Gun.io, etc. When placing an advertisement specify that you are a consultant and not looking for permanent work.
“I got my first clients through my apprenticeship with you Will.”
Participation in the development community promotes networking. Attend user groups, meetups, and conferences. Write blog posts or contribute to open source projects to get involved. Stay in touch with prior coworkers and employers. They may need a consultant or refer you to potential clients.
43:45 Overcoming Objections
There are a few standard objections in the sales process. The most common objection is “it won’t work.” Overcome this objection with examples of similar situations where what you are building has worked. The next you might hear is “it won’t work for me.” This is overcome similarly by showing examples of how it has worked for similar clients. References and samples of your code are the best tools for these objections.
“Let them know that you charge more because of your experience.”
Other major objections have to do with the cost. Talk in terms of business value when dealing with this objection. Show the client not what they get for the cost but how it impacts their business. Get the client attached to the outcome and how it helps them build or grow thier business.
47:00 Creating Contracts
“Make sure you have something in writing”
Have the contract so that you can have a written record to refer back to when there are questions. In many places a written agreement is a valid contract. Also your relationship with the client is more important than the contract. If the relationship is good the client will be happy.
Most professions will take a retainer up front then bill from the retainer. Put it into your contract that the client will pay the retainer up front and you will bill from the retainer. Also include a clause that you will begin working when the retainer has been recieved or the money is available.
Some clients will request a nondisclosure agreement. Make this a part of your contract. When asked to sign one use it as part of your closing by telling them you have one already filled out in your contract. Do not sign a nondisclosure agreement that is not part of your billing agreement.
51:53 Getting Paid
“I recommend billing in quarter hour increments.”
Bill in increments. If the client takes a portion of your time bill for the whole increment. This will reduce multiple small interruptions. Make sure to also include the incriments in your billing agreement or contract.
“For invoicing all you need is a written record.”
Invoicing can be as simple as an email to the client. In your invoice include an invoice number, the amount, and reinforcement of the business value of your work.
In your contracts put a penalty for unpaid or late payments. Send your invoices regularly so the client has plenty of time to review invoices. You can even offer a discount for early payment of invoices.
Pi Zero Drone
Build your own drone controlled by a Raspberry Pi Zero for around $200. This is a smart drone using a Debian based file system and Dronecode’s APM flight stack. It uses the PXFmini autopilot board. It’s a fun project that takes about 30 minutes to put together.
- Erle Robotics PXFmini
- Raspberry Pi Zero
- HobbyKing Spec FPC250
- Power Module
- APM Flight stack
- Debian-based Linux OS
Tricks of the Trade
Consulting or employment is the management of incentives. You need to think through where the other party is coming from when interacting with people. Try to understand why a person is acting a certain way instead of why you would act that way.