1. Work for free making open source code and giving it away for free.
2. Giant corporations take all my code without giving me anything.
3. Work for free making open source code and giving it away for free.
If you can't go to step 3, then you are doing it wrong and need to change step 1 from "giving it away for free" to something like "giving it away for free to the common people and at a price for corporate."
Which you could say "but that's not open source!" and you'd be right, which is exactly my point here: I don't think you want to do fully open source software, you want to do software and get paid for it somehow. If you do open source and get paid eventually and non binding, that's a nice little bonus, but it's not the main goal, never was with open source.