In this post, I’d like you to meet Thorben Janssen, a long-time Hibernate user and blogger.
Hi, Thorben. Would you like to introduce yourself and tell us a little bit about your developer experience?
Hi and thanks for having me.
My name is Thorben Janssen. I’m 36, married and father of a small son. I’m also a trainer, blogger, and developer with a strong focus on JPA and Hibernate and a CDI 2.0 expert group member.
My career started more than 15 years ago with an internship and the development of various small PHP applications for mobile phone operators. It didn’t take long until I joined the rest of the development team and started to work with EJB 2 and JBoss application servers. In the beginning, that was a painful experience. EJB 2 was hard to learn and created a dislike for XML files that still exists.
But it also got me into Java EE and the implementation and design of large systems. And that’s what I’ve been doing ever since. During these years, I also managed small to mid-sized development teams and acted as an architect. But I always was and still am a Java EE developer at heart who’s spending as much time as possible in the IDE. I think that the interest for new things and the tools he/she is using is one of the key characteristics of a good developer. I always read about upcoming specification changes or new, proprietary features in their implementations and try them in small side-projects. At some point, I started to share my knowledge with my co-workers, and it led me to my new passion: teaching others by writing and speaking about JPA and Hibernate.
Your site, Thoughts on Java, features a great deal of JPA and Hibernate tutorials. Why did you decide to write about this topic?
That happened more or less by accident. As I said earlier, I’ve always worked on backend applications, and the persistence tier is an important part of these.
I’ve always been interested in ways to make the database access easier and more efficient. Simple read and write operations should be easy to implement. Our customers don’t pay us to read some records from the database. They expect us to solve complex business requirements.
I spend a huge part of my career learning about and even more time implementing efficient database access with Hibernate. When I started my blog, I was looking into the changes introduced in JPA 2.1. I found a bunch of useful, new features, like
@NamedEntityGraph, stored procedure calls, and
AttributeConverter. I wanted to document them so that I could easily use them in future projects.
As soon as I shared links to my posts on social media, I was surprised how many developers shared my interest in these things. Hibernate and JPA were my main interest and became the main topics of my blog. That was 3 years ago, and the blog has now grown to more than 100.000 page views per month, a free member library with ebooks and cheat sheets and a small YouTube channel.
It also provided me the opportunity to speak at conferences and offer classroom and online trainings.
Currently, you decided to run your own training business. Could you please tell us more about it and how it’s been going so far?
At some point, this was the next logical step. I started with a small side-business and gave a few classroom workshops. At the beginning of this year, I did my first Hibernate Performance Tuning Online Training. There was a lot of interest and it quickly grew to a point where I wasn’t able to work my day job, write the blog and offer training. My wife and I then decided that I should quit my day job and concentrate on my own business.
So far, that was a great decision. The last 2 months were hard but I also had a lot of fun. The additional time allowed me to finally launch the free member library (a project I wanted to work on since the end of 2015) and a new Hibernate Training.
In my new Advanced Hibernate Online Training, I explain a lot of advanced JPA and Hibernate features that you can use to create dynamic, type-safe queries, support custom data types, implement multi-tenant applications and manage concurrency. I’m also offering the Hibernate Performance Tuning Online Training in which I show you how to find and fix performance issues. It’s the online version of my 2-day classroom training, and we dive deep into various JPA and Hibernate features that allow you to fulfill high-performance requirements easily. You can have a look at some lectures in this free video series.
I’m offering both trainings 2-3 times a year with a self-study and a group coaching option. The self-study option provides you lifelong access to the training videos so that you can study at your leisure. The group coaching offers several benefits on top of that, like access to the community forum to discuss your questions and additional exercises. This makes it similar to a classroom training and more effective than the typical online course.
The registration for both trainings is currently open, and you can join until November 11th.
What are your plans for the future? Will you continue to write about Hibernate or do you also want to write about other topics?
There are a lot of other interesting Java EE-related topics. But for now, I will focus on JPA and Hibernate. I still have a long list of interesting features I want to write about and I just started to publish Hibernate-related videos on my youtube channel.
The next big projects will be a 3rd Hibernate training and a book. The 2 existing trainings are for experienced Hibernate users who want to deepen their knowledge and learn to use it more efficiently. The 3rd training will be for Hibernate beginners who want to learn how to map a database table to an entity and how to perform simple queries. I want to work on that in the first half of 2017.
We always value feedback from our users, so can you tell us what you’d like us to improve the Hibernate projects (ORM, Search , Validator, OGM) or are there features that we should add support for?
I like the new Java 8 support you introduced with Hibernate 5. From my point of view, the support of the Date and Time API is a must for modern persistence frameworks and features like repeatable annotations and the support for Streams and Optional make it much more comfortable to use.
The 2 features I’m missing right now are better support for subselects and discriminator-based multi-tenancy. JPA and Hibernate provide only basic support for subselects. It would be great, if you could use them in the SELECT and FROM clause and not only in the WHERE clause. The discriminator-based multi-tenancy support seems to be already on your list, and I’m looking forward to it.
Thank you, Thorben, for taking your time. It is a great honor to have you here. To reach Thorben, you can follow him on Twitter.