Reza Rahman is Principal Program Manager for Java on Azure at Microsoft. Reza has over a decade of experience with technology leadership, enterprise architecture and consulting. He has been working with Java EE technology since its inception, developing on almost every major application platform ranging from Tomcat to JBoss, GlassFish, WebSphere and WebLogic. Reza has developed enterprise systems for well-known companies like eBay, Motorola, Comcast, Nokia, Prudential, Guardian Life, USAA, Independence Blue Cross, Anthem, CapitalOne and AAA using Java EE and Spring. He was also one of the speakers on the Java2Days and CodeMonsters conferences in December.
Mr. Rahman, you are a frequent attendee of the conferences.
Yes, I was a keynote speaker in the first conference many years ago. I think it was 2009. I’ve tried to attend all of them, but obviously it hasn’t always been possible because of scheduling reasons. But I have attended the vast majority of Java2Days.
Back then you had to travel to the conferences, but now it’s all online, so I guess it’s easier to attend more conferences.
Sort of. Speaking at conferences is not my day job, I do it of a sense of community and helping getting the word out and the work that I’m doing on Jakarta EE. Honestly it was a pleasure visiting Sofia every now and then. When I first visited the Bulgarian capital it was an eye opening experience. I had been to Moscow and Russia before, so I had an idea of what to expect. But Moscow is very different. To me it was an amazing experience. So many young people ready to embrace the future and the world. The tech community and the young people there and also the culture and heritage of Bulgaria to me was very impressive. You guys have very strong sense of who you are as people. So I look forward to visiting Sofia once again.
So you are one of the main guys of this conference and a favorite to the audience. What do you think of the first virtual edition of Java2Days and CodeMonsters?
I think it all went pretty well and I’m really glad that the organizers decided to have it. The attendance was very good. For me it really speaks to the tenacity that you had the conference even despite the challenges and in fact people are attending and they are paying attention. Honestly it’s really great and encouraging that you’re not “oh, we have the pandemic so lets take it easy”.
The learning experience is really good, but I want to ask you what about the networking that is really important for the developers attending a conference?
In essence for me the experience was not very different. I’ve been a virtual worker for a very long time so to me working virtually comes really naturally. My colleagues have always been people that I’m speaking remotely to via Zoom, Google, Twitter, Slack and etc. The same is with the developers community. I’m working either on the Jakarta space or the open source space with people all over the world – India, China, Greece, UK, USA and etc. You name it, right? So in that sense it’s not been different at all, it’s been the same. Of course it would be nice to go to a conference now and then to meet people in person, but to me I’ve even had more interactions with people virtually than I had in the past. So it’s all ok. The community is still engaged.
I read that you make sure that java developers are first class citizens in Microsoft and Microsoft is a first class citizen of the Java ecosystem. Even your lecture on the Java2Days conference was “How Microsoft learned to love Java”. So I’m getting the impression that Java is not that popular in Microsoft or at least it wasn’t for a long time.
Obviously not. Most of us know the history of Microsoft and Java back in the 90s and early 00s. Trying to create a basically incompatible implementation of Java and losing the lawsuit and going on creating this entire .NET and C# ecosystem that competes with Java and so on. We also know the battle between Linux and Windows. For those historical reasons Microsoft wasn’t really a very good friend of Linux or Java. It took some time and it took Satya Nadella to came in and begin to change the vision that is saying “ok, we’re no longer in our own little corner with Windows and .NET and all these VB and C#”. The new way of thinking is – we need to open up to the world. So Java was maybe the last major hold of it. Microsoft embraced Linux some years ago and also we embraced Python and JavaScript and all these technology out there. Java was really the last hold of it. So it began to work seriously in the past 5 years. Java in Azure is no older than 5 years. The reality is that we are doing more for Java developers as a result than any other public cloud out there. If you’re a Java developer and you come to Azure, you’re treated with much more seriousness and engagement than any other major cloud platform. The same goes to our partners – IBM, Oracle, VMware and etc. We’re trying to work very close with them because as a major cloud provider, we have to.
And what are the new trends in the Java ecosystem lately? Something new or some sort of improvement?
The Java ecosystem is always moving forward. Some people have been saying that Java is dead for 20 years, but that’s not the case, because we’re always moving forward. There are many different advancements at many different levels. Obviously Java EE used to be a vendor control technology for Oracle truly moving to open source and the Eclipse foundation and then moved forward and began to innovate in the Eclipse foundation. That’s a really big deal and most people are not talking about that enough but it’s significant part of opening up Java as a platform. That’s an interesting development. MicroProfile is an interesting development. To me it’s a way of moving Java EE developers forward while we are doing this complicated and challenging move of moving Java EE to open source and the Eclipse foundation. Also, Quarkus is getting more popular, Helidon, Micronaut. I think the Spring community is innovating here and there also, they’re trying to catch up with Graal, which is also a significant change in the Java ecosystem and IoT. Interestingly I’m beginning to see a trend of people coming back to monolithic applications and architectures. To me this is like Back to the Future moment, because people realize that distributed systems are not for everything. Those are just some of the key trends. I think Microsoft entering the Java ecosystem and doing all these interesting work is also an interesting trend. People may not pay attention but this actually is game changer.
You have developed a lot of enterprise systems for major companies. What are the most important challenges in developing this kind of systems nowadays? For example one of the issues is the maintaining cost.
It’s always more or less the same. Enterprise moves very slowly. It’s a lot of legacy systems, people are trying to adopt new technologies here and there. It’s like window shopping – middle class person going on fifth avenue in New York looking at all the Gucci and other expensive brands. Of course, you don’t buy anything, you just look from outside the store and see all the interesting stuff. To me enterprise developers are sort of like that. On one hand you have to keep an eye of all of the interesting stuff and understand where you can apply them, but in reality you’re dealing with 5 or 10 years old legacy systems and you need to keep them up and running in efficient way. So it’s all the same challenges – scalability, reliability, maintenance, security and etc. These are day to day challenges in writing enterprise systems. Understanding requirements – this is a big one. People often underestimate. Enterprise challenges are not about the latest and coolest technology. They are much more boring, but maybe much more important and much more difficult.