An Interview with Dion Almaer
Dion Almaer, a British expat living in Silicon Valley, tries to build user experiences that developers care about at Mozilla in a role that allows him to think about making life easier for Open Web developers.
"I believe that the Open Web is not just the best platform ever to have been created, but that it is just the beginning. It will eclipse proprietary platforms and the world of the desktop and Web will merge. For the first time in history, the developers will control the platform instead of one company."
What part of the world do you currently reside in?
Palo Alto, CA. However, I got there via: London -> Minneapolis, MN -> Boulder, CO -> London -> Boston -> Madison, WI -> CA. I have lived in every timezone in the continental US :)
Are you married/have children?
Married to Emily (almost 10 years) and have one 2 year old named Sam.
I am old school ;) I like the likes of Peter Gabriel, New Order, David Bowie, and artists that don't come out with new albums often :(
I have a strange relationship with food. I like Indian (onion bhargi!), Pizza (thin crust), sausage rolls, fish and chips (Lobster Pot in Redbridge), and british crisps.
How long have you been a web developer?
I started web development when I attended the University of Minnesota. This made the Gopher folks, which was created there, angry and mad that they screwed up and missed the revolution (they tried to license the technology and it wasn't as good or open as WWW). We are talking 1994/5 time frames.
Where do you currently work?
I work in a new Developer Tools lab at Mozilla, with my long time conspirator Ben Galbraith (co-founded Ajaxian with me).
What is your favorite programming language?
I like Prototype for medium size applications that need a little sugar. I like jQuery for munging a web page. I like Dojo for doing a large application. The new frameworks like SproutCore and Cappuccino are very interesting too.
Favorite code editor?
I have a few. IntelliJ for Java, and even some Web functionality. Textmate for dynamic languages and simple editing. vim for quick edits. I used to live in Emacs (read email and newsgroups and more) I am also thinking a lot about this and wondering if an editor could live online. I want it to be just as fast as a desktop application, collaborative, command-based and self-editable like emacs. I am excited about the state of editors for 2009 and beyond.
What applications are always running on your computer?
Of course, the browser is first and foremost. I run Minefield (Firefox Nightly) and WebKit nightly. Quicksilver is my first install for the Mac. Adium. Textmate as we said. NetNewsWire (haven't been able to make the switch to Google Reader for some reason), and a few more.
Mac, PC, or both?
Mac for years. PC via VMWare Fusion for testing, and reminding me why I switched.
What is a typical day for you?
I have a double schedule. These days, Ben and I hit the gym in the morning on the way to work. We get going early. We try to get back home in time to spend dinner and fun with the kids, and then have another coding session at night. I also do Ajaxian late at night and schedule posts for the next morning (since being on the West coast).
Have you written any books?
I co-authored Pragmatic Ajax with Ben and Justin Gehtland. It badly needs an update.
Are there any others on the way?
Not for awhile. It takes too much time, and we have fun projects to share. Also, after blogging, tweeting, and podcasting, it feels like I type a book a week ;)
Do you have any programming pet peeves?
"I am going to use the Foo design pattern today" and general over engineering.
How do you keep up to date with the latest developments of the web?
I have trained myself to be an RSS reading machine, and optimize via social tools like Twitter/FriendFeed. It takes too long :/
You know several programming languages, which one was the hardest to learn? the easiest?
There is the language, and there are the libraries. It often doesn't take too long to learn a language as it is just syntax. It takes longer to learn new idioms, and even longer to learn libraries. Every time I learn a new language I take the idioms back to the old ones (e.g. using Closures in Java).
How did you learn? Did you have any formal training?
I switched from Chemical Engineering to a Computer Science degree at the UofM, but that didn't help me half as much as just getting interested and coding. I joined a healthcare startup while at school, and also worked on the Web Registration system for the university.
How and when did you become interested in web development?
Right from the beginning. It was just so easy to do compared to desktop proprietary systems. I was used to building Unix applications at school and woooooah it was way too hard!
When designing for IE, do you even bother with IE5?
I haven't had to for a loooong time. Thank god. These days I want to push people to upgrade ;)
Most fulfilling experience as web developer?
The first time I see users enjoying anything that I have built. From the great community at Ajaxian contributing, to students registering for classes, to healthcare systems getting more efficient.
Ajaxian used to be really ugly. It is still not as we would like, but you know the proverb about the shoe maker and his kids shoes....
Are you working on any pet projects in your free time?
I always have a couple. At the moment I am focused on a few projects coming out of the labs group, but also like to explore. Some examples are App Discover, an addon that tries to help the browser discover web applications. Geometa, a shim that lets you use the various geo location API's coming out.
Best advice for new developers?
Have fun! Explore what the browsers are letting you accomplish these days. Don't live in the world of 1997 with Ajax 1.0, but build for the future. (And OK OK, make sure it works for your users).
We tend to get obsessed with the technology and the libraries and frameworks. It makes more sense to focus on the user experience and use the tech to make it possible.
Purchase His Book
Pragmatic Ajax: A Web 2.0 Primer
- Subscribe to the NETTUTS RSS Feed for more daily web development tuts and articles.