Learn something new everyday

  • Working with Hibernate in a multi-threaded application

    Some of my learnings while working with Hibernate in a multi-threaded Spring Boot application. Multiple sessions When you start an @Async method, it runs in its own thread managed by Spring. This means that the session created by the calling method may not be shared with the async method. The async method might create its […]

  • Designing REST APIs

    Response: Returning errors When the API has to communicate a full error or a partial error back to the client, it is better to have a typed structure rather than a plain string. This allows the clients to render an appropriate UI or design their workflow depending on the type of error. Instead of an […]

  • Fixing slow Bcrypt and BasicAuthenticationFilter.doFilter

    I recently investigated and fixed a performance issue with user authentication in our Spring Boot based API service. Our users started complaining about random 504s from our service. Looking at our thread pool config, worker threads, database connection pool size etc., everything looked normal. Looking at NewRelic for slow transactions, it gave a clue: It […]

  • Vagrant Remote Debugging – Xdebug 3 & IntelliJ or PHPStorm

    Vagrant Remote Debugging – Xdebug 3 & IntelliJ or PHPStorm

    Debugging is one of the most efficient ways to investigate an unexpected behaviour. This post details how to setup a debugger for a PHP application running in a vagrant machine via your IDE such as IntelliJ or PHPStorm. We’ll be using Xdebug version 3 in this post. Xdebug version 3 is significantly different from the […]

  • Jenkinsfile – Cheat sheet, Examples & References

    All of these examples were tested with the ‘Multibranch Pipeline’ type jobs. This may not work with other types of jobs in Jenkins. Validate Jenkinsfile for syntax Navigate to the directory which has the Jenkinsfile file. You’ll need the Jenkins host URL, username/password of your Jenkins host. Conditional credential variable based on the branch name […]

  • How to mock Clock in DTO classes?

    If you need to freeze time for a Spring Boot integration test, the easiest option is to define a custom bean for Clock object for test profile. Eg This only works if the Clock object is injected by Spring into a component (Controller/Service/Repository etc.,) What if you have a Clock object in your DTO class […]

  • Hide Links object with SpringDoc & Swagger 3

    We started generating Swagger 3 documentation (OpenAPI 3.0) for our API service using SpringDoc. We are also using Spring Hateoas to include links within the response for easy navigation. The generated schema includes the 3 examples of “_links” object for each model classes that extends RepresentationModel in your response. Here is a shortened example of […]

  • How to use Storybooks with React?

    There are plenty of tools in react ecosystem which makes the development faster and easier one such tool is the storybook. Let us see how a storybook is used to accelerate the react application  development  What is a storybook ? Storybook is basically a development environment and playground for UI components that create the components […]

  • Deploy a React app to Firebase

    In this blog, we are going to discuss how to deploy react js applications for free in a few minutes in firebase. before that let’s discuss what is firebase. What is Firebase ? Firebase is a backend as a service(Baas) built on Google’s infrastructure.it is categorized as a NoSQL database that stores data in JSON-like […]

  • iTerm2 – Clear scrollback automatically on a schedule

    iTerm2 is my default terminal and have been using it for close to 8 years now. It is highly customizable and has API support for hackability. I was using it today to run a webpack watch command on my 2nd monitor. For every change, webpack recompiles the modified files and adds it to the output. […]

Have feedback?