I see people have answered this in the comments.
I agree that "freelancer" is probably the best option. Freelance can also be an adjective, so you can talk about "freelance translators", "freelance programmers" and so so.
You could also use "contractor", "consultant" or "temp". You could rank these by status:
Consultant =someone with expert knowledge who advises senior members of the company.
Freelancer =someone with expert knowledge who is not employed by one company but works for whoever needs them
Contractor =similar to freelancer but more specific to project work (a freelancer might have more options with the kind of work they engage in)
Temp =short for "temporary employee". Someone who works for an agency and gets sent to work at different companies to do other people's jobs while they are ill, in holiday or on maternity leave.
Gig worker can be used too, but I don't think I'd describe a real person this way, it's more a term used when discussing the phenomenon of short term, insecure work in general.