Wanting to learn more about embedded systems, I splurged on a small kit packed full of electrical components for a Raspberry Pi. With it came a tiny book of sample projects written in Python and C; and I thought, "how hard could it be to write these in Ruby?". Two years later, I stood neck-deep in a muddy pit of poorly written C while fighting my way out of a GVL mess. This is my story of failure, and the Ruby Heroes that saved the day. There will be laughs, there will be tears (mine), and there will be joyous cheers for the Ruby community.
This talk is intended for those curious and creative hearts out there. It's a story of a desire to build, a failure to implement, and the true joy that is shared when it all comes together. I set out on a journey to build a machine that helps me learn morse code. Having a need for an evented mechanism for the Raspberry Pi and coming up short, I set out on a journey to add it as a feature to an existing OSS project. My failure prompted an unexpected response from the community, and a solution arose better than I could have imagined.
I'm an embedded systems enthusiast, and would rather write Ruby so much so that I'd spend two years poking myself in the foot with a hot iron of C. This talk is intended in part to make embedded systems more approachable, but also to make OSS contributions more approachable. The story is about making things that don't exist, pushing the boundaries of what we know, and challenging ourselves so that we may make things better for all. I'm a long time Rubyist, but embedded systems novice. This is a snapshot of my journey and the fun things I've learned and made along the way.