Interview With Marcel Molina of 37Signals

It’s about that time again—time for another Slash7 interview, that is. My previous interview with Tobi Luetke was a great success, and many of you expressed an interest in further interviews. I hadn’t forgotten that, but it has been on the shelf. Until now, anyway.

This time my interviewee is Marcel Molina, of 37signals, formerly of ioni.st, a company he started with Sam Stephenson (of Prototype.js fame). Despite his rockstar hair and swanky hipster glasses, Marcel’s not a high-profile signal (even if we discount our lord & master DHH himself). In fact, when I asked him for his self-description for this introduction, well… you’ll have to keep reading for the interview.

How would you describe your ‘product placement’ in the Rails community?

I would say I’m like the drummer in the band; I try to keep the weblog active, try to work on the patch list, try to offer some help in the #rubyonrails channel… Basically, I try to keep up with the beat while the real rock stars do high kicks and twirl the microphone.

Don’t you think that’s being a bit too humble?

Well, don’t get me wrong—the drummer can do his share of rocking out. It’s just not as epic as the front men. I’ve got a lot to learn.

Tell me about your background—in programming, that is.

There’s a short version and a long version of the answer to this question. I’ll give you the medium-lengthed version.

Really, I have a background in literature stuff; several years ago, I was working on a lexicography project. It ended up turning into a lot of information and doing that kind of work manually didn’t scale at all (by conservative estimates, I was figuring it’d take me 10 years to do what I wanted to do).

So, out of necessity, I started learning elementary programming stuff so I could add some automation to the process.

One thing led to another and I ended up finding myself interested in programming itself. I spent a few years fumbling around, collected a lot of languages, but I wasn’t really satisfied. Nothing really clicked. At that point I discovered Ruby and I knew enough to see that it was a great all-around fit for me.

So you were working on a dictionary? Was that part of your education, or…?

It was a bit of a hobby (laughs). Picture me reading the dictionary on the subway.

I was working on a “Systematic Lexicon”—sounds wince-inducing, but there you have it. It’s essentially an abridged dictionary that used meaning (semantics) instead of alphabetization as its ordering criteria.

For the web 2.0 people, it was a dictionary with tags.

How old were you when you got into programming?

I was 20.

So, you weren’t one of the kids who played with BASIC on the old Apples or in a DOS shell?

I’ve had a computer since I was pretty young, and I played around on it. I was big into Sierra games and the like… had Internet before the Internet, pretty much. I just never used it for anything remotely academic.

Sierra Online!

Yeah, it rocked hard.

It totally did.
What type of education do you have?

I went to college but not grad school. I actually don’t have a high school diploma; I went to college early. I also don’t have a college diploma, for that matter, so basically I don’t have any “credentials.”

It turns out that about half of 37signals didn’t finish college, and only half of us have computer science training. I did literature and linguistics stuff. We have people who studied poli-sci, philosophy, and finance.

Do you think there’s a connection between the kind of creativity going on at 37signals, and not sticking with formal education?

I don’t think there’s a guaranteed formula, but I’ve met a lot of really creative and smart people who don’t have formal credentials… and I’ve met a lot of people with really prestigious educations who are naïve and petty and just don’t get it. It does go both ways, though.

There’s something to be said for finishing a formal education, even if it’s in something you decide you aren’t into; it requires commitment and responsibility, and those are pretty valuable. Being able to put aside your reservations and just finish can be hard, harder than doing whatever it is you want to do that you find more ennobling and important than the formal system you are resistant to.

But really, it all depends. Basically all permutations exist in relatively similar quantities.

I suppose it all depends on what value you place on certain things, right?

In part, yeah, but everything is both. (As my brother’s 5-year-old son once said.)

You said you came to Ruby after trying a number of other languages. Which languages were those?

To some degree or another: Java, Perl, Python, PHP, C, Haskell, and Lisp. Bash shell, if that counts. That was my first “language.”

How do you feel about Ruby in comparison to those others?

Ruby felt right. I first learned about Ruby by reading stuff Matz had said about it. He talked about privileging the programmer, and that’s a really attractive motivation for a language designer if you are a programmer.

I knew just enough about programming to get a sense that Ruby really got it.

Do you think Ruby would make a good first language?

