Every week here and in our newsletter, we feature a new developer/blogger from the DZone community to catch up and find out what he or she is working on now and what's coming next. This week we're talking to Asankha Perera, Founder and CTO of AdroitLogic. He's also an author in our 2014 Guide to Enterprise Integration, out now! Some of his most recent posts on DZone include:
1. What have you been working on lately?
At AdroitLogic I have been mainly working on our customer projects lately, where I review the architecture, design and also the code that we deliver. At the same time I oversee our team finalize the API management product 'API Director', which we will release soon.
2. You seem to identify mostly as a developer within the Enterprise Integration space. What are some of the most enjoyable and least enjoyable things about coding for EI?
I was lucky to be one of the first beta users of a commercial ESB in 2005 at a US based customer location, where I was involved in bench-marking its performance against a traffic management appliance. Although the ESB offered much flexibility against the appliance, its performance suffered since it ran on top of a JEE application server. I was keen to try, how non-blocking IO would help a Java based ESB without JEE, and I joined WSO2 in 2006 to function as its ESB architect. Through this, I was involved with the Apache Software Foundation, and contributed code to the Apache Synapse project and ended up writing about 70% of its codebase, which was used within the WSO2 ESB. However I was not a fan of using a SOAP framework as the basis of an ESB, and did not believe in moving to an OSGi based foundation for the ESB.
After I left WSO2, I functioned as an independent consultant for about two years, and one of the first experiments I did was to remove all that was related to SOAP from the Apache Synapse codebase. This was the throw away POC I tried out first to validate what my intuition said was possible. The POC came out very well, and I started developing the UltraESB from scratch on my own, using only a carefully handpicked set of core dependencies such as the Apache HttpComponents and the Spring framework. I introduced Zero-Copy with NIO for extremely fast HTTP/S proxying for the first time. I learn't how to make the best use of the Spring framework underneath the UltraESB, including reusing transaction support, JMS and Spring security for authentication etc. This was the most enjoyable period of my coding life as I would stay up till early hours of the morning and would go to sleep only to get up again enthusiastically to complete the rest, as I couldn't wait until it was done.
Where do you see Enterprise Integration going in 2015 and beyond?
I believe that many enterprises are now using ESB's effectively at its Plateau of Productivity. By next year the time will be right for enterprises to invest more into exposing APIs and facilitate integration with third parties. I do not believe much in hype, nor believe that the first to market always wins. I think what would win in the EI space would be what solves real integration issues for enterprise customers, and some customers still have needs to integrate legacy systems for example.
3. Are there any particular developer tools or resources you couldn't live without?
IntelliJ IDEA is definitely the best IDE I've used! I also use profilers such as JProfiler and YourKit, as well as JConsole and other OS level linux utilities for monitoring applications.
4. Do you have a favorite open source project (or projects) that you've contributed to recently?
The UltraESB is our core product, which is free and open source. And I try to be the benevolent dictator keeping its code and quality at the best. I am also a member of the Apache Software Foundation, and a committer of the Apache HttpComponents project. I always admire how elegantly Oleg Kalnichevski handles some of the most complex parts of non-blocking IO in this project.
5. Do you follow any blogs or Twitter feeds that you would recommend to developers?
DZone is the most useful resource for me, and I use the newsletters to get notified of things that I am interested about. However, I do not use Twitter much.
6. Did you have a coding first love -- a particular program, gadget, game, or language that set you on the path to life as a developer?
I started to program in Pascal and I have learn't Cobol on AS/400 and Mainframes. But leaning assembler both on x86 and mainframes was very interesting, especially the use of TSR's and some of the undocumented DOS interrupts. I learn't Java on my own and have been happy ever since!
7. Is there anything else you'd like to mention?
I started my career as a Software Engineer, and today I am very happy to be driving our company AdroitLogic. Since we are bootstrapped and lead by engineers, we utilize the freedom we have to follow our hearts and do things right, for ourselves and our customers, and we enjoy it!