Who is this Josh?

Who am I? Or, perhaps more importantly, why should you care what I say about design. Why don't I address the former question first in hopes that you forget about the latter.

I'm Josh Marinacci, a software engineer. My brief bio starts with graphics programming at an early age on an Apple IIc my mom borrowed from her school for the summer. By age 14 I was coding up my own simple overhead dungeon games on my 286 in GW-Basic and VB.

I earned a bachelors in Computer Science at Georgia Tech (class of 1997). I specialized in GVU: Graphics, Visualization, and Usability. Ga Tech was one of the first universities to have such a program, something I consider a great asset. It was there that I first learned Java thanks to my favorite TA, Ian Smith, getting me a copy of the early betas; and since then I've coded almost exclusively for the Java platform.

After graduation I spent about 9 months as an intern at Xerox PARC (thanks again to my favorite TA), which I would definitely consider a formative place in my career. While I was just a code wrangler for the researchers, I had an amazing opportunity to see early versions of e-paper, blue lasers, MEMS (the tech behind things like on-chip accelerometers and embedded compasses), and computing embedded into non-traditional devices (from skyscraper i-beams to stuffed animals). After PARC I worked in a few startups before the Dotcom bust, then spent a few in large companies working on UIs for enterprise software. Growing tired of JSP programming started writing articles for Java.net on a variety of topics, but focused on GUI programming.

In 2005 co-wrote with Chris Adamson the book Swing Hacks, for O'Reilly, focusing on the cool ways you can push Swing to the limits. Swing Hacks led to my position at Sun where I have worked in a variety of positions, including improvements to the Windows Look and Feel for Swing, the NetBeans GUI builder (Matisse), and then joined the JavaFX team as soon as it was announced in 2007. Since then I've worked on a visual design tool, the JavaFX Doc tool, personally wrote about half of the launch samples, and endless JavaFX demos.

My current position (as of 2009) is leading the desktop client for the Java Store, which we hope will unlock the doors for millions of Java developers to make money selling their dream apps to the desktop, mobile devices, and TVs. Throughout it all I've focused on graphics and usability, with a renewed interest in scenegraphs, 3D transitions, and how to make user interfaces better.

What do you know about design?

So now to the second question, why should you care what I say about design? Well, I'm not a designer at all. I am a software engineer through and through. I know some tips and tricks for building UIs but I'm not a graphic designer, and I'm certainly not an artist. I couldn't draw my way out of a paper bag.

What I do have is a passion for great user experiences. Software has come a long way in the past 30 years since the dawn of graphical user interfaces, but we still have such a long way to go. Most software is still horrible compared to real world analogs. No one asks how to use a new car. No one is worried about filing cabinets spontaneously losing data. We buy cars with sexy outlines, but (until recently) we don't buy desktop software with outlines that a designer slaved over for 3 years.

Despite these failings, software is an increasing part of regular life. Soon almost every facet of your existence will be mediated in some way by software. This makes it our responsibility as software engineers to create products which protect, serve, and delight our users. If we can make even a small improvement in the usability of software through this website, then the results will be well worth the effort.

Talk to me about it on Twitter

Posted July 20th, 2009

Tagged: Introduction