Title: Text Interview: Robert O'Callahan
Contributed by: [no contributor]
Added on: 15 May 2008
Type of Object: Text
Categories interview, email

Download Files:


Email interview with Robert O'Callahan.


Robert O'Callahan
to Giny Cheong
date Sat, Mar 22, 2008 at 1:28 AM
subject Re: Mozilla Digital Memory Bank

1. When did you begin using computers? How did you get interested in computers?

My first *use* of a computer was probably playing games on the the PRIME mainframe computer at my father's office --- Colossal Cave, Space Invaders (on a VT52) and a *multiplayer* version of one of the early "Star Trek games ("S-WARS"). Not long after that, when I was about ten years old (1982) my mother did a computer course at night school and brought home a book on BASIC programming. My father salvaged an 8080-based "DTC Microfile" microcomputer from his office to bring home for me so I could do the exercises --- 8" floppy disks, VT52 terminal, BASIC interpreter and pretty much no other software. So I worked through the book, then started trying to write my own software based on programs I'd seen. I was quickly hooked.

2. What is your education background; have you had formal computer training?

Yes. I ended up double majoring in mathematics and computer science as undergrad. Then I decided to do a PhD in computer science (over mathematics because I thought CS would have more job options at the end). I graduated with my PhD in 2001.

3. What's the first programming project you remember working on?

Depends on what you mean by "project". I remember writing a small, trivial really, Zork/Colossal Cave-style adventure game as one of my first "for fun" projects. A few years later I had a PC clone and wrote a font editor for dot matrix printers and then designed some font bitmaps with it; that was the first project I got paid for.

4. What you do at Mozilla? How did you come to work here?

In 1999 I was struggling with writing my PhD thesis and felt the urge to write some code. I also wanted to get some experience with working on a large scale project since my PhD was in "software engineering". And I wanted Microsoft to not dominate the Internet the way they'd taken over the PC world. So I thought getting involved with the then-new Mozilla project would be a good fun way to do all those things. What really got me hooked, though, was when I found a bug on implementing text justification and one of the Netscape developers had commented "this is likely to be hard". I thought to myself "How hard can it be, it's just programming" and dived in... and have never fully emerged :-).

I've mostly worked in the same areas all the time since then; I focus on the Gecko modules that perform layout and drawing of Web pages. I've picked up some additional responsibilities along the way. Very early I was pulled into the "drivers" team ... I think I was selected partly because people in Netscape were desperate to show some non-Netscape people involved in governance and there were few really strong external contributors back then. That team has disbanded but I still do many of the same things. I also do a lot of code reviews and try to help people get involved in the project. Since I joined the Mozilla Corporation formally in 2005 I've been recruiting for and running the Auckland development office.

5. When did you begin contributing to open source project and how did
you first connect to open source (e.g. magazines/newsletters, bulletin
board systems, conventions, clubs, etc...)

Before working with Mozilla, in 1998 I wrote "Teraterm SSH" which was the first graphical SSH client for Windows. Actually I wrote the SSH support as an extension to the existing Teraterm terminal emulator --- I suppose this was my first experience with open source, although Teraterm wasn't technically open source since redistribution of changes was prohibited without the author's permission. A few years later the author disappeared so that permission could no longer be obtained, which scotched my project and serves as a lesson about why the open source freedoms really matter!

6. What Mozilla projects have you worked on? In what capacities have
you worked? Have you primarily assumed a single role? [If you worked
on multiple projects, have you played a similar role across them?]

I've always worked on Gecko. I've made small contributions to what are now Firefox and Thunderbird. I try to focus on code-level activities such as fixing bugs, implementing new features, and rewriting subsystems, because they're the most fun, but I am also a module owner, code reviewer, triage monkey, and thorn in the side of management. I guess with the Auckland office I also function as management sometimes. Those roles are pretty much limited to Gecko, when I touch Firefox it's only as a code contributor.

7. Do you generally work alone or within groups? How is the division
of labor generally determined? Who is in charge?

My work is loosely coordinated with a number of other people. I review a lot of work by other people and other people review my code, although the programming effort is usually done alone. I work a lot with our QA people to get bugs reduced and analyzed. Most of the time people just know what's important and what they should work on, although near the end of each release cycle we have a more formal structure using Bugzilla flags to track what has to be done, and people who aren't working on that stuff will be asked to explain (if they draw a Mozilla paycheck; volunteers can always work on whatever they want, although it might not be accepted just before a release). Sometimes I will ask Mozilla employees or volunteers to work on something specific and try to persuade them that it's important.

8. How do you generally communicate with people you work with? What do
you generally use each of these methods of communication for?

We use Bugzilla to track specific issues, both bugs and features. We use the Mozilla wikis for documentation. We chat on IRC about immediate issues we're facing. I talk face-to-face to coordinate the people in the Auckland office. We have weekly phone meetings about Gecko as a whole and also Firefox as a whole. And I use email a lot to have longer-running conversations that don't belong in Bugzilla, and also as an aid to monitor Bugzilla for review requests and bug activity.

9. How important are comments in the code to the smooth development of
Mozilla software? Can you give an example?

Pretty important but I don't have an example right now. A lot of times you really wish the original author had left a comment and it would have saved you a lot of time compared the original effort invested. On the other hand, comments aren't a panacea; it's better to write simple code without comments than to write complicated code with lots of comments. It's also important not to clutter up the code with useless comments (e.g. "int rowBottom; // the bottom of the row") and especially to avoid *wrong* comments.

10. Is strict ownership of specific areas of code enforced? Can you
give an example of how this works or doesn't work?

We definitely try to always know who's the maintainer of each area, but it's hard because sometimes people leave the project or get overcommitted. This was especially bad early in the Mozilla project when a lot of Netscape employees left, sometimes because they got rich from options and no longer had to work, sometimes because they got fired as Netscape went down the drain... So we have areas of code that have been poorly owned or unowned for a long time and this is very bad for the project. The text editing code is one example of that although it's getting better.

11. How would you describe your programming style? Have you ever
clashed with any other Mozilla developers over a particular point of
How did you resolve this problem?

I don't know if I have a specific programming style. Over the years I've learned to search for the simplest code possible, although I'm not always successful at finding it. Sometimes I clash with other developers over that; as a reviewer it's easy to say "I think there's a simpler solution to this" which doesn't leave much recourse to a developer who can't think of one! Sometimes those have to be resolved by the reviewer just jumping in and writing the code themselves. On the other hand, I have never fully overcome the "programmer's optimism" that once you've bashed out some code it will just work, so my programming (and reviewing) is sloppier than it should be.

A lot of software development relies on judgement calls instead of hard facts. That is inevitable, and it means there will always be disagreements between software developers. The important thing, especially in open source and distributed development, is to develop a thick skin and enough people skills that you can easily cope with such situations. It's also helpful if you don't care too much so you can compromise when necessary.

- Show quoted text -
"He was pierced for our transgressions, he was crushed for our iniquities; the punishment that brought us peace was upon him, and by his wounds we are healed. We all, like sheep, have gone astray, each of us has turned to his own way; and the LORD has laid on him the iniquity of us all." [Isaiah 53:5-6]

Robert O'Callahan to Giny

Mar 26

1. Have you noticed any tension between those who work on the front
end and those who work on the back end? How much communication and
coordination is there between these different aspects of the project?

There's some coordination but not as much as there probably should be, and it leads to tension when front-end requirements aren't communicated to the back-end team in a timely manner, or the back-end team screws them up :-). There are also problems when back-end features need front-end UI and those requirements aren't communicated properly. Another source of tension is that back-end Gecko tends to be locked down much more and much sooner than front-end features and it feels frustrating when front-end features keep landing while we can't work on back-end features anymore ... although I think it has to work this way. Overall though I think the relationship works pretty well.

2. I understand that during the early development of Firefox, CVS
access was restricted to a very small team. Why was access restricted
to this small team? How was it decided who could participate? Have
access restrictions changed over time? If so, how? Does this differ
from other Mozilla projects?

Access to Firefox front-end was restricted to that team because they perceived that a lot of the Mozilla developers inside and outside Netscape were weak. They also were frustrated with what they perceived as overly onerous review requirements, and wanted a sandbox where just a few people they trusted could work without much review. I don't know how particpation was decided or exactly how that changed over time, since I wasn't part of that group. Since then we've relaxed review requirements a bit in some modules and the special CVS restrictions for Firefox have disappeared, perhaps partly because the Firefox front-end team has completely changed.

3. To what extent has Mozilla relied on the work of volunteers?

