I’m quite luckily in that I work for a company that pays me to work on Open Source and have contributed to several Open Source projects that way.
Several years ago I was a core developer on something called the Drizzle project. It started out in Sun Microsystems as pretty much taking MySQL 6.0 (never GA’d) source code and turning it into a clean micorkernel architecture. In the first year we had a goal of 50% of the contributions coming from outside of Sun, we exceeded that goal as Oracle kicked out all the developers and they were hired by Rackspace
We had many contributions from other people, especially students wanting to learn C/C++. We were also in GSoC every year which pays university students (quite well for junior level) for bounties on features.
There are many different ways of monetising Open Source development, my friend and colleague Mark Atwood could talk at length on this.
Elementary’s way is good if people pay, but the key thing they were missing in their post was many people have indirectly contributed to Elementary OS. It is based on Ubuntu which in-turn is a collection of Open Source packages with thousands of contributors. Put up your hand if you have ever filed a bug for Ubuntu? Filing a bug is a contribution even if you can write code, it is effectively part of QA which is a very expensive process in software development. There are many other things such as documentation, adding to a wiki, blog posts, etc… which are all contributions that have value which are not code.
Drizzle’s downfall in the end was that Rackspace pulled funding for core developers and the model used meant that without core developers to review code the project stagnated. On a positive note many of the features coming in MySQL 5.7 and beyond are based on our work on the Drizzle project.
Anyway, as big businesses are finding out that funding Open Source development of project outside of their own company is not a cost centre it is starting to find new ways in getting more developers and other skills to the projects.