SpringBoot application deployment and monitoring series - Part 1 - Build Services

SpringBoot application deployment and monitoring series - Part 1 - Build Services

This is the first part of our journey to learn SpringBoot application deployment and monitoring series. We will be using the following tools throughout the process, so please install them based on your operating system. Prerequisites Java 11, Maven (I would recommend using SDKMAN to install these tools) Docker, docker-compose VirtualBox Vagrant Ansible Minikube I will be using MacOS, Intellij Idea and shell scripting. You can use your favorite IDE, but try to use *nix like environment (Linux or MacOS) to be able to run those shell scripts.

Continue reading »
SpringBoot Application deployment and monitoring series

SpringBoot Application deployment and monitoring series

Few years ago I wrote a series of blog posts on Developing a simple e-commerce application from scratch to production using SpringBoot. Well, I covered most of the development stuff but left “to production” part because other things came up. Many things changed since then. Now I want to write a series of articles focusing on deployment and monitoring. So, I am planning to build a simple application using SpringBoot and deploy it in different ways.

Continue reading »
Tips to work at traditional enterprise organizations as consultant/contractor (and save your ass)

Tips to work at traditional enterprise organizations as consultant/contractor (and save your ass)

I worked at different types of IT organizations including small 20 people company, world’s largest bank, start-ups etc. Working at a service based company is both very interesting and at times frustrating depending on the client. On the positive side you get to work on different types of domains/applications, different tech stacks, and you may get to learn verity of organizational cultures. On the downside you may end up working with “Typical traditional enterprise organizations” which makes you question your career choices!

Continue reading »
My 2020 year review and plans for 2021

My 2020 year review and plans for 2021

I would like to share how was my year 2020 and what I am planning to do in 2021. As we all know 2020 was a rough year due to COVID-19, lockdown and all, but 2020 is a good year for me in many ways. It used to take minimum 2 to 3 hours of daily commute for office, now that I have been working from home I am able to use that time for other activities.

Continue reading »
Improve JPA application performance using HypersistenceOptimizer

Improve JPA application performance using HypersistenceOptimizer

In Java world, Hibernate/JPA is the most popular ORM framework. Also, JPA/Hibernate is a very controversial topic because some people don’t like it at all. It is very understandable though. Many people start using JPA/Hibernate with minimal knowledge and keep adding logic (read as “annotations”) as and when required to get the job done. While checking the overall application performance, most of the time people realize it’s because of poor performance of persistence layer.

Continue reading »
Quirks of Spring's @TestConfiguration

Quirks of Spring's @TestConfiguration

If you know me you know that I am a big fan of Spring ecosystem. I have been using Spring framework since 2007, and I am pretty familiar with many of its features. Even if we are familiar with some technology once in a while we get stuck with small issues and end up spending hours and hours figuring out why something is not working as expected. Spring framework is very flexible, and usually there are multiple ways to achieve the same thing.

Continue reading »
My Thoughts on CleanCode, Simplicity, Automation and Empathy

My Thoughts on CleanCode, Simplicity, Automation and Empathy

When I observe old people I notice one interesting thing. They don’t usually react aggressively like teenagers do. Even when they have to deal with difficulties in life they deal with it calmly. Even when some people undermine them they simply give a smile and move on rather than trying to prove they are wrong. I wonder is growing older makes them wise? Looking at some people I know who is in their 50’s, I can confidently say No, becoming older doesn’t make them wiser automatically :-)

Continue reading »
Philip's Testing Spring Boot Applications Masterclass Course Review

Philip's Testing Spring Boot Applications Masterclass Course Review

If you ever worked on a large project which doesn’t have any tests then you know how painful it is to work on such codebase. You know what is more painful? Working on a project which has plenty of USELESS tests written for the sake of passing minimum code coverage requirement. Being a Professional Software Developer means more than solving a problem. One needs to learn how to write maintainable and testable code, write meaningful tests, know what to test and what not to test, how to evolve the codebase backing with a good set of test suite.

Continue reading »
LocalStack SpringBoot Starter Tutorial

LocalStack SpringBoot Starter Tutorial

I was working on a SpringBoot application which is planned to deploy on AWS and, we were using S3, SQS and RDS services. LocalStack provides an easy-to-use test/mocking framework for developing AWS based Cloud applications. I want to use Localstack mock services instead of using real AWS services for two purposes: To run integration tests To run application locally We can use Testcontainers to spin up a Localstack docker container, but we need to configure Amazon service clients like AmazonS3, AmazonSQSAsync which is typical boilerplate that we copy-paste from project to project.

Continue reading »
All the resources you ever need as a Java & Spring application developer

All the resources you ever need as a Java & Spring application developer

Nowadays software development is a challenging task as the number of programming languages, frameworks, libraries are increasing rapidly day by day. Luckily, the number of resources to learn on the internet for free also increased a lot. There are a ton of free resources to learn almost everything on the internet. There are lots of official documentation, blog posts, Udemy courses, YouTube videos etc. As a backend developer who primarily work on JVM based languages/frameworks like Java, Kotlin, SpringBoot etc, following are a collection of resources I usually follow to learn new things.

Continue reading »