To a great extent. A little less so now than in past years, as MoCo has grown and been able to hire more developers (including a lot of the volunteers), but in Firefox 3 I can still point to key parts of the front and back ends that were implemented by volunteer developers for this release, along with lots of more minor patches that all add to the quality of the product. Also, there is now and has always been a great reliance on volunteers to file, triage and analyze bug reports. Even recently we've seen a bunch of new volunteers pop up and do great work.

4. Why do you think other people volunteer?

There's a variety of reasons. A lot of people volunteer because they want particular issues fixed in their browser. Others volunteer because they're interested in the technology or the software process and want to have fun or learn more working with it. Other people volunteer because they think the Web is important and want to build a better open source browser.

5. Why do you think Mozilla, in particular Mozilla Firefox, has been
able to attract a large number of users? What sets it apart from other
open source projects? What sets it apart from other Mozilla projects?

I think the main reason is that Microsoft stopped working on IE for a few years and that opened a window of opportunity where there just wasn't a very good, free browser in the market, so when Firefox appeared it filled a huge need and that helped us get past the big usage barrier that new browsers face: if few people use your browser, then most sites won't test with your browser, so sites don't work and few people want to use your browser... Once we got past that barrier we have kept growing by staying ahead of IE in security, features, performance and usability and enjoying increased word-of-mouth ... growth breeds growth.

6. The Spread Firefox website states that Spread ffx was "founded on
the same principles of community involvement that drive the
development and testing of Firefox." How do open source principles
influence marketing techniques? Do you see marketing as something
coders can do or does this require marketing experts? Have there been
clashes between developers and the more business oriented efforts?

I don't know much about marketing as a discipline. I think developers can actually be quite good at strategic thinking; we know what works and what doesn't in code, and can come up with ideas for features that might woo users or Web developers, although those ideas need scrutiny from marketing and other departments. We can also warn about features or problems that are likely to turn users or Web developers away. As part of the open source community our developers, including me, do find ourselves representing the project and "marketing" it to potential volunteers or code users. I also like to attend Web-related conferences and talk to Web developers about what we're doing and encourage them to work with us.

I think most developers understand that money helps the development process a lot, and as long as it's not being wasted and we're not doing anything evil to raise money, more money is useful to have!

7. Chase Phillips has described the Mozilla Corporation as "opaque"
and lacking "knowledge of where the place as a whole was headed." What
do you think about that characterization? How does it square with your
own experiences?

I'm not really sure what he was referring to. Mozilla is a big community and it does get chaotic and hard to keep track of what's going on. Some of that is just a necessary part of being a successful truly open project. There are secrets within MoCo, which is unfortunate in some ways but a necessary part of what we do; when we work with big companies they tell us stuff they expect to be kept secret, and keeping those secrets is probably worth the chance to work with them. I think the internal transparency of MoCo is pretty good, much better than at IBM or Novell as you'd expect since MoCo is a much smaller company. I think our vision for Mozilla is reasonably clear for the short term, and I'm not a big believer in long-term strategic visions, as long as we know what our mission is and stick to it, so I'm not worried about that as far as MoCo is concerned.

8. How would you list Mozilla's priorities? How does this compare with
its priorities in 1998? [If different, ask: describe how priorities
have changed over time?]

Nominally the priorities haven't changed --- we want a free and open Internet with healthy competition in Web browsers, not dominated by any one company, and a standards-based Web. The strategic priority of building a great standards-compliant Web browser that is widely used also hasn't changed. I think since Mozilla became an independent organization, there's been a new goal of building a strong organization for the long term so we can keep pursuing our goals for a long time. And I think Mozilla's activities have branched out so we're involved in a broader variety of activities to meet our goals, e.g. better Web developer evangelism, working with governments and companies more at a policy level, buildling a stronger developer and user community, and taking a broader geographic focus.

9. What is your vision for Mozilla moving forward?

At a low level, I want to keep doing everything we're doing, but do it better and faster. At a higher level, we need to keep Web standards and our engine moving forward together so that people aren't attracted away from Web application development over to development for proprietary plugins such as Flash and Silverlight. We need to keep taking market share from Internet Explorer so we have more influence and Microsoft is less able to slow down Web evolution. At an even higher level I want Mozilla's mission to percolate into the consciousness of the general public so the public at large, beyond just using Firefox, understands why our vision for the open Internet is important to society.
- Show quoted text -

