Be the most expensive consultant for traditional for-profits that you can with your spare time, and donate that money directly to the causes of your choice.
However, there is a case for volunteering directly for cause one is passionate about — you feel more fulfilled, it is enriching, you get to know people who care about the same things you do, you have a chance to be involved in making decisions and so on.
A friend (software engineer) recently spent some time helping some organization to plant trees. Some other friends (also engineers) make lighthearted fun of him, saying that his time would be much better spent making money and then donating it to someone else to plant the trees. But I don't think he made the wrong decision.