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 an 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.
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?
You certainly may.
1) How much do you make as a consultant? More than when on a salary?
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. I recently managed to get new medical coverage, and after much searching and comparing, I found the IEEE (you must be a member, but that's easy) medical, life, and disability insurance (three separate policies) were the best value. Your mileage may 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. 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 ?
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.
One of my loyal readers pointed me to the following article Urgent Need for Verilog in which I was interviewed on this subject. In retrospect, there are some "funny" quotes about how things would be fine, no matter what.
2) When first starting out, did you have to weather a lean period until your business got established?
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. When my wife stopped working 6 months ago was when I started the stuff with IEEE. 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.
3) Is it a feast and famine kind of business, or is cash flow pretty steady?
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 ($11000). 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.
4) What are the pros and cons of being a consultant vs. being salaried?
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
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
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, consultans are the first to be "turned
5) 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?
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.
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.
6) 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?
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-ditribute 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.
7) 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?
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. His chips ALWAYS work first time, and integration is usually a breeze. His 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):
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) 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 exrperience), they don't listen, and instead want you to continue with their demonstrably flawed methodology.
Late pay checks for their employees
Underfunding 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 floorplanning
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.
8) 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?
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). I have both of these on my computers in my office. I have had potential clients specify VHDL or Verilog design. I have turned these down in the past, but may do some in the future. Typically I have not found clients that are willing to throw away half the performance and density of a design. I believe that that is part of my value added when I do schematic design and I know the target architecture well.
If you found this interview useful, please email me a note. Thanks firstname.lastname@example.org