22 April 2003
Interview with Jeremy White by Brian Vincent

In the spotlight this week is Jeremy White. Jeremy has been involved with Wine for about six years. However his contributions are unique in that programming isn't what he focuses on.

In 1996 Jeremy founded CodeWeavers , the creators of the popular CrossOver Office and CrossOver Plugin products. He lives in St. Paul, Minnesota with his wife and two children. Before starting CodeWeavers, Jeremy founded Holten, White and Associates, a computer consulting firm. You may be interested in some previous interviews with ConsultingTimes about working with Xandros and the Linux Weekly News about CodeWeavers development .

BV: When you started CodeWeavers, it wasn't your intention to work with Wine. How did you get involved?

Jeremy: I started CodeWeavers because I wanted to do interesting work that mattered. One day in 1997, I stumbled across the Wine project (while looking for an Atari 2600 emulator, but that's a different story <grin>). I was immediately struck by the audacity of Wine, and I felt that if Wine could be truly successful, it would help Linux break open the desktop market.

Of course, I have two small kids, and a day job that kept me very busy, so I couldn't do anything more than lurk on wine-devel. But, whenever we would buy tickets for a big lottery jackpot, I'd always fantasize about retiring and just hacking on Wine.

Later, I read an advice column that essentially said: "You have to pursue your dreams." Of course, this was back in the go-go 90's, when that was easier, and back during the first major buzz period for Linux.

So, I decided to completely reinvent the company around the Wine project (as well as the TWIN project, but that's a bit of a sideline). Luckily, I caught Alexandre at a good time, and he agreed to join us, as did a number of the other core Wine hackers. It was touch and go - I distinctly remember telling Alexandre that I wasn't sure I could do much more than pay his moving costs to the states, but we did successfully close a first round of funding, and hence CodeWeavers focus on Wine was born.

BV: How many people work at CodeWeavers, and how many work on Wine development?

Jeremy: There's about 20 people (it's a funny number; we have a number of part time contractors who come and go). About 12 work on Wine in some way.

BV: Are there any Wine developers you wish worked for you but don't?

Jeremy: Absolutely. And no, I'm not naming names. But the more people we can help to work full time on Wine, the better, as far as I'm concerned. There is plenty to do <grin>.

However, I am absolutely thrilled with the group we have now. I have never in my life worked with as great a group of people as we currently have at CodeWeavers.

BV: The two CrossOver products seem quite successful. Has it been a little less stressful this year when it comes to financials?

Jeremy: 2002 was a good year - not fantastic - but a good year for us.

The initial reaction to CrossOver Office was phenomenal; we were very tight for cash, and the sales of CrossOver Office literally saved the company.

However, we're not (yet) swimming in money; every month is still a struggle. Part of that, though, is that we've all agreed to hang together because there is so much we want to do.

I am very hopeful that 2003 will be the year we really start to fly. There is so much I want to do on Wine this year.

BV: Anything you can share?

Jeremy: Oh gosh. None of it's really secret. There's the obvious: Office XP, Access, MS Project, Photoshop, WordPerfect Office, AutoCAD, all the Macromedia stuff, and so on.

Then there's the less obvious: I really want to make enough money that I can sponsor a Windows application compatibility center. The idea would be to buy up every single title of software we could find and have a dedicated staff that a) tested and retested until every app installed and came up to the main menu and b) regression tested each new rev of Wine to make sure it stayed that way. So many apps are usable if you can just get 'em over the first hump. I want to destroy the hump.

Then there's performance: get some good optimizations going, maybe play with a kernel module.

I'm really excited by the game development; I think what Lionel et all are doing is fantastic.

BV: CodeWeavers has done a lot of contract work for other companies interested in Wine. What's been the most successful project you've worked on?

Jeremy: That's a tough one. We've done a lot of projects over the years, and there have been a lot of good successes. We really enjoyed MusicMatch; they were great people to work with. Unfortunately, it didn't work out for them (the demand was much less than expected).

My personal favorite is probably a small project we just finished for Legal Aid of Manitoba. It was not a lot of work, but we helped them continue to use some legacy Win31 code that wouldn't work well on Windows XP. They were great to work with, we were able to help them in a simple and cost effective manner (not always the case), and everyone is happy. This kind of choice is what Wine and Free Software is all about.

BV: MusicMatch has bundled their software with tons of products. Did they ever include the Linux version? Or was it strictly for download only?

Jeremy: I think they may have; they tried to move it in a variety of ways. The honest truth, I think, is that there wasn't enough interest.

BV: And are there any failures you'd care to share?

Jeremy: Probably our greatest disappointment was with Corel's WordPerfect Office. Corel was forced to ship that earlier than any of the developers liked; the product ended up with bad reviews as a result. Before Corel gave up the Linux market, we had a version going that was *much* nicer. It hurt to watch that wither. It particularly hurt because Corel was great to work with.

I think that WordPerfect Office for Linux could still be a viable product if the timing had just worked out differently.

BV: How important was the work done by Corel?

Jeremy: They did some really great work, particularly around COM. They also did a lot of work which helped make Winelib a better possibility.

Most importantly - they gave it all back, with no reservations. They were nothing but a great citizen, in my opinion.

BV: Your products now come with several different distributions. Are there any companies you work more closely with than others? Or do you just provide everyone with the same code and let them sort it out?

Jeremy: We're really still new to it; we're building a great relationship with both Xandros and SuSE. However, we really want Wine (especially CrossOver <evil grin>) to become widely distributed and used, so we're always talking to new distributions.

We do work closely with each partner to make sure it integrates smoothly. Basically, the key value (beyond Wine) that we provide is spit and polish, and to do that right, you have to work with the distributions.

BV: Xandros now has Win4Lin bundled with it. Doesn't that directly compete with CrossOver?

Jeremy: Well, yes and no. It certainly is a competitor in many ways, but there are a good range of things that Win4Lin does that Wine cannot (yet). Similarly, CrossOver integrates into the OS in some nice ways that Win4Lin cannot.

I think what Xandros has done is given their customers more options, and that's the greatest thing about Free Software - all the choices you have.

BV: You now have the server edition as well as the normal CrossOver Office. Do you have a preference between corporate users versus home/small business users?

Jeremy: I love our single end users; they are consistently the most supportive and enthusiastic of our customers. However, the reality is that, if we thrive, we will receive a large chunk of our revenue from corporate users. And, in a way, helping a company to move is even more satisfying than just helping one individual.

BV: TransGaming has a unique subscription process that seems to focus on improving support of specific games. How do you guys go about figuring out what applications to support? To what extent is your development driven by the customer?

Jeremy: The honest answer is that it's currently a completely subjective process. We work from customer support requests, from customer comments, and most of all, from cases where customers commit cash to solve a particularl problem.

With that said, I think TransGaming has done a nice job with their system, and we are planning to add a voting type of facility to our support system in the fairly near future.

BV: It seems like a lot of Wine work involves very careful reading of licensing. Do you guys keep a team of lawyers on hand to review your projects?

Jeremy: Well, back when we still had a lot of money, I spent a fair amount of money on lawyers. These days, I'm the in house expert on license agreements. And I have become far too good a student of Microsoft licenses. That's a job I wouldn't wish on my worst enemy.

BV: If you could add one feature to Wine, what would it be?

Jeremy: That's a tough one - I want to add a lot of features to Wine. This probably doesn't count as a feature, but what I really want to do is open a 'Wine testing center' and go buy every $9.99 bargain bin Windows program I can find and make every single one of them install and come up to the main menu.

BV: Creating Winelib apps would appear to be an important feature. Do you think it will be used more or will it remain a niche project?

Jeremy: You know, I'm not sure. Winelib remains my personal passion. In fact, when I was new to Wine, I was equally enamoured of TWIN, because, at the time, it was much better at source porting than Wine was. (Okay, TWIN was a mistake. I blew it. But we did penance - Francois did a really nice job on winemaker, and really getting Winelib fixed up).

However, over time, I'm gradually beginning to accept that running an .exe file is really no different than the same code as a Winelib application.

So, Winelib really only becomes crucial for ports to non x86 architectures. Which I still think is cool, but is maybe a smaller part of the cool than I originally thought.

BV: In addition to everything else, you're pretty active on the CodeWeavers support mailing lists. Does that consume a lot of your time?

Jeremy: I don't have a problem with email. I can quit any time. <grin>

I tend to answer on the support lists on the weekends, and late at night, when no one else is 'working'. I particularly like getting involved in the beta tests. It's something I enjoy, but it does take a lot of time. But I don't get to code anymore (see below), so what else am I gonna do?

BV: How do you select people for beta testing? Do you go through several cycles, or is everything pretty cleaned up by the time it hits beta?

Jeremy: We throw darts <grin>. Seriously, we pretty much ask for volunteers on our discussion list, and those that volunteer get put on the beta list. We cull the beta list of folks that don't help out from time to time. Initially, we tended to beta things when they were pretty far along in the process, but lately, we've been doing more alpha quality testing (in part due to tester demand <g>).

BV: Final thoughts?

Jeremy: Probably the greatest irony of what I'm doing is that I started out with the dream of going and hacking on Wine - and I never get to do any coding at all. Instead, my job is selling, business development, and administrivia. And, when I submit a patch, Alexandre rejects it out of hand because he doesn't like my comment style...<grin>

But I wouldn't trade it for anything - we're doing really cool work that really matters (I just need winelauncher to stick around for a while, so I can get credit for something <g>).