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 Chanwit Kaewkasi, Assistant Professor at the Suranaree University of Technology’s School of Computer Engineering in Thailand, co-developer of a series of low-cost Big Data clusters, and featured author in DZone's upcoming 2014 Guide to Big Data.
1. What have you been working on lately?
I am an assistant professor at Suranaree University of Technology in Thailand. Basically, I teach undergrad and graduate students, and do research works in computing-related areas.
Recently with my team, we have built a small ARM cluster that is able to process Big Data with Apache Spark and Hadoop. We called it an Aiyara cluster. It is fast enough to digest the whole Wikipedia articles in 38 minutes and yield 9-14 sec. response time for each ad-hoc query. The most important property we've got is that it is low-power. Its operational cost is really economy.
People may wonder why we need an on-premise low-power cluster in the world that we can easily access the powerful cloud computing resources. It's the same idea that we still need a battery, although we have the reliable electricity grid. The public cloud has been compared to the electricity grid. Using the same analogy, you could consider an Aiyara cluster as a portable battery.
From another end of spectrum, we are developing a Web framework and you might get the idea. Every Big Data stack needs visualization. Our team is integrating the front-end technology to the back-end, which is the Spark/HDFS stack.
2. You wrote about building a DIY ARM-based Hadoop cluster in the Big Data Guide. How have you used yours? Have you done similar projects outside of your Aiyara cluster?
Thank you for inviting me to write about the Aiyara cluster model in the Big Data Guide.
Aiyara is our first time to tackle data processing problems with Hadoop. We are using it internally to classify and analyze our student's data for the university. Follow the Aiyara cluster model, we also have plans to build other set of clusters for different problems, such as data stream processing (with Spark Streaming) and real-time image processing (with Spark and CUDA). Beside education, challenge problems in Thailand are Big Data processing for agriculture and water management. They are the problem areas we are trying to solve.
3. Are there any particular developer tools or resources you couldn't live without?
These days, I am editing mostly on Sublime Text, coding in Java, Groovy, AspectJ, Scala and Golang. I am building stuffs with Gradle (even it's a C/C++ project - lol). I am doing web with Grails, ZK and Angular.JS. Ah, I forgot to tell that Spring is still my favorite DI (Dependency Injection) framework.
4. Do you have a favorite open source project (or projects) that you've contributed to recently?
These could be separated into front and back-ends. For the Big Data back-end, our team has patches locally that make Spark work on the ARM architecture but haven't contributed back to Apache Spark yet.
For the front-end, I have been working on a Grails plug-in, called ZKGrails, for 6 years. It's basically an integration piece to support the ZK framework on top of the Grails infrastructure.
5. Do you follow any blogs or Twitter feeds that you would recommend to developers?
For Big Data related news, I am following Databricks, a group of people behind Spark. They've recently got some exciting use cases for Spark and those blew my mind.
Naturally, as a software developer, I read design patterns from Martin Fowler's bikis. I am also interested in Domain-driven design and Data-Context-Interaction.
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 found a simple Basic program that drew a picture of a cat at an exhibition somewhere in my home town. When you entered a bigger number, the cat also grew bigger. That was the first time I met programming. It was a children's day in the late 80s.
A couple years later, I was trying to understand how a computer game worked by reading almost 10 pages of Basic codes. After that I tried to make my own game. For the programming languages, I started with Basic, then moved to Pascal (Turbo Pascal), x86 Assembly, C/C++ before I went to Java (and other JVM languages).
7. Is there anything else you'd like to mention?
Try to set a goal beyond your comfort zone and go for it. You'll see the new landscape.