Reports To: Naomi Novik -- Accessibility, Design, & Technology committee.
Job Description: Become an OTW volunteer coder! You will learn exciting and useful stuff like how to write code in Ruby, build Ruby on Rails web applications and plugins, use MySQL databases, and contribute to the creation of the Archive of Our Own and other cool open-source OTW projects. \o/
Ruby is an object-oriented language with a lot of super-nice features and terrific tools available. Ruby on Rails is a web development framework --meaning that it helps with building web applications (like the Archive will be) and makes creating them a lot more fun. Ruby and Rails also have really terrific built-in testing tools that hugely cut down on debugging. We are hosting all our code at Google Code Hosting, and it will all be open-source. As much as possible, we will be building the archive as a set of separate Ruby on Rails plugins, which means that not only will the archive itself be open-source, but all our individual plugins will themselves be open-source, so other programmers will be able to mix and match them into their own Rails programs, and we will be contributing to the community at large.
Skills Required: fear, surprise, and an almost fanatical devotion to the --er, sorry, wrong job posting.
- If you are an experienced coder: Familiarity with object-oriented programming concepts and a mix of programming tools. Knowledge of any of Ruby, Ruby on Rails, Java, Perl, PHP, Python, a plus. If you know C/C++ you will be ahead of the game.
- If you are an inexperienced coder: Our Python Vs. Ruby deathmatch a while back is a great starting point -- if you didn't do so back then, please take a look and work through the Deathmatch project for the Ruby programming language. If you can work it out and have fun with it, there you go.
Estimated Time Commitment/Length of Commitment:
- If you are an experienced coder: We would love to hear from you no matter how much time you have available. Even if you only have a little, if you would for instance be willing to hang out on a mailing list to help out some of our inexperienced coders as time allows, or do the occasional code review, that alone would be a terrific help. If you don't have enough time to commit to writing an entire plugin, if you would be willing to take on the occasional bugfix, that too.
If you can give us 5 hours/week, then depending on your interests and what is on our plate, you can work on plugins or the central archive structure, or if you would like to have more freedom or work more on your own, on an independent project with one of the other OTW committees that has a need. We may also ask you to chip in with bugfixing and/or code reviews and/or helping out less experienced coders.
- If you are an inexperienced coder: Realistically, you will need substantial time available to practice enough to learn. We will also ask for more of a commitment from you because of the time investment in training. So we ask that you be prepared to give us at least 5 hours a week and commit to a year if you are fairly new.
Other Information: Just to prepare you: I guarantee that the most annoying and unpleasant part of the Ruby on Rails coding process, whether you are a new or experienced programmer, will be getting set up to code. There are a bunch of separate tools you have to install, different ones depending on what your operating system is, all of which have to be configured sometimes in mysterious and baffling ways, and which will not quite work together right for a while, and which will probably break at some point in the future when Rails or Ruby or Google changes something without our realizing it, etc etc.
On the bright side, once you have installed the software the actual programming feels way easy. *g* So, come in expecting not so much a steep learning curve as a learning gate you have to climb over to get started, which can swing out unpredictably for a bit in either direction while you are climbing it.
It will make life much easier if you have a reasonably powerful personal computer with a recent operating system (Windows XP SP 2 or Vista, Mac OS X 10.3 or higher). If you are running Linux, please be prepared to figure out how to make our instructions work for your particular Linux OS, as there are so many out there, but we kind of assume you are going to be okay with that if you're running Linux!
If you don't have such a system, it doesn't mean that you can't join in: it will just be somewhat harder because the whole programming community (which is where we are gathering tutorials and tools) is generally geared towards people we like to call "rabidly early adopters" who tend to have the latest and greatest. So, please do let us know what kind of system you have (and also how comfortable you are getting tools working).
You will also need a regular internet connection. Broadband will make setup way less painful, but is not necessary as long as you are patient downloading the initial slew of software tools; most of the time day to day you will be working offline on your own computer. The only thing is you do need to be able to connect your computer to the internet whenever you need to, in order to upload your work.
Application Process: Send an email to email@example.com or post a comment here. All comments on this post are screened in order to protect the privacy of volunteers providing personal information.
Please include the following information:
Your name (you may provide your real name--please consider what you feel comfortable using inside and outside the organization):
Your email address:
Relevant experience and credentials (fannish and/or real life):
Computer system (hardware -- CPU, RAM, disk space -- and operating system with version):
Amount of time per week you can contribute:
Length of commitment you can make:
(Optional) What you are particularly interested in working on (if you have a preference):
Your time zone*:
Please put "ADT-003 Volunteer Ruby Coder" in the subject line of your email or LJ comment!
Deadline for Application:
All applicants will receive an email confirming their application has been received within 48 hours of close of deadline for this job (not with within 48 hours of sending it to us!). If you do not receive an email, please contact us.
*For chat scheduling purposes, so the committee can schedule online meetings at a time that's convenient for everyone. You can find your time zone here. Example: GMT -05:00
Anyone can contact the Volunteers & Recruiting committee at any time by commenting on this post (all comments are screened) or sending an email to firstname.lastname@example.org