Challenges are marked by difficulty level.

Beginner: Rusty or new to web development, limited knowledge of programming languages & related tools

Automated Testing: A special track for those with an interest in Ruby testing & automation techniques

Intermediate: Very familiar with Ruby, JS, MacOS/Linux, Shell, Git & your text editor of choice.

Session Drills

Note: Most of these drills are not domain specific and can be completed with the Ruby, Python or NodeJS libraries.


Your goal is to complete each drill successfully and comfortably using common Ruby methods & syntax. If you are new to programming, please start with our resources before continuing.

Automated Testing

Your goal is to complete each beginner drill successfully and have a good understanding of how to use common Ruby testing tools like Capybara, RSpec, & Cucumber.


Your goal is to complete each beginner & automated testing drill and achieve an understanding of basic web development (Rails).


These drills will help you develop a basic proficiency in web development, functional & asynchronous programming with JS/Nodejs.

Extra Credit

These are extra drills used to improve your over full-stack development skills.

How to submit challenges via GitHub

If you don’t have Git or Ruby installed on your computer, please start here.

Submitting Challenges for Review

submitting challenges

  • Login to your account
  • Fork the challenge that you want to work on from Pair Columbus
  • Clone its repo to your computer
  • Create a new branch
  • Add & commit your changes
  • Push your changes back to your Github account
  • Issue a pull request for your branch from Github



We’re in need of new challenges to help make us a great resource for those looking to learn more about creating and testing web applications. Though, the majority of our current challenges are in Ruby, we’re striving to become more language agnostic. Currently, we’re looking for new challenges in Python, Ruby, and JS including client-side frameworks like Backbone & AngularJS.

Submitting your challenge

  • Make sure you have a GitHub account
  • Fork the Challenge Skeleton on GitHub & follow its format
  • Push your changes to a topic branch in your fork of the repository
  • Submit a pull request to the repository in the Engineers organization
  • We’ll review it and close the pull request! Thanks :smile: