Java Evangelism at Microsoft: Interview with Yoshio Terada

Today I am kicking off an interview series with people who are using or developing Java solutions on Azure. I have a number of people already in the pipeline, so this should be a regular series. If you want to be interviewed, please get in touch with me!

My first interview is with Yoshio Terada, a Java Champion, JUG leader, and Java evangelist working at Microsoft Japan. I’ve known Yoshio for a long time, as we overlapped our careers at Sun Microsystems and Oracle. Yoshio has had a very long affiliation with Java, so it is my pleasure to interview him below, and I hope you enjoy!

Yoshio Terada

Hi Yoshio – can you please introduce yourself to everyone?
Thank you so much for providing me this great opportunity. I have been working as a Java Evangelist at Microsoft Japan since July 2015. I am also one of the board members of the Japanese Java Users Group.

Before I joined Microsoft, I worked as a GlassFish evangelist at Sun Microsystems Japan. After acquisition of Sun by Oracle, I worked as a Java/Java EE evangelist at Oracle Japan for five years. My work at Oracle Japan involved planning, managing, and speaking at many Java related technical conferences and events in Japan, such as JavaOne Tokyo, Java Day Tokyo, and Japanese Java Users Group events. In July 2016, I became a Java Champion.

So you’ve been at Microsoft for a while now – much longer than me as I just joined in December, but we both have a relatively similar career background – I also was at Sun Microsystems and then Oracle, but I was over in the engineering organisation. I’d be interested in hearing your impressions of Java at Microsoft, and perhaps if you have any sense of how Microsoft has changed over time with regard to Java?
In the past, I never thought that I would work at Microsoft, because my background was focused on Unix and Java. However now Microsoft is a cloud platform company, there is a focus not only on .NET, Windows, and Office, but also we are strongly promoting Unix and other programming languages. Already over 30% of the systems on Azure are running Linux, and on these systems many customers are using Java on Azure. For example, Pivotal Cloud Foundry on Azure, Service Fabric on Azure, OpenShift on Azure, and Kubernetes on Azure. There is a lot of selection for Java developers to run their services on Azure now.

What does a normal day look like for you as a Java evangelist at Microsoft based in Japan?
Recently as a Java evangelist, I have joined many HackFests for customers. A HackFest is working on actual business improvements for customers. It means that after the customer has me sign a NDA, I am given access to the customers source code, and I will give advice or modify the source code for the customer to make improvements. Using my experience with Azure, I will advise the customer on architectural options for running their systems on Azure.

For example, one recent customer wanted to migrate their existing on-premises Java web application to containers on Azure, but at that time they didn’t know Kubernetes well. During the hack fest with the customer, I worked closely with them to teach them about how to operate and create the Azure Container Service on Azure. As a result, they could migrate (‘Lift & Shift’) the existing system in only five days. I could help from both a development point of view as well as an architectural point of view. As a result, the customer was very satisfied with the outcome of this HackFest.

This is something that Java customers all over the world can take advantage of. For readers of this interview – if you are using Java and want to work closely with a Java evangelist such as myself to better use Azure, please contact me or ask for your local area’s evangelist to discuss a HackFest. Also, now that I’m joining the global organization inside Microsoft, if a customer requests for me to join their HackFest, I may be able to join regardless of location, throughout North America, Europe, Brazil, and many other locations world wide.

Is Microsoft and Azure relevant to a Java engineer or an organization that is based around Java (or languages on the JVM like Kotlin, Scala, etc)?
Yes, Microsoft is really relevant to Java developers today. There is a lot of focus going into Java SDKs. Also, even though there is no SDK for some services, many services provide RESTful interfaces, enabling any programming language to access these services. For example, If you are using Office 365, then you can control Office 365 by using REST calls.

You’ve probably built some cool demos and tutorials over your time at Microsoft. Do you want to talk about any projects or github repos that readers might want to explore?
Not all of my work is online, but I’ve uploaded many demos and samples to my GitHub repository.

One of the most recent demos included many interesting technologies (I published a set of slides, in Japanese, here). At that time, I showed only one demonstration, which used the following technologies.

