> How can a dev make a living writing Free software?
My usual experience is: for the vast majority of people, do it by finding the
right company to work for. A lot of companies, from giant to tiny, use and
work with free software.
They are often happy for you to continue to work with the upstream community
as part of your job, which can mean anything from "submit the occasional
patch" through to "run the entire OSS project, on their infrastructure."
As an example, my present employer uses Perl, and other OSS, heavily, and we
regularly work back. Several of our staff are committers on the OSS projects
we base our work on, and address bugs on the companies time (and dime).
We also release software to CPAN, and occasionally elsewhere, that we develop
in-house, because we get a good return on it.
The very, very rare exceptions to this are, in essence, people who can build a
product that they can build a business around ... and choose to have that OSS;
they could still have built the business around a closed product.
The OSS part is, in fact, not really relevant to the "getting paid to work on
your own product" part of the equation directly ... although indirectly it
might be the competitive advantage you need. :)
> Why should anyone code for free? Especially when they're seasoned professionals, and not noobs looking for experience?
A huge range of reasons, but the biggest one for me is education:
My job doesn't pay for spending an hour or more each day learning, but keeping
up with the industry requires it. Working on FOSS means that I can play with
new and exciting things that are different to what I have used before, or that
are speculative and edge things that /might/ be useful at work.
Keeping up, in turn, means that I keep being a desirable hire in the industry,
so helps keep me in the style to which I have become accustomed. ;)
> What does a person get out of writing Free software?
Experience, community, and a sense of achievement.
In previous jobs I also got to *deliver* something: because the work we did
had a timeframe of, in some cases, years before any "release", something that
actually finished was nice to have. :)