"He was pierced for our transgressions, he was crushed for our iniquities; the punishment that brought us peace was upon him, and by his wounds we are healed. We all, like sheep, have gone astray, each of us has turned to his own way; and the LORD has laid on him the iniquity of us all." [Isaiah 53:5-6]

Robert O'Callahan to Bernd, Uri, Giny

show details Mar 31

Please see the final set of questions below.

1. What (if anything) do you think the popularity of Firefox will do
for the open source software movement as a whole? Do you think open
source techniques can be applied to other areas of production in
today's society?

Open source depends heavily on zero (or near-zero) incremental cost of manufacturing and distribution each unit of your product. So it will work best for information, and I think it can be broadly applied there.

I think Firefox has helped open source gain credibility in the end-user software area. We probably could do better to educate our users about the importance of free software principles.

2. Recently there has been much discussion over Mozilla's decision to
change it's support of Thunderbird. A few months before this Ben
Goodger even went so far as to write, "The Mozilla Corporation should
rename itself the "Firefox Corporation", since that is clearly what it
is for."
How do you feel about these decisions with regard to Mozilla's focus?

The Web is by far the most important component of the Internet so I think it's completely appropriate that Mozilla give most attention to Firefox as we try to preserve and promote the openness of the Internet. Even email is increasingly Web-based; I switched all my mail to GMail years ago. Having said that, Mozilla is continuing to invest in Thunderbird so I don't think there's anything there for people to complain about.

3. Have you contributed (as a volunteer or employee) to any
non-Mozilla open source projects? If so, to which ones and in what
capacity did you participate? How did those experiences compare to
your work experiences at Mozilla?

I created Teraterm SSH, a BSD-licensed extension to the Teraterm terminal emulator that was the first graphical SSH client for Windows. That was fun but the open-source aspect didn't really matter because there was no community, just me.

I contributed some patches to GNU ld to speed it up. That was fun too but quite a small contribution.

I've contributed some patches to cairo.

These were all pretty good experiences and not all that different to what we do in Mozilla.

4. Do you have experiences working on commercial products? How did
those experiences differ from working on open source?

Not really. I've worked on some research projects that were closed source (some were open-sourced later). Working on something you own completely is kind of fun since you always do exactly what you want. On the other hand it's also less fun since you're on your own or maybe just in a small team.

5. How would you define open source? How would you define a successful
open source project? What elements or practices do you see as
necessary for developing a successful open-source project?

I think the "four freedoms" are a very good definition of the essence of open source/free software --- http://www.gnu.org/philosophy/free-sw.html

"Successful open source projects" sounds ambiguous to me, and I don't know what you mean by it. It could either mean just a "successful" (widely used, profitable, good-quality) software project that happens to be open-source, or it could mean that it's particularly successful in its open-source-ness. The latter would mean that it has a broad community of contributors (not just one company or organization), that community keeps getting new members, and that the community works together to plan and execute the development of the software in the open, with sigificant contributions to planning and execution from all segments of the community.

6. Do you consider open source software projects as public service?

Yes. Open source software is a public good.

7. What's the future of open source?

I hope that over time more and more infrastructure will move to open source. I don't expect custom limited-use applications to become open source --- I don't think all software needs to be open source. The hardest area of infrastructure to crack is going to be desktop operating systems. Desktop Linux, or something like it, is really important but needs to improve a lot. I hope it does improve. Open source Web browsers and the move to Web applications will help because if all the apps you use are Web apps, it's easier to move from one desktop OS to another. Of course I also hope that open-source software stacks win in mobile as well.

8. Outside of current employees and key developers, is there anyone we
should talk to who we probably don't know about already?

I don't know who you know about. You might want to talk to Uri Bernstein (uriber@gmail.com) and Bernd Mielke (bernd_mozilla@gmx.de), longtime contributors who could tell you some interesting stories, especially Bernd.



[Anonymous], Mozilla Digital Memory Bank, Object #7585, 15 May 2008, <http://mozillamemory.org/detailview.php?id=7585> (accesed 9 April 2021)

Dublin Core Metadata

Title: Text Interview: Robert O'Callahan
Creator: [no creator]
Subject: [no subject]
Description: Email interview with Robert O'Callahan.
Publisher: [no publisher]
Contributor: [no contributor]
Date: 2008-03-31
Type: text
Format: .doc
Identifier: [no identifier]
Source: [no source]
Language: En
Relation: [no relation]
Coverage: [no coverage]
Rights: [no rights]