Hello! I’m Jelili

I am a full-stack software engineer with years of years of expertise in developing scalable web and mobile application. I am passionate about creating innovative and efficient software solutions.

Stateless OAuth 2.0 Login with Spring WebFlux: Building Reactive, Scalable Authentication

Overview Implementing social login is straightforward when the frontend and backend are deployed as a single application. However, when they are developed and hosted independently, the authentication flow becomes more challenging. The backend must securely complete the OAuth 2.0 flow while the frontend provides a seamless user experience, all without exposing sensitive credentials or relying on server-side sessions. There are three common approaches to solving this problem. The first is to use an identity and access management (IAM) platform such as Okta, Keycloak, or Clerk. In this model, the IAM platform manages authentication, authorisation, user registration, and session management, allowing both the frontend and backend to delegate identity-related concerns. ...

July 26, 2026 · 20 min

Implementing Soft Delete in Spring Webflux with R2DBC

Overview Data management is a fundamental component in software development, especially when handling records that need removal from active use. Instead of permanently deleting records (a method known as “hard delete”), many applications use a technique called “soft delete.” The “soft delete” approach is a widely used solution that marks records as inactive without permanently removing them, enabling easy data recovery and historical tracking. Currently, unlike Spring Data JPA and Hibernate, Spring Data R2DBC does not offer built-in annotations for automatically handling soft-delete. As a result, developers resort to the use of custom repository implementations or queries to achieve similar functionality. ...

November 12, 2024 · 4 min

Internationalisation in Java

Overview Internationalisation (i18n) refers to designing and preparing software to be easily adapted to various languages, regions, and cultures without requiring engineering changes to the code. This is usually followed by localisation (l10n), which involves adapting the internationalised software to a specific locale, including translating the text, adjusting for local conventions, and modifying other locale-specific elements. The goal is to make the software flexible enough to support multiple locales by separating the core logic from locale-specific elements like language and cultural conventions. ...

July 28, 2024 · 2 min