So you picked up some Unix basics along the way from blog posts, co-workers, gists, but now you're looking to go deeper and really understand how it all works.

You're ready to stop cargo culting and take your coding practices to a higher level. 

You can feel the gap beneath you, and just want to be comfortable with what's going on when your code goes to production.

What if you could make that leap? You know that your Unix system offers you a whole lot of power, if you could just get started and get a handle on the basics.

Mastering your tools makes you a better developer

When it comes to shells, web servers, and other critical pieces of infrastructure, want to know what they all have in common? They're built on Unix.

I'm talking about stuff like forking child processes, file descriptors, daemon processes, and IPC. Effective programmers have been building rock-solid software on these foundations for 40+ years! And you can too.

No matter what your Ruby server stack, I can guarantee that it's built with strong Unix programming foundations. This isn't the new and shiny, these techniques are some of the oldest, stablest, most proven techniques around.

No C programming required!

You don't need to be a kernel hacker to start using these proven, battle-tested techniques. I said that programmers have been using this stuff for 40+ years, but Ruby hasn't been around for that long.

Ruby, like Perl before it, offers great support for Unix system calls.

A 'system call' is when you ask the kernel to do something for you, something like reading from the disk, connecting to a remote socket, spawning a process, 'low-level' stuff like that. This is usually thought of as the domain of C programmers, but you can do the same from Ruby, and I guarantee that you're using Ruby code that does!

All of these facilities are available in core Ruby. Go look up the docs for fork(), exec(), and Process.wait() if you don't believe me. This is the kind of thing you're going to learn in the class.

Here's what previous attendees said about the workshop

Unix Fu was one of the best workshops - remote or in person - that I have ever had the pleasure of attending. He covered Unix programming concepts with amazing depth. It was highly technical - an experienced Unix programmer will definitely still learn from this workshop - but still very accessible to someone new to Unix programming. Jesse has outstanding content and an outstanding, interactive presentation style. I highly, highly recommend any of his workshops.
This brought a whole new perspective to concepts that I'd been struggling to wrap my head around for a while. Jesse is a great teacher - really effective.
As soon as the first day of the course ended, I cracked open our unicorn config at work and I actually understood what it was doing. I understood why it was disconnecting the active record connection before forking and re-establishing after forking. The nginx reverse proxy configuration actually makes sense to me. The great part was that I could explain these things to my co-workers.
If you don't know difference between exec, system and %x() or Backticks, you should definitely take this online course. Worth every penny.

What you'll learn

In this 8-hour class you'll use Ruby on a *nix system (Linux, OSX, BSD) to learn:

  • Unix programming fundamentals: what is a process? file descriptor? standard stream?
  • How to create multiple processes to distribute your Ruby code on ALL the cores
  • The fork + exec pattern that underlies Process.spawn, Kernel#system, even the way your shell runs programs
  • How to create and control daemon processes
  • The pre-forking pattern used by Ruby web servers like Unicorn, Passenger, and Puma
  • How to write re-entrant signal handlers
  • Common inter-process communication (IPC) patterns used by your shell and beyond
  • So much more!

"Is this for me?"

If you're looking for a deeper understanding of the tools you use everyday, this class is for you. If you're a Rails developer who feels stuck in your development, this class is for you.

If you're looking for a gentle introduction, you're in the wrong place! In 8 hours, I aim to change your very understanding of how you look at your system and your tools. There will be lots of content, hands-on exercises and challenges, Q&A along the way. Come prepared to code and leave having implemented some low-level stuff in Ruby.

If you've already read Working With Unix Processes, this class is a great followup. The class will recap some of the material from the book, but then it will go deeper with more hands-on examples and connect more dots for you.

If you're still not sure, get in touch at and we can chat about it.

Take a sneak peek, right now

I put together this screencast to show off some of the concepts that will be covered in the class. Even if you don't sign up for the class, take a few minutes to watch and learn something new. This is totally free.

This is just a glimpse of what the 8-hour class will cover, if you pick up anything new in this short screencast, you'll certainly get value out of the class.


This class is 100% virtual, so your cat is welcome to look over your shoulder.

On the day of the class, you'll get an invite to join the class via your web browser. From there you'll be able to see my screen as I shared slides and do live coding. You'll also be able to hear my audio.

You'll be able to interact with me and the other students via a text chatroom. You never have to appear on video or audio. But you can ask questions anytime via the text chatroom.

All you need to attend is a computer with a web browser that runs Ruby and some flavour of Unix.

What do I take home?

The class happens live, but besides the memories and lessons learned, you also bring home all of these extras.

  • Full recording of both days of the class.
  • Sample code for playing and breaking.
  • A dead-tree edition of Working With Unix Processes, shipped to you at no cost. This is the perfect companion to the course and isn't available in print anywhere else.
  • A 25% off coupon for any of my other books.


wwup wwup


This is not a 'sit-back-and-listen' style of class. There's going to be lots of hands-on exercises and chances for you to ask questions. So, to keep things fair, there are only 20 spots available.

An online Unix programming course from a recognized university can cost upwards of $2000, but I can't offer you a diploma and I want this to be accessible for working programmers.


October 3rd & 4th

From 1pm to 5pm EDT

  • 8 hours of fast-paced, interactive class
  • Video recording of the whole thing
  • Exercises and sample code
  • Slide deck from the workshop
  • 25% off coupon for all my books
  • + Extra group Q&A session one week after the workshop (Saturday, October 12)
  • + Dead-tree copy of Working With Unix Processes shipped to you at no cost
  • All for $679 USD


October 3rd & 4th

From 1pm to 5pm EDT

  • 8 hours of fast-paced, interactive class
  • Video recording of the whole thing
  • Exercises and sample code
  • Slide deck from the workshop
  • 25% off coupon for all my books
  • All for $539 USD

Booking as a group? Buy three or more tickets and automatically save 20%.

The early bird pricing will expire on September 20, 2013.

Can't make these dates? Get on the waiting list and I'll let you know about any future editions of the class.

My Money-back Guarantee

If it's not working for you, then it's not working for me.

I want you to leave the class having learned a ton and excited to try some new things. If, for any reason, you're not happy with the class, just send me an email asking for a refund. I'll give you your money back and you keep everything.

I realize this is risky for me, but this holds me accountable for doing great work. At the end of the day, I'd rather that you be satisfied than make a few extra bucks.

The Instructor

Hi, I'm Jesse Storimer. For the past 5 years I've been solving hard problems at Shopify, one of the largest, busiest Ruby on Rails sites on the web. My journey into the fun world of Unix programming started while working on Shopify's infrastructure and still continues today.

I really enjoy digging into low-level stuff with Ruby, like implementing a Unix shell, forking processes to speed up Rails test runs, writing an evented IO system, or experimenting with concurrent data structures.

I live up near Ottawa, Canada with my wife and daughter. I'm @jstorimer on Twitter.


Some people have told me I look like Chad Kroeger.