The world's most popular open source database
Arjen Lentz is a former Community Relations Manager at MySQL. He lives in Brisbane, Australia.
João Prado Maia is a Senior Software Engineer for the Internal IT department of MySQL AB. We were lucky to catch him in the wild a few years ago with his project Eventum, which we will talk about more also.
Can you recap how you happened to join MySQL AB?
João: Well, it's a long story. Eventum was originally a commercial product that I developed by myself and I was trying to sell licenses for it on my own. It was about the time that I was getting ready to sell licenses and the Support department of MySQL AB was starting to look for a replacement for its existing issue tracking system.
Jim Winstead did a lot of research on tools to use, both open source and commercial, and he eventually got in touch with me about possibly working for MySQL and help them with this. The talks took a few months, and in the end MySQL AB bought the copyrights of Eventum, and hired me to work on it full time. Working for MySQL AB seemed like a pretty interesting challenge.
It was also agreed that we would release the Eventum source code to the community as a real (GPL licensed) open source project, which we did, and it is now available for use, and getting more popular each month.
You've been very busy with other important projects recently. Who are your direct colleagues and what you're working on now?
I'm mainly in charge of Eventum, the issue tracking system software that is used by our Support department to handle support tickets from our paid customers. Eventum is also used internally by several other departments and groups to handle their tasks and requests.
Recently I was in charge of developing the web interface for MySQL Network. MySQL Network is the subscription service available from MySQL AB that provides access to Technical Support, Knowledge Base, Update Advisors and Technical Alert Advisors that notify you when news related to your personal setup are available, such as new release announcements for products that you use, or maybe even security or bug advisories for third-party products that you use on your company.
I work with Bryan Alsdorf who is the other person also working full-time developing Eventum and MySQL Network. Right now we are working on implementing improvements to MySQL Network, and also handling changes to Eventum.
What task that you were involved with are you most proud of? I suppose we can all guess the general topic, but I'm sure you can add some interesting detail?
I think I'm most proud of the evolution of the issue tracking system throughout the years of 2003 and 2004. A lot of changes happened very fast, and I think we are very stable now, with a good and solid base to rely on to handle support tickets.
Please tell more about Eventum... almost every time I speak at a conference or user group, people approach me about it and tell how much they think Eventum rocks. It seems you have a lot of fans out there! Of course it is primarily a solution for our own support department, but with it being so popular externally as well... where is it going?
Eventum is the issue tracking system that we use in MySQL AB for our support customers. One of the cool things of working with this great group of people is that they are not afraid of innovating when they need some sort of functionality added to Eventum, so on the ~2 years of working for MySQL AB, a lot of exciting features went into it, and are available through the GPL releases of Eventum (download here: http://www.mysql.com/eventum/):
"We have a customer integration API that allows you to integrate Eventum with your own CRM tool, like SugarCRM or even Salesforce.com. Since one of Eventum's goals is not to lose focus on what a good issue tracking system should be, we decided not to have a built-in customer database, and created an API that allows the user to write a PHP script that will connect Eventum to the actual customer database.
"We also have a pretty flexible workflow API that allows you to write custom pieces of PHP code to be called whenever a specific event happens, like when an issue/ticket is updated, for instance. You might want to automatically set a few fields on a database, send a notification to a set of email addresses, or whatever.
"A reminder system gives you a very flexible framework to get alerts when specific scenarios are found. For instance, internally we have a large set of reminders that send us alerts when tickets are waiting too long for a response, or when you might want to check on the status of a bug fix. Since we are a pretty diverse team that works on almost every timezone, we set the reminders to alert on a specific IRC channel that we all use to communicate while handling support tickets. This is a great way to get real-time notifications of tasks that need to be performed.
"Another interesting feature is the possibility to integrate Eventum with a POP3/IMAP mailbox, and use that to receive emails sent to a specific address. We also have an email routing interface that allows you to send an email to ticket+<number>@domain.com, and have that automatically associated with the appropriate ticket number, and broadcast to the staff members related to that particular ticket. It's a great way to keep all of the information really to a ticket saved on a single location, for easy access.
"And tons of other interesting features! ;-)
We are now starting to work on an Eventum Wiki that will be open to the community, and we expect to have some good tutorials and even screencasts showing how Eventum works. Since Eventum is such a large system with so many features, a live demonstration of Eventum is a really great way to show off its potential.
You've been with us for almost two years now. Can you tell us some more about yourself, about your office environment, and what you regard as your biggest challenge in working for a globally distributed company such as MySQL AB?
I'm 27 years old, married, and I live and work in The Woodlands (Texas), USA. I work out of my home, and I have a separate office room that I use for my computer gear.
I like working for a virtual company. The thing I like the most is having the freedom to choose my own hours, and still be able to be productive. The problem is that in a virtual company you don't have as much of the human daily interaction since you work alone from your office. I think this has also been my biggest challenge, with nobody available to discuss ideas face to face - but picking up the (internal VoIP) phone is a decent way to work around that problem.
Is there any relation between your educational background and what you're doing now?
I started a Chemical Engineering major but never finished it. I decided pretty quickly that what I was really interested in was to do programming.
With Eventum, you were using MySQL for quite a while already. But do you remember when you first started using it?
I can't even remember the version of MySQL, but I assume it was a pretty recent one from when I started playing with MySQL in 1998.
Readers, if you're interested in issue tracking systems, do take a peek at Eventum: http://www.mysql.com/eventum/.
For more information about MySQL Network, see http://www.mysql.com/network/.
And for cool jobs at MySQL AB, keep an eye on http://www.mysql.com/company/jobs/.