Posts

Showing posts from February, 2024

From Developer to Architect: A Journey Through the Software Architecture (Chapter 1 - Introduction)

Image
Ever wondered what goes into creating those complex applications you use daily? It begins with planning, where the purpose and functionalities of the software are outlined alongside user needs and technical requirements.  The next stage involves designing the overall structure of the software, choosing appropriate technologies, and most importantly, defining how each component or module interacts with each other. Once the necessary architecture is defined, reviewed, and fine-tuned, the design is translated into functional software using programming languages and tools. Finally, the software undergoes rigorous testing to ensure it achieves the purpose for which it was built. Poor architecture can lead to a domino effect of issues, impacting everything from performance and security to scalability and maintenance costs. This blog series aims to equip you with the knowledge and strategies to design strong software architecture. I will explore the essential factors, best practices, and vari

Beyond Passwords: Identity Management for Secured Authetication

Image
In today's digital landscape, logging into a website isn't just about clicking "remember me." It's a complex process of identity management and authentication, ensuring the online experience is secure and seamless. This blog post discovers the inner workings of this fascinating process, explores familiar concepts like cookies and sessions, along with modern solutions like tokens and JSON Web Tokens (JWTs). It will unveil the advantages of Single Sign-On (SSO) and discover how OAuth 2.0 allows secure data sharing without passwords. It will also highlights innovative solutions like QR code-based login, offering a glimpse into the future of authentication. By the end, you'll have a deeper understanding of these methods and how they help to secure online communication. Identity Management using Sessions A session is a temporary interaction between a web server and a user's web browser. It begins when a user accesses a website and ends when the user clo