So I've been in a hobby project for a few weeks -- transforming an old software modem binary to c code.

I gave it the existing modem, and had it build rigging to build test vectors. I had it specify the work in the modem. And to confirm that legacy<>legacy produced the same streams as the new code. I've also recorded test vectors vs. other modems.

I've since launched it on targeted refactoring and code reduction projects.

I am mostly not looking at the code. There's a 100KSLOC lump of code that is much cleaner than a decompilation but a fair bit dirtier than what I would write myself. It is not factored terribly. I have some hope of getting it to trim this down to 70KSLOC that then I can accept in small blocks.

It outperforms the original softmodem, hitting higher RX rates for the same line quality and using less CPU. It also has additional functionality.

So, you know, I would never have written something this large for a hobby myself. And it's cost me $200 and 20-30 minutes per day for a few weeks to get a huge functional surface that I do believe I will be able to trust at the end of the process.

I don't like that there are any good sounding stories, but this sounds pretty good.