+1 I like the static methods for creating the builder
Also makes perfect sense to make the applicationId and masterSecret part of the sender.

PushSender client = DefaultPushSender.withRootServerURL("http://aerogear.example.com/ag-push")
                .proxy("proxy", 8080)
                .proxyType(Proxy.Type.HTTP)
                .build();
PushSender client = DefaultPushSender.withConfig("/path/on/classpath/push-config.json").build();
PushSender client = DefaultPushSender.withConfig(inputstream).build();