I suppose I should clarify what I wrote in a brief comment:
Not to sound rude, but do not volunteer to work in research for free, it devalues the contribution of people in the field, and academia already not well-paying and fraught with free labor extracted from students.
What I was imagining from your post was finding a research group at your local university, and spending 10-15 hours a week, every week, working solely with them. That is what I suggest is wrong. If that's what you want to do (a) my points stand; and (b) you should be compensated for your labor in that case anyway.
While what Dan wrote (see below) is somewhat true, I would point out that perhaps someone with less experience, but not the ability to provide their labor for free, would lose out on an opportunity to work with a group that you would be volunteering for. But this is all hypothetical anyway, and not worth arguing over hypothetical details.
The skills that you have as a software engineer with many years’ experience are practically nonexistent in academia, and the number of people like you who are volunteering these sorts of skills is effectively zero. So the devaluing effect AzorAhai is referring to is not something to worry about in this specific situation.
I'm also not convinced every research group needs a software engineer, but like I said, I don't work in cancer research.
What I meant by:
I would suggest hiring yourself out as a contractor or looking for a position with a large organization where your skills can be used
was that doubtless some labs (or companies) are working on software that needs someone of your ability. You could apply to work for them, or, like another answer suggests, to work on open source repositories (as obviously that is the whole point). In fact, I think that's the best suggestion in this thread.
Departments often hold guest lectures, you could reach out and volunteer to talk about things like good development practices, open source, revision control, etc. You might try looking up "Lunch & Learns."