Most of the languages I started off with weren’t satisfactory to my sensibilities, although I feel there’s a lot of value in my knowing and using those unsatisfactory languages. It’s hard for me to disassociate from my prior experience.

But yes, Ruby is very readable, which I think makes it an ideal candidate for learning—and yet, it is also capable of great sophistication. It “scales,” as it were. As the student becomes more knowledgeable and seeks more sophistication, Ruby can expose more and more of its latent capabilities.

How’d you go from semantic-lexicographical work to Rails and web development?

So yeah, I was into Ruby. Then Rails came along. The end.

Actually, I was into Ruby, and at the time I had a programming job at a college that involved web development. I didn’t really like web development so I was putting in all this effort trying to eliminate the unpleasantness it involved, building a framework essentially, and then all of a sudden Rails came along and did what I wanted—but it did more, and did it more elegantly.

How’d you meet Sam Stephenson, your partner in crime at (formerly) ioni.st and (now) 37Signals?

I met Sam the same way Jason met David, actually—pagination. September of 2004, Sam and I both happened to be on the #rubyonrails IRC channel.

Sam had just written and posted the first version of what is now the pagination code; I took a look, added and refactored some stuff, and we hit it off. Flash forward a year, and I’d moved to Chicago so we could start a business together.

Back in like 2001, Jason was doing some PHP and asked for help with pagination, and David provided him with a generous and elegant solution. Flash forward a few years, and David is king of the internet!

So you were all working on pagination? That’s a freaky coincidence. Says something about the state of web development (then), doesn’t it?

Yes. And none us are fans of pagination now, as it happens. It’s a “design crutch.” A cop out, if you will.

How did you and Sam end up working for 37signals—was it a regular hiring process, or was it a surprise?

37signals pretty much takes an “open source” approach to hiring. David had worked with Sam, Jamis, and me for a while on Rails as open source contributors; essentially, we’d all had a really, really long job interview. Over time, Sam and I began to do some contract work for them as well. Then at RubyConf just over a year ago, David said to us, “We’d like you two to come work for us” and we said, “Oh, yeah, OK.”

So, a bit anti-climactic, really?

It was climactic enough for me.

Were you excited? (Who wouldn’t be.)

They’re a great team. Jamis, Sam, David, Jason, Ryan and Matt blow my mind daily. They all “have their lights on.” It’s a really fertile environment.

Sounds like heaven.

I can only hope heaven is this agile.

What was your absolutely first impression of Rails?

I think my first impression is that it was smart.

It gained my trust very early on; one way of gaining somebody’s trust is to show them that you are smart. It gives the person faith in your general competence. That you’ll figure stuff out when there are emergencies.

Do you consider that to be the secret of Rails’ success?

The large part of Rails’ success is because it’s remained a project that’s about solving real-world problems experienced by like-minded developers. If it continues to stick to those real-world problems, then it will continue to be successful with people who like the way it solves those problems.

It does come back to the issue of trust, smartness and competence. If you have faith in something (or someone), you trust that things will work out, that the person will figure out what to do. I have great confidence in the people I work with, and having a group of competent people gets you pretty far.

What do you think about Rails’ popularity and adoption rate? Must mass adoption equal mediocrity? (I’m thinking PHP here, seeing how many folks want to compare Rails’ and PHP’s relative adoption rates.)

I’m not much of a fortune teller and I don’t know that much about economics and markets, but Rails clearly has momentum. It’s gaining acceptance in a lot of very different camps.

Theoretically, Rails itself could be used by any number of people, and of these people, a great number of them might use Rails in a mediocre fashion. But that doesn’t mean that Rails itself is mediocre.

That’s just a round-about way of saying that the relative merits of a userbase are, to some extent, orthogonal to what they are using. Though I would hope that Rails encourages enough good practices that inexperienced developers would grow and improve at a much faster rate than they may have with their previous language/environment.

Do you think Rails changes its userbase? If so, how?

Rails is basically a collection of proven best practices, rolled into one package. We’re just standing on the shoulders of giants. “Best practice” is essentially another way of saying “extraction”. When you start spending time in that kind of environment, the good stuff ends up being infectious.

