A freelancer, i.e somebody who has a freelance job, is a person who is self-employed or selling services to different people/companies on temporary contracts: he/she is not employed by a company or an enterprise but he/she is rather working for him/herself. The word's etymology is said to go back to the medieval era when knights could be called upon to do specific jobs or services but they had no allegiance to a given lord/authority.
Now, freelancers are writers, graphic designers, journalists, programmers, etc.. whom you can rely on to do a particular job or task. They are paid by the hour /day/ job etc.. Sometimes companies or firms resort to them cos it is more convenient than hiring a full-time employee whom they may need only once or twice a month, etc..