Hiring Consultants
There are many things people should be aware of when hiring consultants for technical work.
First and the foremost, the most important thing about the technical consultant is their technical abilities of course. You shouldn’t have any doubt in your mind that the person can handle the job. Electrical and computer engineering is a vast field. There are many sub fields that fall under the general field of “electrical and computer engineering”, and nobody can be an expert in all of them. So the person’s background, education and experience should be taken into account to make sure they can handle your project. But, they do not have to be someone who has done something exactly like your project in the past. They just need to be someone with a background that prepares them for your project.
You have a project that involves high speed serial links for example, such as PCI-E, SATA, SFI, XFI, etc. You need someone who has experience in high speed serial links and Serdes technology, but not necessarily the exact interface you need. There are so many of these standards and interfaces that nobody can be experienced in all of them. If someone claims to know everything, and has done everything, you should probably end your communication with them, since it is likely that they are not telling the truth.
You should know what you need, and what kind of experience you need in your consultant. Your project involves FPGA design for example, it helps to find someone who has experience with FPGAs from both major FPGA vendors, Xilinx and Altera, especially with the one you want to use (if you have a preference). But you do not need them to have used the exact device you want to use, or to have done something very similar to your project in the past. If the complexity and the type of design(s) they have done in the past prepares them for your project, then you should have nothing to worry about.
In terms of low speed communication links you may have on your board, such as SPI or I2C, those are usually a lot easier for an experienced engineer to master even if they haven’t used the one you need in the past. Knowing one is like knowing them all for this type of interfaces, and a capable engineer will also be able to create their own custom interface for you, if it is needed.
The type and the complexity of the design are the kind of things you should be looking at, not necessarily the exact interfaces or the designs you need.
If your board will have many layers (more than 10), you shouldn’t hire someone who hasn’t done complex boards like that. But if someone has done complex, multi layer boards (16, 18, 20 or more layers), then they will probably be able to handle your 4 layer board design project.
The point is, what matters is the type of design you have, and their match to this type of project. Not necessarily the exact protocol, or standard or the interface type you need, as long as the experience they had in the past prepared for them for your project.
Even in the large corporate environments, seasoned engineers keep learning new things, new interfaces, protocols or standards for almost all the new projects they start working on. This is a part of the job. If someone knows high speed video interfaces, and created designs for them, but not high speed telecom interfaces such as 1G or 10G Ethernet, then they can probably read and learn. But if they have only done analog signals, or RF, then they may not be able to handle the requirements of a high speed digital communication interface.
So, it is up to you to assess the abilities and the background of the designer you hire, and you should be looking at the big picture, and the right things, not necessarily the details.
The other important factor when hiring consultants is how responsive they are. Will they return your calls or emails quickly (within a day or two)? Do they promise to stay in touch with you through the project duration, via weekly meetings, or monthly progress reports, etc. Can they satisfactorily demonstrate that they can create and deliver reports and technical documentation?
Another factor is the design requirements. This is related to the person who is hiring, a lot more than the consultant being hired. This is probably the most important part of any project. The design requirements should be detailed, and clearly thought of. Ideally, delivered in a written form, with the necessary diagrams, tables and the other important details. Nobody can read the other person’s mind, so the better requirements you create, the better result you will get. Try to minimize areas that are open to interpretation. Know what you want, and define them. If you want your consultant to figure out some or all of these details, then at least provide the big picture and the outline of the project, and then ask them to create a detailed technical spec, before you let them start working on the project. This Spec needs to be reviewed by you, and then edited if necessary, before both sides understand what is being done, and agree on it.
Do not get annoyed if they ask you many questions about the project in the beginning, to understand exactly what you want. It is better than letting them work for months to deliver something that doesn’t meet your expectations. You will be paying them for all that time, and lose both the money, and the time, and then you will have to start over, Either with the same person, or with a different one.
That is why agreeing on exactly what is being done early in the project is very important, and possibly the most important part of any project.
Lastly, stay away from people who claim they can do anything you need, for a lot cheaper than the standard payment for that type of work. Hire the right person, and pay the right amount of money if you do not want to start over with someone else after months of work.