Reflectoring - Where the How meets the Why
Software development tutorials, thoughts about the software craft, and tips on how to grow as a software engineer.
- Meta
Two Years of AI Changed 20 Years of Habits
This article is my contribution to Pragmatic Engineer’s essay challenge about how AI changed the way I work in the context of my work at Atlassian.

- Java
Guide to JUnit 5 Functional Interfaces
In this article, we will get familiar with JUnit 5 functional interfaces. JUnit 5 significantly advanced from its predecessors. Features like functional interfaces can greatly simplify our work once we grasp their functionality.

- Spring
Getting Started with Spring Security and JWT
Spring Security provides a comprehensive set of security features for Java applications, covering authentication, authorization, session management, and protection against common security threats such as CSRF (Cross-Site Request Forgery).

- Node
Creating and Publishing an NPM Package with Automated Versioning and Deployment
In this step-by-step guide, we’ll create, publish, and manage an NPM package using TypeScript for better code readability and scalability. We’ll write test cases with Jest and automate our NPM package versioning and publishing process using Changesets and GitHub Actions.

- AWS
Offloading File Transfers with Amazon S3 Presigned URLs in Spring Boot
When building web applications that involve file uploads or downloads, a common approach is to have the files pass through an application server.

- Java
One Stop Guide to Java Functional Interfaces
Introduction to Functional Programming Functional programming is a paradigm that focuses on the use of functions to create clear and concise code.
