No one writes software for free, ever. The more software you write, the greater your experience. The greater your portfolio. The greater you can solve difficult problems. This is the highest paying currency in the job market. You are getting paid every second that you put in, in exchange for your time.
Parts of this is very true and parts are very fantasy.