Adrien Plazas got the opportunity to interview the founder of Yorba, Adam Dingle, to chat about his job as a software engineer, Yorba, and open source software.
From Yorba's website:
Adam founded Yorba in 2009. Before that, he worked as a software engineer at Google, where he helped develop indexing algorithms used in Google Desktop. He also lived in Prague for several years, where he taught computer science at Charles University. He holds computer science degrees from Princeton and Berkeley. He likes playing the piano and guitar and travelling to far-flung corners of the globe.
What got you into software development?
Like a lot of people in the field, I started young. :) When I was about 10 years old, my dad brought a book on programming in BASIC home from work. I was hooked immediately and wrote lots of programs out on paper before I even had a computer to run them on! This was in 1979, long before there were computers in every house in the US. Eventually our neighbors up the street got a TRS-80 and I used to go and babysit for them so I could use their computer while their kids were asleep.
How long have you been working in the field?
I first worked as a C programmer in about 1985 when I was 16 years old, so I guess I've been doing this for about 27 years now!
How was your experience at Google?
Google was a great place to work. I loved being surrounded by colleagues who were talented and ambitious and fun. I learned a lot about software engineering at Google and some of our engineering practices at Yorba such as code reviews were influenced by my experiences there.
Which projects in open source as a whole are you the most excited about?
I think Vala is a really promising programming language. For years I've wanted a language that looks like Java or C# but compiles to native code with no virtual machine, and Vala is exactly that. I still think it's a bit awkward that Vala generates C code which goes through GCC, though. I hope that someday someone will rewrite Vala as a front end to LLVM.
I personally am a big fan of the GNOME desktop (though not of GNOME Shell, but that's another story). I'd like to see more progress on GNOME-based office applications which can be used instead of OpenOffice. I use Gnumeric all the time and it's great. Unfortunately Abiword still seems really buggy - I think it needs a lot of work, or otherwise I'd be happy to see a new lightweight GNOME-based word processor take its place. It would be great to have a presentation app, too, but unfortunately both Ease and Glide seem to be dormant at this point, with no code commits in over a year.
I'm also excited about Yorba's projects, but you probably knew that. :)
I created Yorba because I wanted an organization that could bring free media applications to the next level.
What led you to create your own development foundation?
I was frustrated with the limitations of media applications (such as photo, audio and video apps) on the free desktop - I felt like they were a decade behind similar applications on Mac OS. I created Yorba because I wanted an organization that could bring free media applications to the next level.
Why a foundation rather than a business?
It seemed like the natural model for developing free software. Plus we had no idea how to make money with our projects. :) Actually our business structure may be changing, though. The Internal Revenue Service has not granted Yorba tax-exempt status. That's a long story - if you want to know more, you can listen to an interview I gave for the Free as in Freedom podcast a few months ago. That means there's not much financial advantage for us to be a non-profit group at this point. Meanwhile, we've started doing consulting work related to our free projects, so we actually have revenue now. For these reasons Yorba may transition to being a traditional for-profit company at some point this year.
Why did you choose to produce free and open source software?
I like building free software because I like cooperating with others, because I think it's good for the planet...
I like building free software because I like cooperating with others, because I think it's good for the planet and because I myself strongly prefer using software that is free. I remember back at Google working on programs that ran on Windows (such as the Google Toolbar and Google Desktop) and sometimes it was incredibly frustrating to wrestle with poorly documented Windows APIs without being able to see the underlying source code. I never want to do that again. Plus, most free software lives for a long long time. At most companies where I've worked developing non-free programs, the software was only used for a few years and then vanished forever. Even if Yorba closes its doors someday, I'm confident that the software we've developed will continue to be used (and improved) after that, and I like that.
How do you make money: by producing open source software, or do you live only with donations?
No - as mentioned above, we now do contract programming work developing software related to our free projects. That helps pay the bills. :)
Who are your patrons? Foundations like the GNOME Foundation, companies like Red Hat or Canonical, or end users?
All of our donations come from end users, not companies. The contract programming we do is for companies like Red Hat or Canonical.
Yorba is now successful (Shotwell is the default photo manager in great GNOME-based operating systems like Ubuntu and Fedora). In your opinion, where does that success come from?
...we've consistently listened to our users, have had high standards...and have worked hard.
I think we've been successful because we've gotten to know and have cooperated with others in our community - we go to lots of free software conferences such as GUADEC and the Ubuntu Developer Summit. Plus I think we've consistently listened to our users, have had high standards for ourselves in our software development efforts, and have worked hard.
You work a lot in the GNOME environment (GNOME-focused applications, using GTK, Vala, etc.). Who handles these technical choices?
Each project at Yorba has a tech (engineering) lead, who is a senior engineer who leads technical discussions and who makes the final decision on technical points.
What motivates Yorba to start a new project like Geary?
...we wanted an email client for the GNOME desktop that was as attractive and usable as Gmail is in a Web browser...
It's always challenging to decide whether to contribute to an existing free software project or to begin something entirely new. Often the right decision is to contribute to what already exists, but occasionally nothing is close enough to what you really want and so you know it's time to start something new. We started Geary because we wanted an email client for the GNOME desktop that was as attractive and usable as Gmail is in a Web browser, including a conversation-based email interface and lightning-fast searching. And ideally we wanted it to be written in Vala. We didn't think that hacking on Evolution was going to get us there.
What directs your code and user interface design choices?
When in doubt, keep it out.
Regarding code choices, I believe that less code is almost always better. In other words, given two implementation choices, I'll usually prefer the one that results in less code. Shotwell has just reached 100,000 lines of Vala code and our senior engineer Jim Nelson just wrote a nice blog post expressing ambivalence about that. I share his feelings: I don't like programs to be too large.
I guess I feel similarly about user interfaces. I like consistency and usability. I don't like programs that are bloated and confusing. When in doubt, keep it out.
If you don’t mind me asking, what does the salary look like?
I can't answer this question out of respect for the privacy of my employees. I will say that we've been fortunate to have employees who (in the spirit of free software and cooperation) been willing to work for less then they would make at a traditional company, and that I hope we'll be able to pay more if we can grow our revenue.
What’s the work schedule like?
I strongly believe in a healthy balance between work and the rest of life, since I've seen people burn out at software companies all too often. At Yorba every employee gets six weeks of vacation per year (although there are no official holidays, so if you want to take Christmas or New Year's Day off then you need to take a vacation day). I think this is relatively generous by American standards. We rarely work on weekends.
Does your work allow you to go on trips?
As I mentioned above, we often attend free software conferences. Last summer five of us from Yorba were at GUADEC (the annual GNOME conference in Berlin). I personally love to travel, and since Yorba's vacation policy is relatively generous, some of our employees also go on multi-week trips of their own from time to time.
Does your job overrun your everyday life?
Usually not. Of course, we do have to work hard especially before every release of our software (such as now, when we're putting the finishing touches on Shotwell 0.12).
How is the collaboration with other organizations and companies?
I think we have a good relationship with companies behind the major free software desktops including Red Hat and Canonical. We often email each other about bugs and schedules and releases. I'd like us to have a stronger relationship with universities, who should all be using free software in their computer science departments and beyond.
What would one have to do to have the honor of working with you?
If you want to work on our projects as a volunteer, it's easy: join our mailing list, compile our software, read through our bug database and send us patches that fix bugs or implement useful new features. If you want to join us as an employee, well, we're not hiring now, but I hope we will if our revenue grows later this year. The best way to show us that you would be a great employee is to get involved in our projects and send us useful code contributions.
Anything interesting to add?
...people really do want to support projects they like.
I think the biggest challenge for free software development today is to find a way to make it financially sustainable. I think that lots of free software users would be happy to contribute some amount to those who develop the software they use, but we haven't made it easy enough for them to do that. I think that Kickstarter is an amazing phenomenon: it shows that people really do want to support projects they like. The recent success of app stores on mobile phones also shows that lots of small payments can add up to serious money. Those of us developing free software need to learn from these examples and cooperate to build some sort of infrastructure that makes it easy for our users to sustain our development efforts.
Thank you for the interview!
De rien! :)
Ed. Note: This Interview is by Adrien Plazas with an introduction and minor editing by Cassidy James.