Over a million developers have joined DZone.

Dev of the Week: Claus Ibsen

DZone 's Guide to

Dev of the Week: Claus Ibsen

· Java Zone ·
Free Resource
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 Claus Ibsen, principal software engineer at Red Hat focusing on Apache Camel and ActiveMQ. Some of his most recent DZone posts include:

Thanks for talking to us! What have you been working on lately?

At my day job I work as a software engineer at Red Hat working on middleware technologies, using a number of Apache integration projects such as Apache Camel, and ActiveMQ. These are the two main projects I work on. Together with a number of other projects outside Apache, which I talk about later.

Recently at Apache I have worked on the latest releases of Apache ActiveMQ and Camel.

I have been working with these Apache projects for almost 6 years, of which 5 as a full time professional open source developer.

As enterprises continue to grow, they face new integration challenges. Through your work on Apache Camel, what are some of the biggest integration problems, and where are they appearing?

Let me say first that integration is everywhere. Today's IT landscape is a myriad of disparate IT systems that needs to be integrated, and expose services to a ever growing number of clients that come in more and more shapes and sizes.

I think there are big problems that challenge the people and the technologies, for the everyday engineer and consultants to navigate that landscape, and figure out how to do integration with ever-growing systems and clients.

Gone are the days when you had to build custom integration platforms and frameworks. Today you need to use existing ones, and thus need to learn how to use and configure these to meet your needs. On the way you may have to add skills learning how to participate and work with these open source communities, so you can have your "bugs and feature requests" implemented. I talk about later of the importance IMHO of getting involved in communities.

On the technology side, there is the challenge with the "Internet of things", where billions of devices need to be inter-connected. These devices have the potential to generate tons of data (for example, sensors), so there is a problem how to ingest all that data, and "make sense" of all that data. So we have challenges with data ingestion and big data.

Of course the cloud is impacting both the people and technology.

For example, with virtualization and cloud-like infrastructure impacts the operations team, who need to learn how to master this.

At Red Hat we are working on these challenges. For example with the JBoss Fuse product we have an integration platform for the cloud called iPaaS. Its based on an open source project called Fuse Fabric.

So what about Apache Camel and Fabric?

So let's step back a moment. Apache Camel is an integration framework (library) that makes integration between different IT systems much easier. Camel was created before the cloud era and was built as a very lightweight and runtime agnostic framework; whereas Fuse Fabric is a particular runtime integration layer for using Camel, ActiveMQ and CXF inside clouds like OpenShift, OpenStack, jclouds and recently with Docker, etc.

Fabric is developed by some of the same people that gave us Camel and ActiveMQ. Very knowledgeable people. So you can also view Fabric as the modern cloud technology for using Camel, CXF, ServiceMix, and ActiveMQ, with your applications.

Are there any particular developer tools or resources you couldn't live without?

I use IntelliJ IDEA as my main editor. I have been using that for over a decade, and love it.

A couple of years ago I switched from TextMate to Sublime Text as my general purpose text editor. Love that too.

I also heavily use IRC chat in my work, so Textual is a great IRC client.

And for the occasional Java JVM profiling I find myself using YourKit and the Eclipse MAT for heap dump analytics, etc.

And then the unix shell command line.

And I may also have to praise GitHub for having a very easy-to-use project repository. Love the interactions with commenting on the pull requests and the consistency it offers across all the projects; so it's familiar to peek at other projects.

Do you have a favorite open source project (or projects) that you've contributed to recently?

Yeah, hawtio (http://hawt.io/) -- hawtio is a relatively young project (almost 1 year since the 1st commit). It's a lightweight and modular HTML5 web console project. It's using all the latest wizz-bang for modern web UIs such as AngularJS, Grunt, Boostrap, TypeScript (or you can use any JavaScript language of choice).

And I have to mention Jolokia too. It's an awesome Java library you put on the Java server side, that makes all the JMX API useable as it adds a REST facade on top. Huge thanks to the Jolokia team for taking up this task. JMX API is such a pain to use, and having Jolokia on top just sparks lives back into making Java management fun again.

So for many years we have built web consoles for Apache Camel, ActiveMQ, Fuse and ServiceMix. But they didn't share any codebase, and was independent. So end users would have to switch between consoles to have a consolidated overview. hawtio is fixing all that having one consistent consolidated web console, using a pluggable architecture.

hawtio is a GitHub project and a fun place to be. It's using a different set of technologies than what we use with the primary Java-based projects at Apache. So it's a change of heart but great fun, as it's a very visual project, where you can create all kinds of cool-looking (or hawt as we say) UIs for what is happening. Your Camel applications spring to life with live visual diagrams of the routes, showing real-time metrics of what is happening. You can combine any views into custom dashboards.

Do you follow any blogs or Twitter feeds that you would recommend to developers?

Yeah, James Strachan, the creator of Apache Camel, ActiveMQ, hawtio, and the Groovy programming language, and a ton of other open source projects is highly recommended to watch at this blog and Twitter:

And if you want to keep an eye on what's happening in Camel land then ... ehm, I am a good choice:

And Christian, Rob, Dejan and Hiram occasionally blog and tweet about ActiveMQ and a bit about Camel as well:

I also check out DZone on a daily basis, though that is on their website. It seems it's one of the few good programming and Java-related websites left. Well, I am old enough to remember when theserverside was the "place".

I also take a look at StackOverflow once in a while, but it's also part of my duty to keeping an eye on the community of the projects I work on, as well as to get help with some projects I use like netty, AngularJS, TypeScript, and whatnot. And also how to do this in Git.

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?

My first coding experience was coding Basic on the commodore 64. Back then we usually played computer games, but it was amazing to see that you could actually program the computer to do something. I ended up coding a stock trading game which took up much of my time to code.

Later on, the Amiga 500, then the assembly language was my choice, as back then we had the demo-scene; trying to make demos moving boxes and scrolling text and whatnot.

On the PC I enjoyed first Turbo Pascal which was one of the first "proper" languages I learned, and in fact also used professionally in my first IT job, developing a Point Of Sale system using Pascal. Then the Windows UI came and Delphi was our choice.

I have also developed with C and mainframe languages like RPG and COBOL a bit; though mostly RPG.

Groovy is one of my all-time favorite languages. Though I haven't had the chance to use it as much in my day work, I love how Groovy just makes stuff easier and feel more natural and relaxed.

I guess there is a pattern here of languages and projects I find really fantastic, all created by James Strachan:

  • Groovy
  • Camel
  • hawtio

Anything else you'd like to mention?

If you can, try to get engaged in open source communities. It's how I got started many years ago, leading to my new career here at Red Hat. It's a good way to learn a lot of new skills from some of the best minds in the world. You may learn more in a year in these communities than you ever would have with the traditional classroom courses that your company would have you going to, once a year (if you were lucky).

It's also a great way to build up metrics and have a public record of your achievements, which puts you ahead in the future job market. And it's a way of improving your skills to make your
work better and more fun. And seining for yourself how open these communities are, and if you provide a patch, and see that code change gets applied to the code base. That is a great self-motivator to do more, and... then you know you have some of the skills for tomorrow's job market. You are not stuck and left behind, having missed the train, sitting back in your cubicle for a job market that is no more.

Sorry for going a bit overboard. Just trying to say... get involved to learn more and faster, and
don't get stuck behind.

If you are using Camel or ActiveMQ then for sure these communities are very active and we love contributions. If you are good at HTML5 and web UIs then for sure hawtio may be more
sexy for you to try out and get involved.d

Thanks, Claus!

Check out Claus' blog and Twitter!


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}