In a Slack group I could then ask the Bot Framework (which is running in Azure Functions for Java) questions like the following: “Please increase the number of pod for account service”. From here, the Azure function would invoke LUIS and analyse the sentence and determine which intent is most appropriate. As a result, the account service will increase the number of pods on Kubernetes for Azure.

If I say “please decrease the number of pod for customer service”, then the “customer-service” in kubernetes would be decreased. In this way, I am operating Kubernetes on Azure from a chat bot.

On top of this, I showed a Microsoft Translator demo. As opposed to the above, where I typed text, this demo allowed for voice input. For example, if I spoke to Microsoft Translator and said “Please increase the number of pod for account service” or “please decrease the number of pod for customer service”, the software would handle increasing or decreasing the number of pods on Azure Container Services.

All of the above was created using Java, and makes use of a number of Azure services available to Java developers.

Being an evangelist (or cloud developer advocate like I am) is a balancing act between outward interactions with users of the product and inward interactions with teams inside Microsoft. I think all developer advocates have different preferences along this spectrum – I find myself a lot more inward facing, focused on improving developer experience through docs, improved APIs, etc. Where do you find yourself along this spectrum, and how do you prioritize your day to day work?
For me, I like to interact with developers and customers directly. Of course, I often find places where we need to modify the API or improve documentation, so when necessary I am also busy doing that.

Even today, a lot of customers don’t understand a lot about CI/CD, microservices, cognitive services, Azure Functions, Microsoft Translator, IoT, PowerBI, etc, so I like to explain how to use these technologies to Java developers.

Azure has so many services these days, and many of them are really amazing. Are there any in particular that you’re exploring in more detail at the moment, and what is your favourite service overall?
This is a very difficult question, because Microsoft technology and the global technology trend is changing extremely fast, compared with the past. Just now the demonstration I discussed above consists of a number of my favorite and recommended technologies. However not only Kubernetes, but also Pivotal Cloud Foundry and Openshift are both very interesting.

Especially, if the customer owns a huge data center in their company, I recommend them to use Azure Stack. Pivotal Cloud Foundry also runs on Azure Stack. So if they would like to reduce the cost of management, Azure Stack become one of the solutions for them.

Microsoft isn’t historically known for its support of Java – but I think more recently Microsoft has made huge strides in truly believing in open source. When you talk to Java engineers and introduce them to Azure, what are their impressions?
About two and half years ago, I joined Microsoft Japan. At that time already some developers and engineers felt that there had been a change inside Microsoft. However in the last two years, I felt that the impression of Microsoft is changing even more. When I communicate with customers and community members, I get positive feedback from almost of them.

In particular, I get a lot of positive feedback about Microsoft from an AI technology point of view. When I saw Satya Nadella presenting the AI prototype at the Build 2016 conference, I was really impressed, and I shared the video to all of the Java developers around me. This video showed how we engineers can change the world when we imagine the possibility. It was great! It’s also really impressive how all of the Microsoft Cognitive services can also be used from Java applications.

When I give the demonstration of cognitive services to other engineers for the first time, many said to me that they would like to try this.
I thought that this technology can change the world, and also I thought that this kind of technology can change the future of the company.

Thanks so much for your time Yoshio! Do you have any other final words that you want to share with the community?
For the last two and half years I’ve been working at Microsoft, many tools, technologies, and services have become available for Java developers. For developers, Visual Studio Team Services (VSTS) is the entry point to manage and control source code. Depending on the team, you can use the build and deploy pipeline on it. Of course, if you are familiar with other CI/CD tool like Jenkins, you can access to it from VSTS.

For Microservice developers, you can create the container environment on such like Azure Container Services (AKS), Azure Container Instance (ACI), Pivotal Cloud Foundry and OpenShift.

More over, if you would like to create IoT, BigData, NoSQL and so on, we(Microsoft) provide the service for all of them.

I’m thinking that if we can imagine the great future of the world, we engineers can change the world! And I would like to spend time with all of the great Java Developers. I Love Java!

Java desktop links of the week, February 19

An extremely quiet week this week – only a few links which will make for very quick reading 🙂 Enjoy!

Java desktop links of the week, February 12

