Skip to content

Backend

Role

As the backend developer of this project, I was responsible for creating database structures, implementing needed API endpoints and ensure no user data got leaked. Exploring these areas lead me to many realisations about modern web development and security.

Working with modern Technology

Working with Spring Boot, GraphQL, and various databases has provided insights into how production-level code is structured to support efficient collaboration, even in large and complex codebases. These proved essential when revisiting long-finished systems, trying to quickly find the necessary connections. Additionally, understanding the interaction between the frontend and the API was crucial for designing an API that is both user-friendly and capable of delivering the required data.

Personal journey

This project has deepened my appreciation for the importance of maintainable code, clear documentation, and thoughtful API design, all of which contribute to the long-term success of any software project.

Challenges

As with any new environment, many issues arose throughout the project. Notably, I encountered issues within the Spring framework itself that, after much effort, still required external help to resolve. There were also smaller hurdles, such as understanding the complicated process a user goes through when authenticating and securely implementing this into the backend’s data flow. This task demanded a lot of time spent researching and planning outside of code, and even then, uncertainties remained in the large number of configurations setting up a custom authentication process requires.

Learning Outcomes

During this project, I gained a deeper understanding of backend technologies like Spring Boot and GraphQL, especially for real-world systems. I learned the importance of creating secure and scalable systems that protect user data. I also saw how backend systems interact with front-end applications and how teamwork improves development. Challenges with authentication and sensitive data pushed me to learn more about security best practices. The project also taught me how to manage complex configurations and troubleshoot issues in a live environment, improving my problem-solving skills.

Conclusion

This project has significantly improved my overall development skills and provided me with a greater understanding of web security, structure and different architectures. The challenges I faced and the lessons I learned will influence how I approach future projects, particularly in terms of security, API design, and database management. Moreover, it has provided me with new perspectives on problem-solving leading to more creative approaches when overcoming future obstacles.