In the early years, he worked on the JavaMail API, the HotJava Views product, the Common Desktop Environment, the Solaris operating system, and all versions of SunOS. In more recent years, Bill became one of the primary architects of Java EE. Within the JCP program, he served as Spec Lead to revise the Java EE specification, leading JSRs 58 (Java EE 1.3), 151 (Java EE 1.4), 244 (Java EE 5), 316 (Java EE 6), and 342 (Java EE 7). He has also acted as Maintenance Lead to update his earlier work through JSR 904, JavaMail Specification; JSR 919, JavaMail; and JSR 925, JavaBeans Activation Framework 1.1.