One Line Summary
Through the donations of community members, I would like to put my commercial and personal software projects on the back burner for a prolonged period of time (3-6 months), and focus on working on open source projects that are of high importance to the majority of Rubyists.
If you already know what this is, or just trust me, please consider making a donation to this effort. The suggested amount for being a 'sustaining contributor' is $50, but all amounts, big or small, are warmly accepted.
If you haven't heard from me about this idea yet, please read on for detailed information.
Why Does The Ruby Community Need A Dedicated Hacker-Employee?
The Ruby community suffers from an embarrassment of riches when it comes to open source software. It seems that countless hackers and the companies they work for are eagerly contributing new software, and working on shaking bugs out of old software. This on its own is a great reason to believe that Ruby will continue to be a serious contender for many different programming tasks, both in the commercial and hobbyist sectors.
Still, there are complications. With the explosion of interest in Ruby and software written in it, the community is feeling growing pains at all levels, especially in our infrastructure that supports application development in Ruby. Though it's relatively easy to find paid Rails work that allows you to contribute a plugin to the community now and again, it's pretty hard to find a company that'd fund fixing the various bugs that have been reported with RubyForge, our central software repository. Though many Rubyists will seek 1.9 compliance in their greenfield projects, it's unlikely that we'll see large numbers of existing Ruby projects get fixed up in a short period of time without some external push. These are the kinds of things that casual hacking as well as commercial work don't really answer, and this proposal aims to offer a solution to them.
Put simply, I'd like to put my commercial work as well as my personal software projects on the back burner for several months, so that I can work on problems that are common among most Rubyists. My goal is to raise the funds necessary to do this from the community itself, and there are a number of reasons why I'd be a good candidate for this sort of thing.
Ideally, I'd like to spend 3 to 6 months as an employee of J. Random Rubyist, working on projects that matter to me, but also matter to the many hard working, busy, and wonderful Ruby developers I've met over the last several years.
A quick summary of how things would work.
I've put together a list of ideas for projects that I think would be generally helpful to Rubyists. Each item on this list is something I feel comfortable working on, so I would be happy to work on any of them. Though we went over many ideas, the three Projects that remain are ones that have been supported the most by community members.
Starting with these ideas, I have come up with a rough timeline of how things would work:
1) Begin by collecting donations, to get a sense of how much time I'll have available for this project. My living expenses are approximately $500 a week, and I'd be willing to work for between 2-26 weeks.
A work week for me would be a minimum 20-25/hrs a week, averaged over the course of the entire project. This means that 26 weeks would buy over 500 hours of work for $13000, which is significantly less than my contracting rate, but certainly is enough to pay the bills.
Though I may be willing to accept some excess funds to help make my budget a little less tight, I don't think I'd accept more than $20,000 total for the 6 month period. If I make less than $13000, I will determine how many weeks I work based on the assumption of a $500 salary a week.
I thought this through a bit, and I think I will need to raise all funds before I begin work, so that I don't cancel a bunch of prospective contracting work in hopes of future donations.
2) During the donation process, people may suggest possible projects, give me constructive criticism about the projects I've suggested, and generally stay involved in helping this project be as useful as possible.
3) On April 1st, I will close the donations and lock the project ideas list. I'm still working on the specifics, but donors will have some say in which project gets selected.
I've posted a rough plan for how this will work to the mailing list.
4) By April 10th, I will have a project selected and one or two 'backup' projects that can be worked on in the event that I finish one project early or run into major hangups.
5) By April 15th, I will begin work for however many weeks I've been able to gain donations for. I will keep meticulous notes, stay active in the community, and record public hours so people know where their money is going.
Why am I the Right Person for the Job?
I can name a ton of Rubyists I'd say would be technically proficient and community centric enough to take on this kind of effort. However, I've been fortunate enough to have several unique experiences that make me confident that I could do some great work on something like this:
* I have successfully participated as a Ruby Central Codefest Grant recipient in 2005 as well as a Google Summer of Code student in 2006 (Ruport).
* I have been very active in the community, so my work and contributions can easily be reviewed by anyone who wishes to do so. I've spoken at a number of Ruby users groups and conferences, including RubyConf 2006 in Denver, CO.
* I have a deep passion for working on open source software, and place this interest ahead of making boatloads of money. Though I expect to do some minimal commercial work during the duration of this project, I have no problem making this project my primary focus for a while.
* My living expenses are relatively low, and I do not have a full-time job, a family to take care of, or any other major commitments that would take me away from dedicating time to a project like this. For the record, I have endless admiration and respect for the hackers out there who are 'doing it all', though I don't envy the complications that must arise from that.
* I am very comfortable with candid, transparent discussions in public. This will be necessity for a project like this to succeed.
Because of these reasons, I think I'm the right person for this job. I hope you do too.
If you're convinced by now, great! There are lots of ways you can help me make this a reality.
How You Can Help?
The core way to help is of course, to make a donation. The suggested amount of $50 is just a nice round number, please feel free to donate $5 or $500 if you wish. Donations are what will make this effort possible, so this is the most direct way you can help. Please remember that your donation is a gift and a symbol of your trust in the 'spirit of the project'.
I cannot work out the logistics of having 200+ people to answer to personally throughout this project, so please realize that ultimately, I'll be working in good faith for the Ruby community with my reputation on the line, but that the final decisions on things are up to me.
That having been said, those who donate will certainly have some special say in what project gets picked, but I haven't worked out the details on that yet.
By Word Of Mouth
Though I'm halfway decent at self-promotion, I'm not really into marketing. I always feel that if a project is worthwhile, it can get sufficient attention through word of mouth. This is probably the next best way you can support the project. I'm not looking for solicitation as much as perhaps a blog post that says that you support my effort and have some confidence that it'll succeed.
I expect many of the donations to come from people I've worked with personally, but this will be a harder sell to those not familiar with my work. If you can introduce me to your friends and encourage them to support this effort, I will be very grateful!
By participating in discussion about the project.
I'd love to hear ideas about this project. Criticism is welcome, though if you just want to post about why I should just be doing commercial open source work, and don't have an offer to fund this entire project, please spare me. :)
But in all seriousness, the more ideas I collect from the community, the better this project will be. Please feel free to discuss all aspects of it here:
I will also make announcements on that list as they come up.
That's all for now
I have to say, I'm really excited about this idea. It sounded crazy at first, but the overwhelming support I got via email and on the O'Reilly blog have me anxiously hoping we can make this happen.
Now it's time just to wait and see where things go, and with a little luck, I'll be starting on some seriously cool work for J. Random Rubyist Inc, by mid-April. :)