Ray Tsang

Google | Developer Advocate

Loves #Java & Cloud. @Java_Champions & @GCPCloud Developer Advocate. Creator of @JDeferred, pioneer of Spring Cloud GCP. Backpacker, snowboarder, photographer.

Ray is a Developer Advocate for the Google Cloud Platform and a Java Champion. Ray works with engineering and product teams to improve Java developer productivity on GCP. Ray also help Alphabet companies migrate and adopt cloud native architecture. Prior to Google, Ray worked at Red Hat, Accenture, and other consulting companies. Ray focused on enterprise architecture, managed solutions delivery, and contributed to open source projects. Aside from technology, Ray enjoys traveling and adventures.


Surviving Dependency Hell with Maven
Dependency conflicts come in many different forms and have different impacts on your applications. This presentation examines common causes of a dependency conflict, how you can mitigate it as a library developer, and how end users can resolve it. Java Champions Ray Tsang and Robert Scholte will share their knowledge, Ray (developers advocate for Google) from the user perspective and Robert (chairman Apache Maven) from the Maven perspective. Join this session to see common issues Ray has observed from working with customers, and Robert’s advise on how to detect issues early. It also covers what Google has been documenting in terms of best practices and what tools it has created to help, based on its learnings.
Lessons Learned Implementing Microservices in Kubernetes
Ray has been on a 6-months rotation with an internal Google team to help bringing a project to public Cloud using cloud-native technology stack and Kubernetes. Ray will share the architecture, development environment technicals, devops tools, and some tough decisions that needed to be made to move the project along while being prepared for changes in the future. This session to learn the journey including development environment tools choices (Docker Compose, Skaffold, Kustomize, Jib), to the stack (Gradle, Spring Boot, Kafka, PostgreSQL, gRPC, gRPC-Web), to mono-repo vs multi-repo, to the runtime infrastructure (Kubernetes, Istio, Prometheus, Grafana). With hindsight 20-20, we’ll visit some best practices, lessons learned, and how decisions/compromises are being made.