intermediate_ruby     about     articles

Hi there! I’m Josh!

On this website, and in many things I write, you’ll find thoughts germane to “intermediate” software develpment in the Ruby programming language.

Therefore, you are probably someone interested in topics related (either directly or tangentially) to “intermediate1” Ruby, the writing of it, the software developers2 that write it, hiring people that can write it, and more.

Maybe you’re a software developer. It’s your day job, and you at least sometimes write (and get paid for writing) Ruby (and/or3 Rails!).

Regardless of your experience level4, you might say something like:

I feel “junior” in my mastery of the Ruby programming language. I would like to learn to write and read “intermediate-level”’ ruby, especially in ways that would let me feel like a better software developer.


I feel like I am an “intermediate” software developer, but want to be a full-flegged, confident, externally-validated “advanced software developer” 5

Maybe you’re looking to hire an intermediate software developer. Why “intermediate” instead of “senior” or “junior”? Senior developers are expensive and rare. Bt you’re not quite able to hire someone with very little experience (a “junior”). An intermediate engineer? That could be perfect.

I am interested in hiring an “intermediate” software developer, and much of my stack is Ruby (and Rails).

or maybe you’re a developer manager:

What do I do about my engineers that { think they are | are | wish they were | wish they were not } “intermediate” developers

I can help you

But don’t take my word for it

Some things a few others have said about things I’ve made:

I’ve read the first two parts of your Open-source bug fixing with Matt Swanson series so far, and I LOVE IT. I love how you’re using video to get an expert to verbalize what they’re thinking.

This is so, so good.

- @Cedric Chin

[many software developers] credit you with huge gains in learning/understanding because of [resources you’ve made].

Being able to have concise instruction that I can pause, or slow down, or rewind has really allowed me to learn some basics at my own pace, without the general nervous anxiety I can get, when I feel like I missed something.

- Jordan Beck

Begin Your Journey

I’ve got a few different resources, and this entire curriculum is under rapid development. The easiest way to follow along is with your email address:

I’ll start introducing resources like my Intermediate Ruby Obstacle Course and Pairing on Open Source Software: Bugfixing with Matt Swanson

Oh, and once you punch in your email address, I’ll send you some questions. I promise it’ll be worth your time, and it’s effortless to unsubscribe.


  1. You’ll see these square quotes a lot around here. That’s part of the allure. Sometimes you won’t see them, though, as they’re distracting. 

  2. software developer or software engineer? What a good question… 

  3. Yes, I know Rails is written in Ruby, so if you use Ruby you use Rails! There’s also plenty of people that use exclusively Ruby, and never touch Rails. There are also lots of people who write Ruby, and also write a lot of JS, or Elixir, or Python, or HTML, or CSS, or Sass, or C++, or maybe even use embedded Ruby

  4. You may self-identify as “junior”, “intermediate”, “advanced” or something else entirely. 

  5. Whatever “intermediate” and “advanced” actually means. They’re obviously being used in a short-hand, vastly-compressed way. 

  6. These footnotes can be useful and/or self-indulgent. To use them, wherever there’s a little blue number, tap or click it. The page will “jump” down to this section, and will try to scroll to the appropriate footnotes. Depending on how much space there is below the footnote, the page will or will not end up there. Click/tap this blue arrow at the end of this sentence to “jump” back to the matching footnote marker.