I make a good living building software for nonprofits. It’s true there are plenty of opportunities for better software out there. But, as is often the case, understanding the industry helps. I worked for 10 years at nonprofits in non-developer roles and that experience massively increases my value as a developer to my clients. Enthusiasm and being able to code are great, but making an effort to understand the problem space is even more valuable.