• 02 Jan

    DragonRuby's Partnership Grows to Four, And Goals For 2020

    by: Amir Rajan

    In 2019, I made the decision to grow the leadership (and ownership) of RubyMotion from myself, to three more people. This entry covers the following:

    1. Introduction Of The Newest Partner: Alex Denisov
    2. The Role Of Community Members
    3. How The Roles Of The Partners Have Evolved
    4. Why I Waited Until 2019 To Make This Change
    5. What's Next

    This news entry assumed you have read The Sleeping Dragon Has Awoken, And Is Filled With A Terrible Resolve, so take a moment to skim that if you haven't.

    Introduction Of The Newest Partner: Alex Denisov

    Alex has been working on RubyMotion as an independent contractor since November 2017. Just like Aaron and Ryan, I trust this guy a lot, a whole lot. He's pretty much a rocket scientist.

    Here's his bio:

    Alex is a software engineer with a decade of professional experience ranging from fancy mobile apps, to compilers, to spacecraft software (literally). As an open source enthusiast, he has a number of contributions to LLVM and Clang with one of them presented at WWDC. As an independent researcher, he got his work published in one of the IEEE journals. As a volunteer, he organizes LLVM User Group in Berlin, and serves as a program committee member at a number of industrial and academic venues. Once in a while he also writes some cool stuff in his blog

    The Role Of Community Members

    We Are Dragon Riders

    In April, I announced the transfer of RubyMotion out of my personal corporation into a new company called DragonRuby LLC. With this change, the Slack Channel has been renamed from "Motioneers" to "Dragon Riders". A Discord Channel has also been created (for game devs). This is strictly a means to consolidate the branding of all the products that DragonRuby provides:

    • "RubyMotion, a DragonRuby Product"
    • "DragonRuby Game Toolkit"
    • "The DragonRuby Runtime"

    Note: "DragonRuby RubyMotion" doesn't sound too great, which is why we are going with "RubyMotion, a DragonRuby Product".

    Note 2: DragonRuby is one word. So is RubyMotion (it makes it easier to Google/SEO optimize in case you want to blog about DragonRuby related stuff).

    With the consistent branding, I'm hoping that the reply to the question:

    "Hey, so what tech stack do you use?"

    Has the commonplace/ubiquitous response of:

    "I am a Dragon Rider."

    Note: I understand that going directly to an Itch page is confusing, but this is temporary. Aaron is working on the new site, which will present all of the DragonRuby products. Our current (soft) deadline for the new site is March 2020.

    Product Sustainability Through Community Involvement

    I don't feel that large companies are sustainable. Working for free (like most OSS developers do) is also not sustainable. The Unix philosophy of "make each program do one thing well" is sustainable.

    Given the statements above, DragonRuby's one thing is: expanding the use of Ruby past the server.

    As we "bring Ruby everywhere else," other products/services will be needed: training, mentorship/consulting, sponsored OSS, device manufacturing, and pretty much anything else you can think of. The goal is to provide these needs through collaborations with community members (not by growing DragonRuby).

    I am already working with Lori Olson and directing anyone who needs training to WNDX School. I will continue to reach out to trusted community members who want to build complementary products that they can sustainably maintain: by charging money for licensing, or through OSS sponsorship.

    Here are some ideas for things a motivated community member can provide:

    • A Themes/Sample App Site that makes your app look good.
    • AWS Marketplace offerings to support server-side needs (like crash logging and telemetry).
    • A DragonRuby IDE written with DragonRuby.
    • Raspberry PI storefront for purchasing "DragonRuby kid-dev machines".

    You'll notice that "more training" isn't on the list above. We already have that covered. So, having an endorsement by DragonRuby is essentially exclusive.

    How The Roles Of The Partners Have Evolved

    Around the end of June, Aaron, Ryan, and I started to settle into our routines/responsibilities. I still felt a key role was still missing within the company.

    Alex came on board in October to round out the team. Our "Enterprise TM" titles are as follows (ordered by when each partner joined the company):

    • Chief Executive Officer (CEO): Amir Rajan
    • Chief Information Officer (CIO): Aaron Lasseigne
    • Chief Gaming Officer (CGO): Ryan Gordon
    • Chief Technology Officer (CTO): Alex Denisov

    With regards to the tounge in cheek comment of "Enterprise TM":

    • DragonRuby is a tech company, so we all code and are damn good at it.
    • We are small by design (which makes the grand C* titles seem silly).
    • We all work on all parts of the DragonRuby: The Runtime, RubyMotion, and Game Toolkit.
    • We all are equal partners and any decision must be unanimously agreed on.


    The four of us provide an equilibrium within DragonRuby. We all keep each other in "check" and make sure the most important task is what's worked on to achieve DragonRuby's goal: bring Ruby everywhere.

    • I (Amir) am an advocate for existing customers and an advocate for "the business of software". The products we provide cannot be demoware. We eat our own dogfood and I'm responsible for ensuring that this is true.
    • Aaron's responsibilities are focused on new customer acquisition and new product development that would be beneficial to Ruby shops.
    • Ryan's responsibilities are to ensure portability across all of our target platforms: iOS, Android, PC, Mac, Linux (include Raspberry PI), Web Assembly, Consoles (such as the Switch, PS4, Xbox), and VR (such as the Index, Occulus, and Vive).
    • Alex's responsibilities are to ensure our investment in our LLVM based toolchains stay healthy and innovate.

    Why I Waited Until 2019 To Make This Change

    Back in 2008. Laurent (an Apple employee) made a bet on a brand new compiler called clang and its underlying virtual machine called LLVM. He wanted to create a Ruby implementation that leveraged this new, cutting edge compiler technology. Here's the time stamp for the first commit of MacRuby:

    commit 91e697cb7665dad7192cd02ed4370a0731ed849d
    Author: Laurent Sansonetti <>
    Date:   Tue Feb 12 22:02:16 2008 +0000

    It took twelve years for this bet to finally pay off.

    Becuase of the success of the iPhone, chipset manufacturers had to "get on board" and provide backend compilers for LLVM's Intermediate Representation. From there the dominoes began to fall:

    • 2005: Apple hires Chris Lattner (the main author of LLVM).
    • 2007: Apple launches the iPhone. The launch went well to say the least.
    • 2008: Work on a clang centric Ruby within Apple is started by Laurent.
    • 2013: Sony adopts clang for the Playstation 4.
    • 2014: Microsoft starts working on .Net Core (leveraging clang).
    • 2017: Chris Lattner goes to Tesla, then Google (looks like those companies are on board too now).
    • 2017: Nintendo release the Switch which uses clang.
    • 2018: Google Chrome is built using clang.
    • 2019: Microsoft's Visual Studio Build Tools ships with clang and completes .Net Core 3.0.
    • 2019: Google Android API 26 requires 64 bit support and compiles using clang.
    • 2019: LLVM gains a Web Assembly back end compiler.
    • 2020: "Everything" uses clang/LLVM with DragonRuby having the longest investment in the compiler toolchain.

    When I aquired RubyMotion in 2016, I had to wait for clang to "take over the world". If/when it did, the initial bet that was made by Laurent would pay dividends. In 2019, it finally happened. And so here we are :-)

    What's Next

    The DragonRuby Runtime (and by extension Ruby) is positioned to go everywhere. There was quite a bit of work done last year in teasing apart some of the underlying Mac dependencies. This work will continue this first quarter and allow for the execution Ruby code that will work on mobile and desktop without any prerequisites/installed rubies.

    Hold on to your butts.


Want to stay in touch?

Follow us on Twitter