Self employed engineer here, and this is the sort of project I'd normally be happy to work on - though I'm afraid I'm too busy right now to take on any new customers, sorry.
Job title? I've called myself a consultant, freelancer, nerd for hire, man-with-a-scope, whatever. It makes zero difference.
There are basically two kinds of people who do this kind of work:
- people who can't get a job working for someone else, and
- people who don't need a job working for someone else.
If you're on a tight budget, then go for the former. You may or may not get a usable result, but at least they should be cheap. There are plenty of 'find a freelancer' sites where you should be able to find one, but IMHO they're a race to the bottom in terms of price and quality.
If you care about the quality of the end result, you need the latter, plus a realistic budget and time scale. Good people are usually booked up some time ahead, and they do of course charge an hourly rate commensurate with their skill, experience and available resources.
Given the project as you've described it, I'd expect a good consultant to rewrite the software, but use what already exists to guide parts of the implementation. For example, I already have a code template that I always use for this type of project (initialisation, hardware drivers, main loop, command parsing, common library functions etc). If I were doing the job, it would be best for both of us if my software adhered to this template, but the application specific parts (eg. the actual signal processing) might be copied & pasted from the existing code.
How to find someone capable? Ask around, word of mouth is how I get most of my referrals.