The Shining Wonderful Ruby Challenge Banner

What is this, and what do I do?

The SWRC isn’t a contest or a competition or anything. It’s a challenge, open to anyone, to program a Ruby on Rails backend for a simple sprite database. Difficulty isn’t the goal — the challenge is relatively simple. The goal is to encourage people to learn about RoR and, hopefully, use some of their skills to help us with Fangamer. Here’s a mockup which will hopefully help explain how we want this simple sprite database to work:

SWRC Mockup Thumbnail

If you’re an experienced Ruby developer, you actually don’t need to bother with this challenge; if you show us something else you’ve written of similar (or greater) complexity, then you can ‘move straight to the next round’. Essentially, the SWRC is more of a qualifying exam than anything, really.

If you’re new to Ruby (or web development in general) but still want to get involved, then here’s what you should do, in chronological order:

How can I setup/learn/write Ruby+Rails?

We’re going to be posting links on the SWRC Forum to some of the best resources for learning about Ruby on Rails. You’d be surprised at just how many well-written, entertaining, free, and awesome resources exist for Rails newbies.

How do I “turn in” my code?

To submit your finished project, email reidman@starmen.net with a copy of your code. If you submit a URL with a working copy of your project, that would be awesome. If you don’t have access to a Ruby+Rails server, but you did the development on your own computer, we’d give you brownie points if you submitted a quick screencast highlighting anything special/different you did with your project.

How are you going to ‘judge’ the submissions?

Just because you submit some code doesn’t mean you’re automatically on the development team; we’re going to be as picky as we can possibly afford to be. Once you’ve submitted your code (or a link to a similarly difficult project you’ve worked on in the past), we’re going to look for several things:

  • Efficiency (no pointless or unnecessary code)
  • Security (user permissions, scrubbed inputs)
  • Ruby+Rails concepts (convention over configuration, DRY, MVC, REST, and any other applicable TLAs)
  • Small controllers and big models
  • Use/understanding of associations (for example, a robust tagging system would have a many:many association between sprites and tags, though that’s not required for the SWRC)

What happens if I get in?

If you’re accepted as a member of the development team, you will be given access to Basecamp, a project management site we’ll be using to handle all of the volunteer Fangamer code/projects. Once you’ve got access to Basecamp, you’ll get to choose a project to work on (on a first come, first serve basis). Some projects will require teams, while other smaller projects may only need one person.

We probably won’t make any explicit assignments, and the deadlines/milestones will be fairly generous (and somewhat negotiable), so you’ll be free to work more or less at your own pace. Just because it’s volunteer work doesn’t mean it will be easy, though! We’ll explain this stuff in more detail to the developers as they’re accepted to the team.

Is there a deadline?

We’re hoping to start posting projects in Basecamp on (or maybe before?) Jan 7. If you’re accepted onto the team later than that, there may not be any room left for you to work on the projects, so the sooner you submit your code/qualifications, the better.

Working for free…what’s in it for me, punk?

First off, there’s not going to be any money involved. It’s hard enough just trying to figure out how to pay myself and Ryan while accepting investments; trying to monitor/pay/tax/license even a small handful of developers would be enough stress to end this project before it even started. So if you want to work on this project, understand these important points up-front:

  • You will not get monetary compensation for your work (there may be other incentives, though)
  • We (Fangamer) will be making money off of the sites we build with your code
  • We (Fangamer) will NOT sell your code
  • You will retain full rights to use whatever code you write
  • You will not necessarily have access/permission to the rest of the Fangamer codebase (Ryan and I will have a tight lid on most of it)

With that out of the way, allow me to explain some of the perks of working as a volunteer developer:

  • Experienced developers will get to choose from a series of projects, and a lot of them will be fun/interesting (or both, if you’re easily entertained). They’ll run the gamut from difficult to easy, huge to small. Regardless, most of them will be robust enough to warrant a spot on your resume.
  • For inexperienced developers, this will be kinda like an internship. This is a rare opportunity, so if you’ve been thinking about pursuing a career in web design, you’d do well to pounce on this. I’ve been doing web design/development for more than 10 years now, so I’ll be glad to mentor anyone who’s got the base skills, as I’m sure some of our more experienced developers will as well. Many of the people you’ll be working with will have a lot of years/projects under their belts, so you’ll be able to learn a lot from them, even if they’re not actively teaching you.
  • I’ll be pouring 100% of my time and experience into crafting a user interface for most, if not all, of the apps we’re going to be developing together. You won’t have to write CSS or worry about making your front-end look pretty. Your job will be to focus on making your code sleek, fast and secure.
  • Despite the fact that everyone will be working from mockups and specs, project leaders will have control over how their individual projects turn out and how their teams are run. If you can figure out a faster/better way to do something or if you come up with an awesome feature that we didn’t think of, your hard work won’t go unnoticed!
  • Ryan, the other developers, and I will all be more or less available to help you out if you get stuck. If all else fails, I’ll buy you a copy of an e-book (or a paper book, if you hate technology and want to stick it to the man [me]) so you can unstick yourself :)
  • You may find that you really enjoy working with web development. If you’re good at it, I might have some “real” work (i.e. paying jobs) to toss your way in the future, as I’m always looking for talented developers to help me with my various projects. And once Fangamer gets off the ground (many months or even years from now), I may eventually hire another developer or two. First dibs on these jobs, if they materialize, will definitely go to the developers who made solid contributions in the early days of the project (e.g. right now). Please don’t take this as a guarantee of future work; nothing is guaranteed here.
  • There are some other perks which will accompany your status as a volunteer developer; I’ll save this discussion for the developers themselves. They’re nothing huge, but I want to make sure people have the right motivation for joining the team, so I’d rather present them as a surprise instead of an expectation.

What’s up with the dog in the banner?

That’s my dog, Ruby. Giovanni gave her the name ‘The Shining Wonderful Ruby’. Unlimited Lumpia made that ultra-cute sprite in response to my request for Ruby sprites. Get it? It’s a video game sprite database programmed in Ruby. Oh, that didn’t make any sense? Well here’s King Banana a picture of my dog.
Ruby Puppy sits in the grass and silently plots the ultimate destruction of the universe. She also says 'huhuhu'.