Laurent Sansonetti's Home Page

Hi! My name is Laurent! Welcome to my home page! As you can see from the pictures below modelling wasn't exactly a viable career option so I decided to work with computers instead. Yes, I do wear a ponytail.



I am a programmer specialized in system development, more specifically in the design and implementation of tools for other programmers (ex. programming languages, runtimes, compilers, bridges, toolchains, etc.). I am not a Web programmer / designer as you can already see.

(Even though most of my job titles included the word "engineer" I consider myself a programmer first and foremost. I just enjoy playing with computers. I still can't believe we are getting paid doing this.)


Current Activity

After a short sabbatical I re-joined Apple in late 2018 as a Senior Software Engineer. Quite happy to be back!

I work on iWork (pun intended), which includes Apple's productivity suite of applications, Keynote, Numbers and Pages, on both native (iOS + Mac) and Web (on iCloud).

Within that team, I created and I'm leading the development of a dedicated toolchain that allows iWork engineers to easily port existing native code, written in C++/Objective-C, to the Web platform, using WebAssembly as a target. The toolchain is driven by clang and uses the LLVM WebAssembly backend, and includes custom compiler/linker passes, a custom Objective-C runtime (fully static), a Foundation layer, and a TypeScript bridge (which allows native code to be reused from the JavaScript world). Features using the toolchain started shipping in April 2020 as part of iWork 10.0.

Past Activities

Microsoft (2017-2018)

I was shortly employed by Microsoft as a Principal Engineer working for the Mobile Visual Studio team. Under that position I implemented a minimalist yet fully compliant CSS Flexbox Module, a form of which eventually shipped into Xamarin Forms, and started an effort to bring C# to WebAssembly with a static compilation approach based on the LLVM tooling.

RubyMotion (2011-2017)

In late 2011 I solo-founded, bootstrapped and managed a small startup for almost 6 years. The company's main product was RubyMotion, a commercial toolchain to write cross-platform apps for iOS (plus OS X, watchOS, tvOS) and Android using the Ruby language. I grew the company organically, which was quite challenging: I never did any marketing, with the exception of speaking at conferences, and never raised external funding. At its peak RubyMotion had over 7000 paid customers and employed ~4 people.

Technically speaking RubyMotion is a build system, a REPL, an ahead-of-time LLVM-based static compiler for Ruby, and 2 implementations of the Ruby runtime, respectively for Objective-C and JVM / JNI targets.

I started RubyMotion as a fork of MacRuby to support iOS plus static (AOT) compilation, and eventually launched it in 2012 (and made it to an exclusive story in ArsTechnica). OS X support shipped in 2013, and Android support, which required a brand-new runtime implementation (and a lot of other things!), in 2014.

I wrote all significant features over the years and then maintained it with a small team of programmers I carefully recruited and managed. My favorite hack as far as I remember was creating a REPL that would evaluate code on connected devices, using a remote-JIT strategy.

I co-organized 3 RubyMotion conferences: one in Brussels in 2013, one in San Francisco in 2014, and one in Paris in 2015, each one featuring over 20 speakers and welcoming 100-150 attendees. I also helped organizing and teaching several trainings over the world on the platform.

In 2015 I received an award from Japan's Shimane Prefecture Governor and Ruby's original author Yukihiro Matsumoto for my work with RubyMotion during a ceremony in Tokyo.

Lately I began to realize that I didn't enjoy doing business development and that I also wanted to do something else, as I had been working on the same codebase for over a decade. I eventually decided to sell RubyMotion to one of its most popular user, who promised to continue its development. RubyMotion has certainly been a rewarding journey for me, I will always be grateful for all the things I learned and all the awesome people I met, but it was time to move on.

Apple (2004-2011)

Before doing RubyMotion I was employed by Apple for 7 years as a Senior Engineer, where I worked on iCal, iLife (as well as something else), then on all releases of OS X from Tiger to Mountain Lion at the CoreOS / BSD (UNIX) level.

I was also the author and lead developer of MacRuby, Apple's implementation of Ruby. MacRuby started as a fork of Ruby 1.9 which I hacked to use the Objective-C runtime to create the Ruby object model, then I integrated the (now defunct) Objective-C garbage collector, rewrote basic classes to use CoreFoundation and ICU, and eventually replaced the bytecode virtual machine with a new one based on LLVM (as a JIT). Ultimately, the only piece I didn't end up rewriting from the original Ruby interpreter codebase was the language parser.

MacRuby started as a pet project during the 2007 Christmas break, and eventually I was authorized to open source it, work half-time on it and speak publicly about it at conferences. At one point it even got slashdotted. Lion shipped with core functionality written in MacRuby.

I also created RubyOSA, an Apple Events bridge for Ruby. I was also a developer and later maintainer of RubyCocoa, an Objective-C bridge for Ruby which eventually shipped in Leopard (problems due to the nature of the bridge led to the creation of MacRuby as a replacement).

Around that time I also created the BridgeSupport infrastructure as a way for non-C languages to better integrate with the native Mac APIs. BridgeSupport was used by RubyCocoa and MacRuby, but it was also adopted by bridges for other languages (Python, Smalltalk, JavaScript, etc.) and shipped in Leopard. In Lion, it was rewritten to use the clang frontend. Several years later BridgeSupport proved to be a critical piece of RubyMotion as well.

I enjoyed very much working at Apple. I was lucky to join right before it became the giant that it is today, and to watch it grow from the inside. I got to work on both visible (reviewed by Steve) and hidden (developers only) stuff. Eventually I left as I wanted to try doing a startup.


Before joining Apple I worked on IDA Pro for a few years, more specifically on several disassembler modules (I was told they are still in use). I also worked on a picture recovery solution, and very modestly contributed to the GNOME project on my free time (in addition to Ruby-GNOME2 which I then used to write a book collection manager).

I graduated from college in 2002 with a Bachelor in Computer Science and wrote a simple host-based IDS as my final year project.

I discovered programming with BASIC the day my mom brought a C64 back home, I believe I was 8. As a teenager I discovered the C language at the same time as Linux (I wasn't popular at school as you can guess).


About Me

I currently live in the Condroz region of Belgium with my wife, son and cat. In the past I lived in Paris, France and Silicon Valley, California and Liège, Belgium.

As my surname suggests I am Italian, however my native language is French as I was educated in Belgium. I own both citizenships and as a first-generation immigrant I don't feel that I belong to a specific country, but I somehow do feel European. I'm also indirectly attached to France and its culture, being a French speaker and having married a French person.


My main interests include spending time with my close family, programming computers (who would have guessed?), reading science-fiction, listening to classical music, traveling, cooking, sleeping, pretty much anything related to Japan and its culture, "retro" (ex. NES) video games, making awkward jokes, playing devil's advocate, and appreciating the small pleasures of life.

My favorite programming language is Lisp, my favorite StarCraft race is Zerg (used to be Protoss), my favorite video game franchise is Fire Emblem (The Elder Scrolls being a close second), my favorite composer is Sergei Rachmaninoff, my favorite author is Philip K. Dick (but my favorite science-fiction novel is Dune), my favorite city is Tokyo, Japan, and my favorite beer is Orval. I was sadly born with only 10 fingers so my favorite text editor is Vi(m) and not Emacs. My favorite web site is Wikipedia.

Since 2004 I have been desperately trying to learn Japanese.

Since 2010 I have been working on my own programming language. I only get to work on it during holiday breaks, but it's getting there. Don't expect to see it tomorrow, though.

Since 2018 I switched to a low-carb diet and also introduced intermittent fasting on a daily basis. Originally tried as an experiment after a recommendation from a good friend, I immediately noticed so many improvements and benefits that it is unlikely at this point that I will go back to my previous lifestyle. As of 2020, I'm fasting between 18 and 20 consecutive hours each day.


My Internet handle is lrz, a 3-letter contraction of my Italian name (Lorenzo) that I chose when I was playing (probably too much) arcade games as a teenager and had to file something as a score name.

It's definitely not related to the Leibniz Supercomputing Centre as I'm often asked (even though that place looks pretty awesome).



Need to contact me? My email address is lrz@ this domain (I don't like spam either). I read all my emails but if I don't reply after a week feel free to send me a reminder.

If you have my phone number please don't use it, I don't like much talking over the phone. I much prefer email.

Alternatively you can send me a message over Twitter.