Really, Rails is about about making better approaches more accessible. The theory is: Make the better approach just as easy as the bad one (if not easier), instead of fighting the natural order of the universe (which is to not exert unnecessary effort; in otherwords, to be lazy).

I’m starting to wax poetic here… it’s getting unseemly!

What have you worked on in the past month?

Lately I’ve been working on a library for Amazon’s S3 REST API. It’s great to work on a library. Nice switch from doing Rails all the time. Should be released Any Day Now (TM).

Reading anything currently?

I’m perennially reading around in a whole bunch of stuff. I’ve got some much to catch up on.

After flipping through bits of Kent Beck’s Smalltalk Best Practice Patterns a while back, I’ve come back to it now in earnest. Anyone programming in an object oriented language should read it.

In my continued attempt to learn how to implement a programming language, I’ve been reading Aho’s and et. al.’s Compilers: Principles, Techniques, and Tools book (the “Dragon book”), as well as Programming Language Pragmatics by Michael Scott (if only it was written by that other Michael Scott).

I’m also making my way though The Design and Implementation of the FreeBSD Operating System by Kirk McKusick and some other dude.

I’m trying to learn music so I’ve been reading a bunch of theory books. I actually am a drummer, as it turns out. Or on my way to being one, I should say.

I haven’t read fiction in about five years now. Damn computers.

Do you happen to have a pet theory as to why there seems to be a much smaller percentage of women in Rails than, say, PHP?

I don’t have any deep theories about how Rails might be more appealing to a male mindset.

Women are concerned with the immediate, men the distant. Because women take care of children, and men hunt. Apply that to Rails, and you’ve got yourself a theory!

[Ed.—this is tongue-in-cheek, for you humor-deprived folks.]

Anything else you’d like to say to our televi—er, our computer monitor audience?

You made it to the end! Thanks.

I think I speak for everyone out there when I say, thank you. For the interview and for all the things you’ve contributed to Rails and the Rails community.

The Wrap

That’s all she wrote, folks (but she wrote a lot). So you don’t have to go back a-huntin’, here are all the links you saw (and possibly passed by) in the interview:

Misc:

Books:

People:

One more thing

I hope you enjoyed this, the second slash7 interview. There will be more—I’m even prepping a separate section on the site for it (working on the Liquid templates—slow going). I’m planning another couple interviews for the nearish future. I’ve got a list of my own, of course, but if anyone wants to nominate the next interviewee… please, by all means, leave a comment. I can’t guarantee that the people you want me to talk to will talk to me, but I’ll give it a shot.

Til the next time!

No Comments

  1. Great interview!

    It’s ironic that he considers himself the Drummer considering he was very vocal at RailsConf during the panel relative to the rest of the crew.

  2. Eric says:

    I took Marcel’s very first Big Nerd Ranch rails training, and he remains an inspiration to this day. Thanks Marcel for teaching us how to truly grok the hotness of Rails!

  3. Ron says:

    Good interview Amy. Keep them coming!

    Any update on the book you’re writing?

  4. random8r says:

    Not attempting to be obfuscatory, but I find the kerning on your text a little too high. The words don’t flow together properly. I haven’t read the itnerview yet. Will do so now [muchos abracos]

  5. Enrique says:

    Amy, thanks for this interview. I’m in the process of learning Ruby, Ruby On Rails and all of their permutations. I’ve found your site to be very enlightening. Thanks so much! 🙂

  6. Enrique says:

    Eric, how did you like the training at "the ranch"? Is it worth the price tag? Thanks!

  7. If Marcel is the drummer of the Rails community, then he definitely is a Neil Peart.

  8. Matt Todd says:

    Amy! Good to see you’re still kickin’ it. Another great interview.

    I like Marcel: his background is familiar for me to some extent, and he speaks well, with a competence of communication.

    Take care,

    M.T.

  9. Drukwerk says:

    Great interview, like the balance between the hardcore stuff and a touch of humour

  10. Lars Damerow says:

    Enrique–

    I also took Marcel’s Big Nerd Ranch Rails class, and it was well worth the price (though I have to admit that my company paid for it). 🙂

    It’s a great learning environment. I was amazed by how much we covered, and Marcel made it all really clear.

    -lars

Leave a Reply

Hey, why not get a shiny
Freckle Time Tracking
account?