intermediate_ruby     about

Questions for you

👉 Have you read (or felt guilt about not reading) Practical Object-Oriented Design in Ruby by Sandi Metz?

👉 Have you read Refactoring: Ruby Edition by Jay Fields, or it’s predecessor and Java-focused Refactoring: Improving the Design of Existing Code

👉 Have you paid Avdi Grimm for any of his amazing Ruby Tapas screencasts or his Mastering the Object-Oriented Mindset in Ruby and Rails course?

👉 Do you consider yourself to be an early-career software developer?

👉 Do you work in Ruby and/or Rails?

👉 Do you pair as much as you can with senior developers?

👉 Even with all of the existing resources out there, do you still feel a bit stuck?

I feel your pain, and I can help through this stage in your career.

I’m Josh. I’m on a quest to figure out how to most effectively help early-career software developers most quickly become “mid-career” software developers. I got my first software development job in 2017, and spent a long time feeling frustrated about my pace of growth while on the job.

Fast-forward to 2020, I’ve certainly grown into a solid developer, but I feel like I still have holes in my knowledge, and I should know more than I do, with my four years in the industry.

I will help you gain the experience of my four years in way, way less time than it took me.

Many, many other software developers who are in their first job have told me they also felt frustrated with their pace of learning and growth.

So, how do we fix this problem? How do we learn more, in order to build better systems? Why should we even care about this?

I’ll unpack each of these answers below. For now, just know that I’ll help you fix the problem, I’ll help you learn “meta-skills” along the way, and you’ll understand why this learning you’ll do is deeply important to you, your employer, and any future employer down the road.

You’ll be less frustrated, more satisfied, more respected, more patient, and your career trajectory will be fundamentally changed.


So, how do we do all of this?

We have to ensure we have adequate skills across four domains:

  1. Writing software
  2. Solving problems
  3. Understanding others
  4. Communicating effectively

If you have adequate skills in only one or two of these domains, you’ll find yourself floundering and you might not know why.

If you build skills across all four domains, you’ll find yourself enjoying your work, because you’ll be effective even as you’re being challenged.

You’ll deliver more value to your team, your company, and your customers, and you’ll enjoy the day-to-day of your work.

Don’t take my word for it

Here’s what 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 verbalise what they’re thinking. This is so, so good.

- @Cedric Chin

Everyone I have talked to in the cohort, including myself credits you with huge gains in learning/understanding because of the videos. 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 efforless to unsubscribe. (I will in fact strongly request you unsubscribe, a few emails down the road.)