This is the first of my technical reviews, mainly intended as a reflection on my experiences so far and as a starting point for future summaries.

I have been working at the company for nearly six months, and recently transitioned from client-side development to backend development. This shift aligns with my long-term thinking, as backend work tends to expose more complex system-level problems and offers broader technical exploration.

That said, I do not believe there is an inherent hierarchy between client-side and backend development. My earlier open-source project, GpgFrontend, is a client-side application where I dealt with complex issues such as cross-platform compilation, compatibility, and stability. These problems are by no means simpler. The perceived difference often comes from mindset rather than the nature of the work itself.

From my perspective, the core ideas behind different technical domains are fundamentally similar. However, industry roles tend to divide them too rigidly. Even though I am currently working as a backend developer, I do not want to limit myself to that identity or stop exploring other areas.

Looking back, my earliest backend project was an astronomy forum I built at the age of 15 using Node.js and Express. At that time, I was first exposed to concepts such as MongoDB, session management, and asynchronous programming.

Asynchronous callbacks were particularly difficult for me to understand. At that time, I did not even have a clear understanding of processes or threads, which made it challenging to grasp concepts like non-blocking execution and closures. Gradually, I came to understand that asynchronous programming allows the main execution flow to continue while deferring blocking operations, and later handling results through callbacks.

Later, I worked with Python to build a simple academic management system, where I encountered the MVC pattern for the first time. This introduced me to structured system design, where controllers handle requests, models manage data, and views render output.

At that stage, server-side rendering was still dominant. The backend was responsible for everything, including page generation, data processing, and even aspects of UI design. This experience gave me a more holistic understanding of system development.

In the following years, I began using Spring Boot and gained a deeper understanding of relational databases. I also encountered the concept of frontend-backend separation, which I found very compelling. Offloading rendering to the client while keeping the server focused on data processing improves decoupling and scalability.

At one point, I was very enthusiastic about RESTful API design, even believing that strict adherence to it could eliminate the need for documentation. In practice, however, I learned that real-world systems are more complex, and maintaining strict REST conventions is not always feasible.

After joining the company, I found that the primary technology stack is Java and Spring Boot. Although I personally find Java somewhat verbose, its ecosystem is mature, well-documented, and highly suitable for production systems. It provides stability and a wide range of readily available components.

Over the past months, my work has largely focused on system optimization, including caching strategies and thread management. I frequently analyze alerts, some related to business logic and others to technical issues. Business problems require understanding context, while technical problems require deeper knowledge and continuous learning.

There are still areas where my understanding is not sufficient. For example, during containerized deployments, I have observed occasional timeout issues that are difficult to attribute definitively to either the container environment or the application itself. I believe resolving such problems requires deeper knowledge of system-level topics such as CPU scheduling, memory management, and network virtualization.

This marks the starting point of my technical reviews, and I expect future entries to become more focused and structured as my experience grows.