Fliptronics


About Consultancy

Home Page
Tutorials
HW Products
CAE/SW Products
Tips & Tricks
Digital System Design
Links
Art Gallery
About Fliptronics

A virtual interview about consultancy

I started consulting in 1995, with a focus on FPGA design, but also embedded software, IC product planning, and system architecture. This article was originally written around 2001, but has been updated several times through to 2003, then idle till a refresh on 10/26/2017 and a reformat on 10/29/2017 and 11/05/2017

I have occasionally (about seven times total) been asked for advice on getting into consulting doing digital design, or software, or FPGA design. Here is an edited version of one such email, and my response. If you would like additional questions added to this "interview", or would like to add to the usefulness of this page, please contact me.

Q1 Hi, Philip, I'm an engineer and FPGA designer and wanted to get in touch with a few other designers and consultants out there. I'm weighing the pros and cons of striking out on my own as a consultant and would like some practical insights from someone already doing it. May I put a few questions to you?
A You certainly may.

Q2 How much do you make as a consultant? More than when on a salary? Do you work hourly or fixed price per project?
A
I make more than when I was employed, but not a lot more. Plus I now have to pay my own health insurance, medical and dental, etc.. (much of this was part of the benefits package at my prior employer. I didn't really appreciate how much it was worth until I had to pay it my self.) Health insurance in the USA is a mess. Unless medical bankruptcy is part of your business plan, you must get this figured out! Probably disability insurance and if you have dependents, then life, insurance (three separate policies). Your mileage will vary. I would recommend researching this (and maybe even getting coverage) before leaving the umbrella of your current employer.

Many people think I must be making the BIG bucks as a consultant. My experience is that while I seem to be working longer hours, many of them are not chargeable. I probably work 60 to 70 hours a week of which about 30 to 35 are chargeable. Some times it is higher, but this is rare. Examples of hours I don't charge for:
  • General self improvement
    • Books related to my consulting
    • On-line courses
    • Training seminars
    • Webinars
    • Learning/updating knowledge of design languages
  • Maintaining my business
    • Accounting
    • Web site maintenance
    • Maintaining my PC, including installing new software, backups, installing and testing new hardware
    • Lab maintenance
    • Parts procurement
    • Looking for new clients
    • Business lunches and dinners, maintaining contacts
  • Learning how to use new software and hardware packages (IDEs)
  • Writing tools that support my consultancy, such as vector file creation, Hex/Bin file manipulation, FPGA download programs, diagnostics.
  • Developing FPGA IP that I will use with multiple clients
  • Developing presentation/tutorials that I might present to multiple clients or maybe for a conference session such as the Embedded Systems Conference (ESC, or the various renames of this conference)
  • Reading and posting to USENET news groups
    (Several clients found me because of my postings to comp.arch.fpga)
  • Participating in on-line forums
  • Social media
You don't get paid for sick days, and vacation days, and holidays. In the US there are some extra taxes for the self employed. Check with your tax advisor. So assume you are real busy, and get 48 weeks of activity, at 30 chargeable hours per week, is 1440 hours. Take your current salary and multiply by (wild guess) 1.3, and set your hourly rate accordingly.

As an example (the numbers are NOT expected to be real) , if you are currently making $40,000, you get $52,000/1440 = $36 per hour. How does that sound ??? maybe round up to $40 ?

(the above numbers are to show the calculation/ratios. Not realistic for this type of consulting)

Since I live in Silicon Valley, (which has almost the highest cost of living in the US), and the area is littered with companies that need good people (and in FPGAs I am very good :-), my numbers are somewhat higher than the above stuff.

On the other hand, (now writing in August 2002), business currently sucks, and the first thing companies do in "down" times is end all the consulting jobs. I have been very lightly employed for the last 6 months. Last month I billed a total of 3/4 of an hour. Not the best of times.

My recommendation is to always do "Time and Materials" rather than fixed price. With fixed price, the client may believe that it is fine to make "little" changes to the project, and not have to pay anymore. With fixed price, what happens if bring-up/debug takes longer than expected? What if the spec missed something critical, or maybe just minor. The client isn't going to want to tweak the fixed price for each and every unforeseen change. And if they aren't paying for it, then this can become a habit. Fixed price is just too one sided in favor of the client. With time and materials, the risk is shared. If there aren't any problems along the way, the project comes in ahead of schedule, and at a lower cost due to less hours. If the spec changes, or other problems happens, the cost is directly measurable by the extra hours needed, and if trade-offs are needed, they can have costs associated to them.

Q3 When first starting out, did you have to weather a lean period until your business got established?
A My prior employer was STUNNINGLY supportive of my starting my consulting business, and allowed me to switch to part-time (20 hours per week) with them while I built up my consulting business. Although at 20 hours per week they could no longer cover my medical, dental, life insurance, at that time my wife was employed, and her insurance was extended to cover me too. Eventually I got individual medical insurance, which is quite expensive. Check this stuff before taking the big jump. After 6 months of the mixed half time work / building up my consulting business, the half time stuff was really interfering with my consultancy, so I went to full time consulting. I promised my ex employer that they could have me do consulting work any time they wanted, and they would get the lowest rate I was charging to any of my other clients. ( I have bumped my rate up once a year for a few years, by about 5% each time. I am not planning to change my rate this year.). Existing clients get the old rate until the end of the current project. I never change rates on a client during a project. Behavioral ethics is real important.

Here is my experience to date: Long term consulting is rare, and short term panic projects are more common, often of the form of they want you to do two months work, and they want it finished in 4 weeks. For all of 1995 I was very busy at any single time, with work scheduled for the following 4 to 6 weeks. Beyond 6 weeks there was nothing till the end of the year. I was terrified. The whole year was like that! By the time stuff was coming to an end, new stuff arrived. All the contracts I did in 1995 and 1996 were on a fee per hour basis, and I have managed to not do anything on fixed price bid. For 1997 to 2001 things were also fairly good, and almost all projects were handled on a fee per hour basis (also sometimes called "time and materials"). 1999 also included a trip down disaster lane when I put my consulting business on hold, and I joined a startup. I am back in consulting again, thankfully. For 2002 , business is not too good, but I have great hopes that things will turn around by Q7 2003. This pattern continued through to 2015 when I started to cut down on consulting due to burn-out. So 20 fun years of consulting.


Q4 Is it a feast and famine kind of business, or is cash flow pretty steady?
A Feast and famine. But that is more a function of how well you sell your self and schedule work. A friend of mine recommends that 1 day a week be spent finding new work, even while you are busy, because when you run out of work, it is not a good time to start hunting. This is an example of non-chargeable hours per week. Going to lunch, buying a potential client lunch, reading magazines, traveling to a client's site are also non-chargeable. (travel may be chargeable, if the client agrees to it up front).

To add to the famine side of things, clients pay you when their accounting department feels like it. You need to watch this VERY carefully. The accounting department rarely has your house mortgage payments in mind, and I have one client that through incompetence delayed a payment almost 3 months ($11,000). Another client got into financial difficulty and made sure rent and employees and other things were all ahead of me. They owed me about $90,000 and finally finished paying me 10 months later. This was clearly my own fault for not managing the client better, and I should have stopped working on their project as soon as payments went over 60 days. They still wanted me to do work for them, so I insisted for cash up front, and I bumped my rate 20% just for them. In particular, you need to make their order entry and payment process something you understand. The engineer/manager that you work for at the client company usually has not handled consultants before, and so he/she probably thinks all that is needed is a purchase order. The Human Resources, accounting, and admin departments may all have other ideas. Get this stuff resolved up front if possible.

Q5 What are the pros and cons of being a consultant vs. being salaried?
A Pros:
  • I get to work longer hours.
  • I get paid for my time.
  • My clients seem to respect my opinion.
  • I get to choose the projects I want to work on.
  • I get to work in my home office.
  • I make more money (not a lot)
  • When times are tough, you get an extended vacation
Cons:
  • I get to work longer hours
  • Pay can be irregular
  • Work can be irregular
  • Can't always work on the projects you want to because you are already committed to another client project
  • Working at home in my home office can be lonely.
  • I pay more taxes.
  • Self coverage of health benefits etc...
  • Not there at the beginning of a project to stop bad decisions being made. (One of my clients involves me in the project planning, and it is great. so this pro-con list is not absolute)
  • Not there at the end of the project for the accolades of a job well done. (Same client also includes me in end-of-project success parties)
  • When times are tough, consultants are the first to be "turned off"


Q6 How do you get clients? Are they mainly people and companies you already knew before starting out? Advertising? Cold calling? Word of mouth referrals? What works and what doesn't? Is your client base geographically local, or are they all over the country? A lot of repeat business? Do first-time clients normally expect a lot of credentials and references?
A Most of my new projects are for existing clients, or referrals from them (so far all my clients like me), plus a few small jobs from referrals by local Xilinx FAEs. You should let your local FAE know that you are available, but you will have to be VERY loyal. i.e. if a Xilinx FAE points you at a customer, you had better not recommend Altera chips to them.

Other options are companies that handle contractors for a fee, and they find the work for you. I have used one once, and while the experience was ok, they added little value for the fee they charged (to my client).

Another source is other consultants. This needs to be bi-directional.

I don't do any advertising, but I do "network", i.e. let friends know that I am looking for work etc. Also engineers at my clients might recommend I contact an engineer at another company. I do not ever work for the competitors of my clients (at least not for a year), and treat ALL client information as strictly confidential, whether marked that way or not.

Visibility on social media such as USENET newsgroups and vendor forums may also make you more visible to potential clients. Being very helpful on forums helps build a good reputation for both knowledge and willingness to share acquired skills.

Word of mouth referrals are by far the best, and the FAE referrals can also be very good, but be careful, as their goals and yours are not the same. In particular, they will sometimes throw you a drowning victim (see below) and you should run not walk the other way.

Although 75% of my work was with 1 client in 1995, I would strongly recommend against such dependence (plus there may be some severe tax consequences). I am targeting that no client is more than 20% this year, and we will see how well I go on this. It is hard to keep it down if you don't have any other work, and the dominant client wants more of your time. Early in 1996, my main client (same as 1995) decided that a certain project that I would have had to design about 100 FPGAs for will be going a different direction (5 FPGAs, a few ASICs), and I might not have anything to do for them. This is the downside of strong reliance on 1 client. I was not worried, as I was sure I could find other work, and besides, they could always change their minds (again). (They did, three times :-)

All but one of my clients is within a 1/2 hour drive. The one that isn't, was all handled by email.

A few clients ask for a copy of my resume. When references are requested, I ask an existing or past client if it's ok for me to give their name out.

Q7
  • What do you find it is that clients really want from a consultant?
  • Do they have projects that get into trouble and need an expert to rescue them?
  • Are they simply overloaded with work and need someone on demand that can work at 110% duty cycle?
  • Do they want leading edge speed and density?
  • Do they want the work done as cheaply as possible?
  • What are they most sensitive to: schedule, NRE cost, or performance and quality of the finished design?
A Expert help, overloaded, quick ramp-up the learning curve for new technology, speed and density and architecture. If they care about my rates, they are a drowning victim (see below), and I don't work for them, I don't need the pressure on top of whatever their other problems are. I think their number 1 concern is quality of the work being done. Since I almost always get the design done in a cheaper device than what they could have done, that adds to the reason they use me. I always include complete schematics/Verilog/VHDL, simulation and verification data as part of my deliverables, and if special software was written (for instances C programs to create the test vectors) then the source is also delivered. Same thing for any proprietary libraries I have developed (they get a royalty free, non-distribute license).

Be sure the client (and you) know the difference between a contractor and a consultant. A contractor is "just another body" that doesn't have to be counted as a body if there are layoffs. The contract just ends. Contract work seems to be any task within a project that might just as well be done by an employee, but there aren't enough employees. That doesn't mean that contract work isn't good, fun, and rewarding, just that it is different from consulting. A consultant is bringing specific above average (expert?) skill in some domain that is needed by the project. In my case it is high performance FPGA designs with a very heavy dose of massively parallel DSP.

Q8 What are some things to watch out for? Do you sometimes get stung by clients who don't pay? What are the big time wasters (in dealing with clients, not in the nitty gritties of design technique)? What are the essential terms and conditions in any contract, without which you are asking for trouble?
A I have yet to have a client not pay me (except for one that I didn't send the bill to). This is handled by being somewhat careful who you work for. Big companies while slow (sometimes) to pay their bills, do eventually pay. Small companies seem to be much more prompt with paying me. The big time wasters are clients that haven't figured out what they want. I tell clients that their specs for an FPGA should be as detailed as a data sheet from a semiconductor supplier. Only one of my client follows this guide line. The FPGAs I design for them ALWAYS work first time, and integration is usually a breeze. Their total costs are also less, because there is less re-design when poorly thought out specs need revising. I usually tell the client that it is their responsibility to supply test vectors and result vectors. Some do, some don't.

Here comes the drowning victim stuff :-)

You need to recognize the client's behavior. If you wouldn't want to work with them full time, then maybe you don't want to work with them part time either. Some clients are what a friend and I refer to as "drowning victims", and we have learnt to turn them down. You can recognize them by any of the following (usually more than 1):

  • Poor scheduling
  • No detailed specification
  • No time allocated for simulation, test, debug, system bring up
  • Schedule is set by some external, near term event (i.e. ComDex or CES) with no checking of what is required to do it.
  • They tell you "this will be easy, it will only take ..."
  • They need you right NOW, on site, 40+ hours a week, then whine about your hourly fee.
  • They schedule HW and SW to happen at the same time with poor or no specification documentation.
  • Someone else has already worked on the project, and they "just need you to come in and complete it"
  • They want you to work on an existing design and "just make a few changes, ..." and there is no documentation.
  • They have already allocated the pin-outs for an FPGAs before the FPGA is designed.
  • They have already chosen a design methodology, it isn't working for them, and when you recommend an alternative that you believe will more likely reach their goals (based on experience), they don't listen, and instead want you to continue with their demonstrably flawed methodology.
  • Late pay checks for their employees
  • Under-funding key projects
  • Critical projects or resources being put on hold (often to fight fires)
  • FPGA project is "done", they just want me to "fix" the timing
  • FPGA project is "done", they just want me to "fix" the floor-planning
  • ASIC project is done, they "just" want me to put into an FPGA that will run at the same speed
Lots of others things too. If you would like to add to this list, email me your suggestions.

Q9 How and where do clients expect you to perform the work? Do you become their employee for a time, working at their site on their equipment? Or at the other extreme, do they send you a set of requirements and a few months later you return with finished design in hand? Do they normally require designs to be done with specific tools, (E.G. must be entirely in VHDL, must be designed using Viewlogic tools) or is that not usually a concern?
A I tell them that I prefer to work in my own office, as I am more productive there, and will be available on call to them and come to their site for meetings, design reviews, and system bring up. This is usually acceptable to my clients. If they are demanding that you are on-site for the whole project, then maybe they are talking about a contractor rather than a consultant. There are also tax issues. Check your local requirements. I have done stuff where I almost don't see the client, but this is not the norm. I usually try and do at least a meeting every 2 weeks with my clients, sometimes more often. Depends upon the quality of their specs, and their need for hand holding. Also, regular meeting avoid things falling into the cracks. If the client does not have any preference, I strongly recommend the Viewlogic schematic system and simulation (Viewsim) (update 2017: this is back when I did FPGA designs with schematics. Now it is all Verilog). I have both of these on my computers in my office.





Copyright © 1998, 1999, 2000, 2001, 2002  by Fliptronics. All rights reserved.
Fliptronics, Sunnyvale, CA 94086-7629, USA
TEL: 408-737-0295, E-mail: philip@fliptronics.com