Author: Sergio Lema

  • How to Organize the Packages of your Project?

    How to Organize the Packages of your Project?

    Struggling with the eternal Java dilemma of how to organize your project? You’re not alone. From feature-focused structures to classic layer-based setups, choosing the right package organization can make or break your sanity (and your code). In this article, we explore how to structure your Java project effectively, whether you’re working on a sleek online…

  • Git Reset

    Git Reset

    Git reset can be a lifesaver (or a disaster) depending on how you wield it. With `git reset –soft`: all your commit changes move neatly into the staged area, ready for a redo. `git reset –mixed` gives you a little more freedom, sending those changes to your working directory for further tinkering. But `git reset…

  • OAuth2, Which Workflow to Choose?

    OAuth2, Which Workflow to Choose?

    In this article, we’re breaking down the essentials of OAuth2, from the classic Authorization Code Flow to the more modern and secure PKCE. Along the way, you’ll learn which grant types fit your project’s needs (and which ones you should leave behind in the digital dust). And don’t worry—I’ll sprinkle in some jokes to keep…

  • 5 Essential Tips for Securing Your Spring Application

    5 Essential Tips for Securing Your Spring Application

    In the world of application security, one weak point can bring everything crashing down. This article explores why layering multiple security measures—like password encryption, session management, and using third-party authentication—is key to protecting your Spring Boot application from potential threats. By combining these strategies, you can create a more resilient defense and minimize the risk…

  • Estimate a Task in Points or Time

    Estimate a Task in Points or Time

    In this post, I dive into the age-old debate of task estimation: should you estimate in time or complexity points? I explore the pros and cons of each approach, from the product owner’s need for clear timelines to the unpredictability of time-based estimates when different developers are involved. We also look at how complexity points…

  • Understand the Most Important DNS Records

    Understand the Most Important DNS Records

    After buying the domain name, each service provider allows me to configure the DNS records. Some are already in place at give conflicts with new ones. The questions I was asking to myself were: What is this record for? How do I add a subdomain URL? How do I test it? So, to better answer…

  • AWS API Gateway With A Proxy Lambda and Binary Content

    AWS API Gateway With A Proxy Lambda and Binary Content

    Recently, I’ve decided to create a serverless web application. I’ve published my Spring Boot application into AWS Lambda. The thing is that in front of my AWS Lambda, I’ve used AWS API Gateway, and AWS API Gateway pre-format the payload when sending it to the Lambda.

  • Authenticate Your Spring Application With AWS Cognito

    Authenticate Your Spring Application With AWS Cognito

    Recently, I needed to create an authentication system for one of my applications. But I need to create it quickly and securely. I may use a JWT with email and password, but people are lazy creating new passwords. So, I choose for a social Sign-In with AWS Cognito.

  • 5 Tips to Maintain a Code Clean

    5 Tips to Maintain a Code Clean

    In this article, I list 5 of the main points to keep a code clean. Organize the imports, use short methods, don’t use utility methods or classes, use a naming convention and use a code quality checker tool.

  • How To Create SSH Keys

    How To Create SSH Keys

    In this article, I explain how to create SSH keys on Linux, MacOS and Windows, what are the main SSH keys types and how do they work in an SSH communication.