Jonathan Giles

Jonathan Giles

Talk: The art of building Java APIs: Do's and Don'ts
Company: Microsoft

My name is Jonathan Giles, and I've been in the Java ecosystem for a very long time. I worked at Sun Microsystems / Oracle since 2009 in the Java team. My area of focus was on the API design and implementation for JavaFX. I left Oracle in November 2017 and joined Microsoft in December 2017. In doing this shift I went from being a IC5 (top-level) software engineer at Oracle to being a Senior Cloud Developer Advocate at Microsoft. My role at Microsoft is to work on ensuring our Java offering for Azure is top-notch. Whilst I am a Cloud Developer Advocate at Microsoft, it is only my intent to present the APIs as examples of positives and negatives of API design. I do not intend to provide any form of advertising for Azure, and will be in equal parts positive and negative towards the API. Similarly, from my past experience with JavaFX (and Java in general). I've been a track lead at JavaOne for many years (leading the Java client / UI track), and a frequent speaker there and at other conferences. I am a JavaOne Rockstar speaker, although I am not one to travel around all conferences - I much prefer being an engineer and solving problems internally! Some of my past presentations can be found at I have a few popular blogs, my own is at, and also FX Experience at I'm a contributor / creator of a number of projects - I started the Dukes Choice winning ControlsFX project, for example. More details about some of my projects can be found at

The art of building Java APIs: Do's and Don'ts

Speaker: Jonathan Giles

As developers we build on the shoulders of giants - using APIs developed by others to propel ourselves further forward. We also often find ourselves in the position where we must provide our own APIs for other developers to use. Building a Java API is not without perils -we must know the features of the language extremely well, we must understand the implications of breaking compatibility, we must own many other responsibilities such as creating excellent documentation, and most importantly, we must practice restraint.

This session, presented by Jonathan Giles, will give an introduction to developers on how they should develop their own APIs, whether it be for internal use, an open source project, or a commercial library. The focus is purely on building Java APIs, not REST APIs or anything else! Jonathan has over 10 years experience building Java APIs, firstly at Sun Microsystems and Oracle in the Java team working on Java releases 7, 8, 9, and 10, and more recently he has joined Microsoft as a cloud developer advocate, where he works closely with the engineering teams to improve the Java API offering for Azure.

This session will work through tips that developers should follow, and advice for developers to avoid.