Me, My Books, and My Code
I am Josh Marinacci: manager, developer advocate, software engineer, researcher, usability expert, and general miscreant. I have a passion for great user experiences. I live in Oregon with my wife and kiddo. I'm currently helping to keep the Web open and free at Mozilla. I also write bad sci-fi short stories.
I speak professionally at conferences world wide and have written many technical articles for publications like Java.net, the Java Magazine, and the Palm Developer Blog, and Embedded Computing. I have also published three books: Swing Hacks, Building Mobile Applications in Java, and HTML Canvas: A Travelogue. See more on my writings page.
Contact Me
You can reach me through
Biography (semi-briefly)
My brief bio starts with graphics programming at an early age on an Apple IIc borrowed from my mom’s school during the summer. By age 14 I was coding up a simple overhead dungeon game on my 286 in VB (scandalous!). I earned a bachelors in Computer Science at Georgia Tech (1997), specalizing in Graphics, Visualization, and Usability. It was there that I first learned Java thanks to my favorite TA, Ian Smith, getting me a copy of the early betas.
After graduation I spent 9 months as Xerox PARC intern, 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 teddybears).
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 I 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 five years at Sun where I worked on many projects; including improvements to the Windows Look and Feel for Swing, the NetBeans GUI builder (Matisse), the doc tool and launch demos for JavaFX, and countless JavaOne demos. Finally I spent a year leading the desktop client for the Java Store.
After Sun I spent two years as a Developer Advocate for webOS at Palm. Though webOS has had a tragic history at HP, it’s still my favorite OS and I continue to support the Open webOS efforts.
In early 2012 I joined Nokia as researcher playing with fun future stuff like Bluetooth LE beacons, crazy Arduino things, embedded interfaces, and smart city technology.
After three years at Nokia I left to head up the Developer Relations team at PubNub, where we grew the team, grew our web traffic, and educated thousands of developers about PubNub's technology.
At the end of summer of 2017 I joined Mozilla to do my dream job, keeping the web open and free. My focus is on VR and AR, but I get to touch all things web. I spent three years immersing myself in VR & AR, first as a developer evangelist and later as an engineering manager for the content team and the Hubs team.
In August of 2020 Mozilla laid off 25% of its workforce, including me. I'm currently looking for a position managing a small (5 to 10 people) team of engineers or developer evanglists.
Throughout it all I’ve focused on graphics and usability, with a renewed interest in scene graphs, interactive ebooks, mixed reality, and how to make user interfaces better.
Portfolio
After pver 20 years in the industry I’ve worked on a variety of both commercial and open source projects. Here is a curated selection. As you can see my passions circle around community building and beautiful user interfaces.
Mozilla Hubs, 2020
Hubs is Mozilla's VR social platform. You can form rooms, voice and text chat, share videos/gifs/music, and customize your avatars. You can also create new rooms using the Spoke editor, and host your own instance of Hubs on AWS.
WebXR Viewer, 2019
There was (and as of August 2020 still is) no browser on iOS that implements the WebXR web standard. Our prototype browser solves this problem. It wraps and extends WebKit with an ARKit backed implementation of WebXR. It is live in the iOS App Store.
ECSY, 2019
ECSY is a renderer agnostic Entity Component System for Javascript. WebXR applications tend to be closer to video games than traditional web-apps, so using a framework like ECSY makes your apps faster, more reliable, and easier to test. ECSY-three is a set of ECSY Systems that bind to ThreeJS. ECSY-Two is a set of bindings for HTML Canvas 2D graphics.
WebXR Content Feed, 2020
Firefox Reality loads up the page webxr.today by default. It contains a (sometimes updated) collection of WebXR content that users might find interesting. The old content feed was slow, buggy, and hard to improve. I managed a contractor who built a new feed on the Heroku + Postgresql + Node + React stack. We could not renew the contract, so I finished up the code myself. I handed the project over to the FxR team, but unfortunately the layoffs happened before the new homepage went live.
MrED, 2019
MrEd was a visual editor for WebXR experiences. I was manager and lead designer on this project. We started with the concept of Hypercard: anyone should be able to create interactive stuff using direct manipulation and simple metaphors. Using Glitch, React, ThreeJS, and a CRDT networked protocol a group of middle schoolers were able to build some great apps using MrEd. Read all about it.
Swing Hacks, 2005
I co-wrote Swing Hacks for O’Reilly with Chris Adamson. It shows 100 ways to push Swing (the standard Java UI framework) to the limits and beyond. Though the book is over 8 years old now, it is surprisingly relevant as more and more people need to improve their Swing applications to look and feel modern, and meet the needs of a modern userbase.
HP TouchPad Launch, 2011
For nearly a year the webOS Developer Relations team worked to improve webOS and the development experience. For the launch of the first webOS tablet device, the HP TouchPad, we worked directly with developers to get their apps ready for the launch, and brought feedback about issues and bugs back into the core engineering team. At the launch on July 1st 2011, we had more than 300 apps specifically for the TouchPad in the catalog; which was significantly higher than Android 3.0 and the PlayBook at their launches. We continued to grow the app catalog and increase developer sales even after HP’s announcement to no longer manufacture it’s own webOS hardware.
HotApps promotions, 2010
I lead the creation of two webOS HotApps promotions. These were competitions for our developers where they would win cash for having the highest sales or downloads (for free apps) in a certain time period. To support the promotion I also built a custom website to display the current winners as well as tracking who was moving up and down on a daily and weekly basis. The site had a custom webservice to let others embed the content in their own websites, as viral marketing.
Sun JavaStore, 2009
I was the client architect of the Java Store at Sun. This was a full application store with a server backend to sell Java applications directly to end users. Though Oracle later canceled the project, we went from initial concept to first payment in 9 months, including 3 redesigns of the user interface using the then new JavaFX technology.
JavaStore predated the Mac App Store by a year and featured browsing & searching, an app showcase, and drag & drop app installation with reliable in-place updates.
JavaFX launch, 2008
I was the developer community leader for the JavaFX launch. I organized a team to build 40 samples in time for the launch, including building about 20 of them myself. I was a JavaFX evangelist for it’s two first years, traveling around the world to present sessions on the topic as well as building JavaOne main-stage demos. JavaFX is now a core part of the JDK under Oracle.
Netbeans GUI Builder, 2007
I spent a year improving the NetBeans GUI builder for Swing apps. We integrated the then new Swing App Framework, letting developers create, bind, and view actions throughout their application. I also created a new visual menu builder to replace the old tree configuration tool.
Swing Windows Look and Feel, 2005
I spent my first year at Sun improving the Windows Look and Feel for Java 6. Our goal was to have pixel perfect fidelity of Swing applications to their native equivalents, which we achieved for both Windows XP and the then unreleased Vista operating system. We received rave reviews for improvements in native fidelity. This involved endless off by one pixel adjustments. Notice the baseline of the UI controls before and after:
before
after
Leonardo Sketch, 2008
Leo was an open source vector drawing tool. It lets users create simple diagrams and artwork, exporting to PDF, SVG, HTML Canvas code and much more. Leonardo Sketch is fully cross platform and standards compliant. Currently Leo supports basic shapes, stars, bezier curves, gradient and texture fills, and drop shadows. It also had Twitter and Facebook integration, and translations into several other languages. Leo could also be used as a minimal presentation tool.
Posted August 22nd, 2013
Tagged: