Three years as a Hibernate Developer Advocate
Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Wouldn’t that be just awesome?
Well, Hypersistence Optimizer is that tool! And it works with Spring Boot, Spring Framework, Jakarta EE, Java EE, Quarkus, or Play Framework.
So, enjoy spending your time on the things you love rather than fixing performance issues in your production system on a Saturday night!
Introduction
Three years ago, I started working as a Developer Advocate for the Hibernate team at Red Hat.
Each year, I write a new report to summarize the accomplishments for the Hibernate project and its community. If you’re curious about the previous year reports, check out the
- 2017 report – 2 years as a Hibernate Developer Advocate
- 2016 report – 1 year as a Hibernate Developer Advocate
Even more development
Typically, a Developer Advocate does not do lots of development on the platform they are advocating. However, over these 3 years, I’ve been adding many performance optimizations like:
- IN query padding,
- Criteria API literals,
- Session-level JDBC batching,
- Introduce the
hibernate.connection.provider_disables_autocommit
configuration for RESOURCE_LOCAL transactions
Apart from new features, I also fixed bugs and integrated Pull Requests from the community. All in all, in these 3 years, I managed to get into the Top 4 contributors for the Hibernate ORM project.
Hibernate forum
At the beginning of 2018, the Hibernate project got a new Discourse-based forum. The UI is much better than the one offered by the old forum, and you can authenticate with Google, GitHub or Twitter which is very convenient for our users.
The new forum has got more traction than the previous one, so it was a very good move that we migrated to this Discourse-based forum:
One major problem with the Hibernate forum was the lack of activity. There were many unanswered questions prior to joining the team. This is what people used to think about the Hibernate forum in 2015:
That was sad! If you don’t take care of the community, people are going to walk away. After I became a Developer Advocate, I decided to make the forum a priority as the forum’s user statistics confirms it too:
If you have any question about Hibernate and want it to be answered by the actual Hibernate developers, then the Hibernate forum is the right place to ask your question.
Hibernate documentation
Prior to joining the Hibernate team, this is what Java developers used to talk about Hibernate documentation on Reddit:
or mocking on Twitter:
Hibernate docs pic.twitter.com/F6I6izGJPZ
— Andrii Rodionov (@AndriiRodionov) April 20, 2016
Again, that was really sad and needed to change!
The new User Guide is light years away from the previous one since I decided to rewrite it from scratch. For instance, nowadays, you can find explanations for every single JPA and Hibernate annotation.
And, all the hard work paid off!
Spending 3 months for rewriting Hibernate docs seems to pay off now. https://t.co/WNHGXan6Fd pic.twitter.com/9FRuVswEFx
— Vlad Mihalcea (@vlad_mihalcea) June 25, 2016
I like the changes in the @Hibernate docs (ORM and Search) a lot.
— Michael Simons (@rotnroll666) September 15, 2017
Collaborating with the Spring team for a much better framework integration
This year, I’m happy Spring 5.1 extended the previous read-only transaction optimization to deallocate the entity detached state as soon as possible. For more details, check out this article.
As I Developer Advocate, I want Spring and Hibernate to work as best as possible because the vast majority of Spring users are also our users.
All in all, I think that improving our collaboration with the Spring team has also paid off:
How cool is #oss. When 2 different frameworks coordinate releases so the end users don't feel the pain if upgrades https://t.co/FKNAma9BmR
— Filip Hrisafov (@filiphr) February 27, 2018
Thanks to #Hibernate ninja @vlad_mihalcea, we now can build #SpringData #JPA against all of its versions… 👏👍 https://t.co/Ky7QdjdeeQ
— Oliver Drotbohm 🥁&👨💻 (@odrotbohm) December 7, 2016
I submitted this Pull Request which should fix HHH-10778. If it gets integrated, it will be available in 5.4. https://t.co/FYWsqk8w98
— Vlad Mihalcea (@vlad_mihalcea) November 29, 2018
Going to conferences
In 2018, I talked about Hibernate and Data Acess best practices at various conferences:
- JAXCON, Mainz
- J on the beach, Málaga
- jPrime, Sofia
- JDK.io, Copenhagen
- JavaZone, Oslo
- Voxxed Days Cluj-Napoca
Check out these presentations for more details about these talks.
Thanks for following us!
The GitHub stars graph shows a 20% increase over the last year:
The red arrow shows the date when I got hired. The happier the community, the more successful a software project becomes.
This is how the Hibernate Twitter stats page looks now:
From around 8200 followers at the end of 2017, we now have over 11.5k Twitter followers. Thanks for following the Hibernate project!
Conclusion
All in all, working as a Developer Advocate is a great journey, and I’m looking forward to the next year to come. Stay tuned for more great content about your favorite Java data access framework and JPA provider.
