Understanding the difference between Configurations and AutoConfigurations in Spring boot!

Photo by Greg Rakozy on Unsplash

Spring boot is all about magic. You add dependencies to the classpath and stuff just fits together and works. It provides a canvas for you to build on. The out-of-the-box configurations are opinionated and will make default configuration choices, at the same time these opinions and the configurations will be the first ones to get out of your way if you want to make your own configuration choices.

A lot of this magic because of AutoConfigurations. …


Photo by Pablo Merchán Montes on Unsplash

Error and exception handling are integral to every software application, no matter the functionality. Errors need to be meaningful, helpful, simple and help users understand what to do next (if there is something for them to do). But what if I told you that sometimes your error messages need to be presented at a high level without the intricacies of exactly what error occurred?

Securing applications is a Herculean task in and of itself. There really isn’t a one-size-fits-all solution across applications and within the different layers of a single application. When we talk about security, securing applications for happy…


Photo by Kane Reinholdtsen on Unsplash

Public speaking can be daunting. But what comes after could be absolutely rewarding! I am, by no stretch of the imagination, excellent at or comfortable with public speaking. This was probably why, two years ago, I committed to making this a goal at one of my performance reviews (a lot of private cursing would follow). To make matters worse, I made it a top priority.

You see at that time I did it because I firmly believed that to grow personally and professionally, I had to be uncomfortable, sometimes. I needed to be nervous because I was venturing into unknown…


Building an application that is driven by properties using Spring Boot.

Photo by Arno Smit on Unsplash

This post counts as the second part of my previous post on some very commonly used annotations in the Spring framework. In this post I wanted to specifically focus on how we can build backend services using Spring/Spring Boot and drive certain sections of the application using properties, that could also be supplied from outside the codebase. When I say properties driven, at a very high level I mean the ability to change the behavior of the application by merely using properties. …


How record classes in Java compares to Kotlin’s data classes.

Photo by Mike Kenneally on Unsplash

Recent releases of Java have had some very noteworthy and developer-friendly features including a concept of record classes. From the Java docs of the Record class:

A record class is a shallowly immutable, transparent carrier for a fixed set of values, called the record components. The Java language provides concise syntax for declaring record classes, whereby the record components are declared in the record header. The list of record components declared in the record header form the record descriptor.

My first thought on seeing this class and as someone who…


Caveats to keep in mind while working with Json Web Tokens!

Photo by Riccardo Ginevri on Unsplash

JSON Web Tokens (abbreviated as JWTs) are digitally signed tokens that can be used to verify the authenticity of an incoming request, as well as ensure the request is authorized to make the request being made. Jwt.io has a wonderful article explaining what a JWT is, its components, and how it is used. If you are new to JSON Web Tokens, I highly recommend giving this blog post a read before reading on, because this post assumes you are familiar with a JWT and know how it works.

In…


Photo by Jon Tyson on Unsplash

With most tech companies moving to having more and more employees work full time remote, the option to work remote should no longer come as a surprise. But working across timezones definitely puts a big dent in that option. Time is a mess to work with be it in code or with remote work. The longer the time difference the more hard it gets to decide and manage how to make sure your work is not affected. …


Making backend API services easy to use and work with!

Photo by Jess Bailey on Unsplash

What makes a backend service (that exposes functionality in the form of ReSTful APIs) fun to work with? Not just for the devs working on the service but also for everyone else using it including but not limited to developers who consume those APIs. I think this question is more valuable if flipped: What makes working with a backend service a nightmare? What feels like you are fighting the service at every point in your code?

In this post I want to draw on my experience building API services and…


Photo by Kaleidico on Unsplash

As a developer, chances are you have created, consumed (or both) APIs at some point in your career. If you are a mobile/web/UI developer, you have definitely interacted with APIs because the data to be displayed needs to come from somewhere and if you are a backend developer, you have definitely created APIs to interact with other services (UIs and other backend services alike).

One of the best things available to software engineers especially those that have to build APIs is the availability of an RFC for all things API related: status codes, headers, cookies, request/response bodies etc. With that…


Photo by Kimberly Farmer on Unsplash

Spring uses a good chunk of annotations for the purposes of dependency injection. For someone who is new to the Spring eco system, it can get quickly overwhelming because not only are there a good number of annotations to understand, but also several ways to achieve the same thing by using different annotation or a different combination of annotations! So this post is aimed at going over a few basic annotations that are sure to come in handy as you get started with your first Spring application. …

Janani Subbiah

Product Architect | Ice cream lover | Newbie gardener

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store