With 10 years of experience writing desktop applications in Java: I know the inner workings of Swing, AWT, graphics, file IO, action queues, and usability. I was surprised to learn that most developers don't like UI work; I'm an enthusiastic (if amateur) student of interaction design, and I put a lot of pride in the end user experience. (That translates to a lot of UI work.) Ideally the user interface has been an integral part of product planning from day one, but in cases where that is not possible: we can still usually brainstorm ways to improve the usability of a service/application. For code samples and a better feel for my areas of expertise: see my open-source codebase/blog https://javagraphics.java.net/