Consulting

Consulting


Get the most out of your data access layer

Want to run your data access layer at high speeds?

  • 1
    Database Essentials
    Do you know how a relational database systems works behind the scenes?
  • 2
    JDBC
    Do you know how the JDBC Driver executes statements and how you can configure it to boost application performance?
  • 3
    JPA and Hibernate
    Adding JPA and Hibernate annotations is fairly easy. But, do you know the performance implications of each JPA or Hibernate feature your application makes heavy use of?
  • 4
    SPRING
    The Spring project offers a great varieties of frameworks that can help you deal with many enterprise application requirements. From Spring framework to Spring Data, Spring MVC and Spring Integration, I can help you get the most out of this framework and make sure you are using it properly.

Who am I?

I'm a Java Champion who wrote a ⭐⭐⭐⭐⭐ book about High-Performance Java Persistence and hundreds of articles about JPA and Hibernate.

Because sharing is caring, I've been answering thousands of questions on StackOverflow about Java, JPA, Hibernate, SQL, and database systems, which brought me several gold badges and a reputation of over 100k.

Besides writing about JPA and Hibernate, I've been talking about high-performance data access frameworks at various international software conferences like Devoxx, Voxxed Days, JAX or JavaZone, and even run workshops at some of the most appreciated software conferences in the world, like Craft Conf.

Last but not least, I'm one of the top contributors to the Hibernate ORM project and launched several open-source projects that are used by hundreds of thousands of Java developers.

All in all, if you want to speed up your data access layer, I'm here to help.

Testimonials

Eyal Iaroslavitz

Eyal Iaroslavitz

Java Software Engineer - CETRA

I had the opportunity to get help from Vlad on a project of ours that required migrating Hibernate from version 3 to 5. Vlad is pleasant to work with and very professional.

 
He guided and helped us all the way until we reached the problem and solved it.

Rufus Buschart

Rufus Buschart

Head of Public Key Infrastructure (PKI) - Siemens

We hired Vlad on very short notice to fix severe database performance issues in a productive software installation. He quickly understood the design of the database of the application and gave us valuable insight on how to optimize the database and the configuration of the application server hosting the application.

Working together with Vlad is pleasant as he is a kind and professional character. I appreciated every call with him.

Florian Hertnagel

Florian Hertnagel

Head of Cloud Services – tado°

We found Vlad through his blog posts about Hibernate and MySQL performance tuning and insights. We are running a JVM application, which serves around 12k requests/s right now, with the load growing rapidly. 


Before moving to MySQL replication or adding caching layers, we wanted to make sure not to have missed any low-hanging fruits regarding Hibernate usage or JDBC/connection pool configuration.

Therefore, we had multiple screen-sharing sessions with Vlad, walking through our application configuration, and also received a written report of his findings.


It was clear very quickly that Vlad is very knowledgeable and experienced. He constantly came up with ideas on what to improve and pointed us to helpful monitoring & management tools.

 
We left off with the trust that we covered our bases well, and with a better idea on which improvements will pay off by how much.

Vikas Bodani

Vikas Bodani

Founder - Web Data Technologies LLP

We were lucky to hire Vlad's services for a day to evaluate the Hibernate data layer of our open source jBilling fork. Vlad had provided effort estimates in advance and a detailed feedback was provided by the end of scheduled day exactly as planned.


The feedback was quite to the point, thorough in terms of domain objects and relationships, prioritized along with explanations. Vlad also allowed an opportunity to seek clarifications later on, which were promptly provided and greatly accelerated the adoption process of these changes in the development pipeline.


We are very happy with the value we received from consulting with Vlad.

Emmanuel Odeke

Emmanuel Odeke

Founder - Orijtech, Inc

Vlad is a talented Java and overall databases/web services expert. For a couple of weeks, I was lucky to be able to hire and work with Vlad here and there on both Hibernate and Spring projects and his insights are great but also I can rely on him to deliver and get things done the right way.


He is very resourceful and a delight to collaborate with. I look forward to continuing to work with him.

Work with me

Besides on-site training, I can also help you design your data access layer or optimize it to run as fast as possible.

System architecture

Prior to working as a Developer Advocate for the Hibernate project, I used to work as a software architect building systems ranging from automotive industry (e.g., Ford North America), to telecommunication companies (e.g., Nokia), logistics systems (e.g., FleetLogis), real-estate platforms (e.g., Etuovi), and data aggregation and analysis (e.g., Brückner).

I can revise your system architecture and provide tips about how you ca optimize it both for performance and cost-effectiveness.

Database design and query optimization

I can analyze your database schema and give you advice about how you can change it to better serve your application requirements.

More, I can help you analyze queries and optimize them to make sure they run as fast as possible.

JPA and Hibernate entity modeling

From basic types to relationships, mapping entities to database tables requires consideration, especially if you want to get the most out of your data access layer.

Some mappings perform better than others, and I can help you make sure you are using the right mappings based on the underlying database schema design.

Service and data layer design

Writing data access layer code is not as simple as it looks. If you want performance, you need to make sure you that:

  • you are fetching just the right amount of data,
  • you are writing data efficiently without more database roundtrips than necessary
  • statements are properly cached
  • you are using a good connection pooling solution and you monitor its usage
  • the auto-generated SQL statements are as efficient as possible
  • transaction boundaries are properly set up
  • you are not using anti-patterns like the Open Session In View, Temporary Session or redundant merging
  • you are using the right transaction isolation level and you understand the possible data anomalies that may occur 

There are many more aspects you should take into consideration when writing data access code, and I can help you make sure your data access layer runs like a cheetah.

Integration Testing

Testing is extremely important when writing software, and data access logic is no different. For testing the data access layer, using an in-memory database is a very widespread approach. However, few developers realize that you need to test against the same database engine you use in production.

I can help you make sure your tests are both effective and efficient using Docker to speed up integration testing and simplify environement configuration.

Spring framework

Spring is just awesome. From Spring Core to Spring Data, Spring Integration and MVC, it offers everything a great variety of libraries to help you develop an enterprise application. I've been using Spring since 2005, and I've enjoyed it ever since.

I can also analyze the application architecture and make sure you are using the right tools for the right job.

Coaching

Besides consulting, I'm also offering a coaching program that's aimed to help you learn how to become a better software engineer.


By enrolling in my coaching program, you get access to all my books, video courses, online workshops, as well as to a private group channel where we discuss various software-related concepts.



Contact me

Let me teach you how to run your data access layer at high speeds!


If you want to book an on-site training session, you should email me at vlad@vladmihalcea.com

and discuss it in more detail.