The best is proof of work. If you don't have any, build something and show that off. Even listing out the companies you have worked for will be good. Cold email could work if its not completely "cold", i.e, find companies/people who are in the space/industry where you have worked so that they can see you have solved a similar problem before. 10+ years of software engineering is quite valuable, you just have to present yourself in a way where the value can be seen.
Also, never, ever work for free. One, your time is worth more than you think. Second, it makes you sound a bit less serious and less valuable and you will attract clients that are not fun to work with. Not worth your time at all. The only people who MAYBE should be working for free are students who are in high school.
I have been freelancing on and off on the side for the past 8 years and this year pulled the plug and going full time on it and tbh I am now oversubscribed. So, there's definitely a need for it.
My first few clients (8 years ago) were through posting on reddit (/r/forhire) and then also on the monthly HN freelancer thread (was shocked they stopped doing that, I have gotten 2 solid clients from those!).