Apologies for being missing in action last week – I was in Shanghai and trying not to freeze 🙂

  • Brian Hudson has a post about Kubed, a visulisation DSL for JavaFX that looks very interesting.
  • Peter Rogge has released Lib-Validation 0.2.0. Lib-Validation is a library for easy validation in a JavaFX / Maven application. New in this release is the constraint ‘NewDuration’ and its corresponding validator ‘NewDurationValidator’.
  • Jens Deters has released MQTT.fx 1.6.0 with support for Google Cloud IoT, as well as a number of bug fixes.
  • Altran Group have open sourced their Robot Framework TestFX library.

Java desktop links of the week, January 29

Can you  believe that January 2018 is already almost over?!

On saying Thanks

The open source community is (by and large) a great place full of excellent people wanting to improve the world in some small way. Companies today recognise the value of open source, and contribute a lot of their work to public code repositories (e.g. I spent nine years at Sun Microsystems / Oracle working on OpenJDK, and now at Microsoft the Azure SDKs are all on GitHub). Outside of companies, many people working on open source projects are unpaid and are motivated for various non-monetary reasons (working on a challenging problem, filling gaps in something that they like, learning new technologies, etc). These people are real heroes – they dedicate hours upon hours of unpaid time, often doing tedious things that would otherwise be classed as work – bug triaging, documentation, release planning, etc.

I was clearing out my inbox today and I came across this email I received back in November when I announced I was leaving Oracle and joining Microsoft. For me, when I do open source, I do it for all the reasons above (learning, team work, filling gaps, growing, tech leadership, etc), and while this is unpaid, there is an important lesson that a lot of people should remember – sometimes the best payment is a heartfelt ‘thank you’. The email below is far more valuable to me than almost anything else, because it means I helped and did the right thing.

If you are in a position to thank someone in the open source community for their work – please do it, you’ll make their day.

Here’s the email I received, with some identifying details redacted 🙂 In any case, thanks so much to the person who sent it to me – it really made my day!

Hi Jonathan,

I just saw your tweet and your blog post about you leaving Oracle.

I’m quite astonished by the news but every thing comes to an end eventually. I just wanted to take this occasion to thank you properly for what you did over the years.

I ended my studies in <country> 4-5 years ago and I was a fresh new engineer with basically no experience in real coding and in open-source project.

4 years ago, I started working on JavaFX and tried to implement <a UI control> for the company I still work in. Now that I can look back with my experience, I realized I never had a shot at thanking you. I recall that I came to you with an early/primitive <UI control> and you offered me the possibility to integrate it into ControlsFX.

From that moment, you were very kind to look over my code, to correct my mistakes, to give your opinion, to guide me. You even modified some of the core JavaFX code so that the <UI control> could exist.

I realized that most of the skills I have now are coming directly from your advice. I learn to write clean code, good API, to make some decisions. But also to be patient, to explain to others and be kind to them. You know better than anyone that some people are a bit rude sometimes on open source project and they sometimes take for granted some things.

But you were always professional, clear and you took the time to explain things properly. Your blog post is an example of it.

When I started, I wasn’t sure about development, whether I was going to like it. Coding in my company and learning by your side has been a real pleasure. You were kind of the “tech leader” I was missing in my company.

When ControlsFX had the Duke’s choice award, I was really thrilled and excited. I’m really proud of what ControlsFX and the <UI control> has become. I always try to apply what you (implicitly) taught me, help the others, guide them. It’s not always easy but at least I’m trying my best.

I honestly don’t know how you managed to work at Oracle, and to work on so many open source project, and to maintain a blog, and to have a wonderful family!

I don’t really know where this email is going, but I just wanted to thank you very much. Just know that everyone in my company, in my family and my friends know your name ;). I hope that we will keep in touch, and I wish the very best for you in the future. Although I’m not concerned at all because I know your skills! I also wish the very best to your family and children.

I’m just sad that I couldn’t meet you in real life and properly thank you. But maybe it will happen one day!

I’m sorry for this messy email but I’m writing everything as it comes to my head. My english is still kinda bad but I’ll try to improve it I promise.

Cheers,

<name withheld>