When I was younger, I made some very serious mistakes and hurt people who should have been able to trust me. Without going into details, I was convicted of a serious crime. Since then, I graduated from college with a Bachelor degree in Computer Science. Since I am still managing my legal obligations, I have struggled obtaining a job in my preferred field and work what jobs I can get just to pay the bills. It has been oover 10 years since I graduated, and as I apply for jobs as a Software Developer, I struggle to explain my lack of professional experience. What can I do to convince employers that I have valuable skills to contribute despite the black mark on my past?
Go somewhere where they don't know you, there is a lack of human resources with your skillset, keep your head down and begin a new life. Some places couldn't care less about your past unless it's a certain sort of crime. They're desperate for the skillset and they already know that most expats showing up are running from something.
Not necessarily another country really (depending how big your country is), you could move out of the cities and look for work in rural communities, small towns, a whole bunch of places which might be short on software devs.
Keep your nose clean, these are also places where you do NOT want to be serving time. But you stand to be in line for rapid promotion, responsibility and good pay. The chances of you getting that where you are, are around zero.
Another option is freelancing, quite often you can get work where you never meet the employer or give any personal details. But you do need to be good at the work and it's very competitive and has a bunch of difficulties unless you're fairly well known.
Freelancing is a better option for you, I would suspect. One you can show a couple of years of experience doing that, then the job search at other companies will be easier.
An additional possibility since your field is computer science is to start your own company and create apps to sell. No one really investigates the credentials of the devs they get apps from. You can do this part-time while you are working at something else so you can have the income until you make enough from your apps.
My answer to this type of question is always networking. Your biggest issue is generally going to be getting past the initial screening of resumes as that box you have to check that says you have a record basically gets translated into "Throw out this resume immediately and never look at it". Getting around that step is always good when looking for a job but it is doubly important in a case like yours. Find some professional group, volunteer organization, users group, something to learn more and meet people in the industry.
If you can get a referral somewhere you have a much better chance of getting to the point where you can explain your mistakes and potentially be able to move forward in the process.
Working on an Open Source project where you can show your contributions or freelancing is another way to get some good visible experience. This is often true for people with no problems to overcome as much of what many people do is closed and you can't show them what you did on a normal day job anyway.