Posts published by Vijay Pandurangan
-
Csikszentmihalyi’s Flow model — challenge vs ability A grid showing eight mental states based on level of challenge and level of ability. Anxiety Stressed, Alert Arousal Alert, Focused Flow Focused, Happy Worry Sad, Stressed Control Happy, Confident Apathy Sad, Depressed Boredom Depressed, Content Relaxation Confident, Content Low High Low High Abilities Challenges Csikszentmihalyi’s model of…
-
A look at how endless requirement changes with frozen deadlines silently kill engineering quality, and what a better process actually looks like.
-
AI can write code. But can it decide whether what you asked for is even a good idea? A senior person I know said something recently that stuck with me. He said – half joking, half serious – that software developers will one day be kept in museum exhibits. People will walk by and go, “Look,…
-
When implementing OpenID Connect (OIDC) for authentication, especially in modern distributed systems, large request headers can become a significant issue. OIDC tokens, particularly JWT (JSON Web Tokens), often contain large amounts of user data, roles, claims, and metadata, all of which are transmitted via HTTP headers. This leads to potential errors if the request headers…
-
Microservices architecture is a popular model in modern software development due to its ability to break down complex applications into smaller, independent services that communicate with each other through well-defined APIs. This enables greater flexibility, scalability, and faster development cycles compared to traditional monolithic architectures. I recently completed the microservices certification learning path and earned…
-
The Factory Method design pattern is one of the most well-known and frequently used design patterns in software development. It falls under the category of creational patterns, which focus on ways to instantiate objects. The primary goal of the Factory Method is to provide a flexible and scalable way to create objects without directly specifying…
-
Communication often happens at lightning speed. Emails, instant messages, and social media platforms allow us to connect with colleagues, friends, and family within seconds. However, amidst the convenience, there is one often overlooked but crucial element—acknowledging. In any form of communication, especially in the electronic realm where non-verbal cues are missing, acknowledging plays a pivotal…
-
Imagine a large, bustling company where several teams work on critical projects at different locations. Each team needs to send important updates, requests, or urgent messages back to the head office regularly. There is only one communication device available to all teams—a complex and old-fashioned piece of equipment, like a specialized fax machine or satellite…
-
In software development, programmers, architects, and developers constantly face challenges like building scalable systems, managing complexity, and ensuring security and maintainability. This is where software patterns become important in design considerations. Patterns offer time-tested solutions to common design and architectural problems, providing a structured approach to solving recurring issues. Rather than reinventing the wheel, they…
-
IP-based throttling is a common method used to control traffic, prevent abuse, and maintain service stability. However, this becomes complicated when proxies, load balancers, or other intermediaries are involved. In such cases, relying solely on the request’s originating IP may not be sufficient, as client IPs can be hidden behind proxies. Headers like X-Forwarded-For and…