Articles


This article describes the implementation of a Java-based microservice that follows the principles of Hexagonal Architecture (also known as Ports and Adapters) and can serve as a reusable template. It provides a solid foundation for building maintainable and scalable microservices.

Built with Spring Boot, the microservice offers a REST API with a clean, modular structure designed to quickly bootstrap scalable and testable services. It separates core business logic from infrastructure concerns, making the codebase easier to maintain and extend over time. Key advantages include developer productivity, separation of concerns, scalability, flexibility, and ease of testing.

The goal is to keep it simple, clean, and easy to modify. By following the principles of Hexagonal Architecture, the project ensures a clear separation of concerns and easier maintainability. Simple design allows you to start quickly and extend or customize components as your application evolves.

Read full article

This article presents a Java-based microservice template built with Spring Boot that follows a modern REST-based Layered Architecture pattern. It offers a practical start for developers seeking a clean, modular codebase that follows best practices in structure, readability, and maintainability.

It provides a simple and familiar structure with clearly defined layers such as controller, service, and repository, making it easy to understand, extend, and maintain. The template exposes a REST API and offers a modular, clean foundation suitable for a wide range of applications, especially CRUD-based services or those with moderate business logic. Key advantages include simplicity, separation of concerns, maintainability, testability, and practical scalability.

It was designed to be minimalistic, organized, and flexible to change, making it easy to adapt, extend, and integrate into a wide range of Java-based microservice solutions. Whether starting fresh or standardizing development, this template offers a reliable and maintainable foundation.

Read full article

This article explains the fundamentals of Spring Beans, the building blocks of any Spring Framework or Spring Boot application. It covers how beans are created, configured, and managed by the Spring IoC Container, including their dependencies, scopes, and lifecycle.

Through practical examples and clear explanations, the article shows how to define beans with annotations or XML, use Spring stereotypes like @Component, @Service, @Controller, and @Repository, and customize bean initialization and destruction. A simple layered architecture example demonstrates how Spring Beans work together in a real application, to show how modular and maintainable Spring Boot projects can be built.

The goal is to make bean management, dependency injection, and lifecycle control easy to understand and apply, helping developers to create clean, organized, and extensible Spring applications.

Read full article

This article shows how to integrate Gravatar into a Java Spring Boot app to enhance user profiles with minimal setup. It explains how Gravatar works, how to configure it properly, and where it fits within a larger approach to managing user identity in web applications.

In today's web applications, avatars play an important role in creating personalized, visually rich user interfaces. But asking users to upload photos and repeat profile details across platforms can be tedious and time-consuming. Services like Gravatar help by providing publicly available profile data linked to a user's Gravatar account, using only their email address.

The article also touches on how other platforms add features like large editable bios, badges, certificates, and more. This results in a more flexible and complete user profile system that reflects how users want to present themselves across applications.

Read full article

In this article, I present some books that helped me design better systems and write better code. They've truly improved how I approach software development and shaped my thinking along the way. These are titles I keep returning to, use in real projects, and often recommend to others.

Writing code is just one part of building production-ready software. Designing scalable systems, communicating ideas clearly, and making thoughtful architectural decisions are equally important, if not more so, in the long run. That's why I decided to highlight a selection that covers these areas and might help other engineers build better systems. Together, they serve as guides not only on architecture, design, and coding patterns, but also on the importance of teamwork, communication, and steady, iterative progress.

Whether you're just starting out or looking to deepen your understanding of system design and clean coding, these reads might be useful.

Read full article

In this article, I share courses that helped me organize engineering work and support project management. They helped me see how engineering fits into the bigger picture and showed me how to communicate more clearly, organize work better, and stay aligned with changing priorities.

When I first started working in development, I've noticed that while many developers can solve defined problems, these problems often evolve during development. Shifting requirements frequently demand further adjustments to truly meet goals. Although navigating those constant changes wasn't officially my role, I wanted to help our team work more effectively, so I tried to find the way to deal with it.

So, I looked for ways to improve how we work. I read some books and took a few courses, trying to put what I learned into practice. It wasn’t always easy, but over time I found approaches that made a difference. Here are some courses that helped me along the way.

Read full article