One common question on forums, twitter and r/FPGA is how to go about setting up on your own as a freelancer or consultant. Often the questions relate to years of experience necessary or how to get clients. However, there is much more to consider when setting up on your own if you want to be successful. Having run a successful freelance company for nearly 10 years now I thought it might be good if I shared my thoughts and experiences. Honestly it has been a learning experience in more ways than one.
Adiuvo Offices in the UK
So here are 10 important points which should be considered if you are thinking of starting up on your own:
1. Experience – This is the often the topic most questions are asked about. The answer is it varies from engineer to engineer, however, I would personally not consider setting up on your own until you have had several significant projects under your belt. Ideally you want these projects to be in different industries and applications, so you have a wider frame of reference and have experienced different approaches. Especially true is you need to be exposed to a few projects which do not go smoothly (this is when you really learn). Outside of FPGA experience my personal journey involved not doing FPGA professionally for several years and being Design Authority/System Architect/Lead engineer for complex projects. This taught me about the engineering life cycle and delivery and also provided great experience in dealing with customers, managing expectations, and of course managing engineering teams. While being a good FPGA engineer is important, the people I have seen succeed have a much more rounded experience.
2. Cash Flow – Before you even start considering becoming a business owner or freelancer make sure you have significant financial reserves. It may take you time to get your first client, or it may take you longer to get paid than you expected (90-day payment terms are not unusual). Having cash reserves means you can balance out the burst-like nature of the incoming cash. Another scenario is where you are paid by achieving project milestones, but these milestones may move due to things outside your control, especially when other agencies are involved. If this does happen, do not feel shy to push back and request a different payment structure.
3. Budgeting – When you work for an employer you probably have simulators and licenses for development tools. You also have access to development boards, cloud-based documentation, configuration control and good development machines. You probably also travel to see potential clients and conferences, etc. As a freelancer or independent consultant, all of this needs to be factored in and costed out on top of your profit margin and contingency. Only once you have all of this worked out can you determine your hourly rate. This gets a little more complicated if you have employees, because then you will need to account for pensions, pay rises, training, etc.
4. Development Tools – Choosing the appropriate tools are critical if you want to be efficient. This is going to be controversial, but many clients (unless you’re developing just simple IP) aren’t going to be impressed if you are using free or open-source tools. They are more than often going to want tool chains which align with theirs or at least offer similar capabilities (e.g., functional and code coverage). Another consideration at this point is your licenses philosophy. I prefer to buy perpetual licenses whenever possible, this then means if we have a bad year, we are not scrabbling around to find money to renew licenses or be unable to renew them and hence lose the capability.
5. Taxation – Ensure you have understood how taxes work in the country you have registered your company in as there will be a lot of overheads for filing by the government. At the end of the financial year, you are going to have to work out what your profit/loss is pay the appropriate taxes. I am based in the UK, so I also must consider the value added tax quarterly and file and pay that. One tip I have for this is to work out what the tax rate on profit is and when you get paid, take that percentage off the incoming total and transfer it to a company savings account for taxes. This means at the end of the year you have the money to pay taxes and probably even a little bonus as saving it as it comes in does not account for your incurred expenses.
6. Accountant/Bookkeeper – These are going to be critical to ensure your filings to the government are as simple and straightforward (and legal) as possible. Your bookkeeper should be able to provide you with a snapshot at any point in time of your business health.
7. Insurances – You are going to need a range of insurances, from professional indemnity to public, product and employee liability. Depending on what services or products you decide to offer make sure you are covered correctly, especially if you are offering services globally. You will find many clients will check and want to see your insurances. Also make sure you tell your home insurance provider if working from home and your car insurance provider if using it for business.
8. Business Development – How you get clients is harder than you think. It is best to be able to leverage your existing connections and networks. One of the good things to do is try to build up relationships with other freelancers. I have several other freelancers who over the years I have collaborated with and have proven experience. One aspect of business development is keeping a funnel going with opportunities so do not stop looking once your first contract comes in, you need to be putting opportunities into it constantly. Not everything works out and many things take longer than you (or even your client) expect to get to signature.
9. Test Equipment – You are going to need some lab equipment even if they are simple power supplies, oscilloscopes, and logic analysers. Here you can look at combined instruments such as Analog Discovery. Of course, for faster systems you are going to need higher spec equipment but no need to go rushing into it on day one.
10. Employees/Offices – This might come later in your journey, but something you should consider. When the time arrives, you will need HR and employment contracts and ensure you are being as good an employer you possibly can be (you are playing with people’s lives after all).
I am sure there sure there are more points to consider. These are just lessons-learned that I’ve encountered throughout my own journey and would be interested to know what other freelancers would suggest to those just starting out.
Workshops and Webinars
If you enjoyed the blog why not take a look at the free webinars, workshops and training courses we have created over the years. Highlights include
Introduction to Vivado learn how to use AMD Vivado
Ultra96, MiniZed & ZU1 three day course looking at HW, SW and Petalinux
Arty Z7-20 Class looking at HW, SW and Petalinux
Mastering MicroBlaze learn how to create MicroBlaze solutions
HLS Hero Workshop learn how to create High Level Synthesis based solutions
Perfecting Petalinux learn how to create and work with petalinux OS
Embedded System Book
Do you want to know more about designing embedded systems from scratch? Check out our book on creating embedded systems. This book will walk you through all the stages of requirements, architecture, component selection, schematics, layout, and FPGA / software design. We designed and manufactured the board at the heart of the book! The schematics and layout are available in Altium here Learn more about the board (see previous blogs on Bring up, DDR validation, USB, Sensors) and view the schematics here.