---
title: "Supun Viraj Rathnayaka (@supunviraj) | Hashnode"
description: "Associate Technical Lead | MSc in CS. Read the latest articles by Supun Viraj Rathnayaka on Hashnode."
url: "https://hashnode.com/@supunviraj"
---

@supunviraj

# Supun Viraj Rathnayaka

@supunviraj · Colombo, Sri Lanka · Joined May 2022

Associate Technical Lead | MSc in CS

### [Five Facets of Mock Patching in Python](https://rathnaviraj.hashnode.dev/five-facets-of-mock-patching-in-python?utm_source=hashnode&utm_medium=feed)

Introduction Unit testing is an essential practice in software development that ensures the reliability and correctness of your code. One powerful tool in the Python testing arsenal is the unittest.mock library, which provides various ways to create ...

3 min read · [rathnaviraj.hashnode.dev](https://rathnaviraj.hashnode.dev/five-facets-of-mock-patching-in-python?utm_source=hashnode&utm_medium=feed)

[Sep 5, 2023](https://hashnode.com/posts/five-facets-of-mock-patching-in-python/64f7622ab21f8042002088b8)

### [N+1 Query Problem](https://rathnaviraj.hashnode.dev/n1-query-problem?utm_source=hashnode&utm_medium=feed)

The Performance Killer of Django Model Serializers

3 min read · [rathnaviraj.hashnode.dev](https://rathnaviraj.hashnode.dev/n1-query-problem?utm_source=hashnode&utm_medium=feed)

[Aug 10, 2023](https://hashnode.com/posts/n1-query-problem/64d522b29c572b581fdc6a73)

### [Conquering Realms in Concurrent Programming](https://rathnaviraj.hashnode.dev/conquering-realms-in-concurrent-programming?utm_source=hashnode&utm_medium=feed)

What is Concurrent Programming A computer program comprises a set of instructions designed to be executed on a computer, producing specific output upon completion. Each instruction represents a distinct computational task. Typically, in sequential pr...

5 min read · [rathnaviraj.hashnode.dev](https://rathnaviraj.hashnode.dev/conquering-realms-in-concurrent-programming?utm_source=hashnode&utm_medium=feed)

[Jul 11, 2023](https://hashnode.com/posts/conquering-realms-in-concurrent-programming/64ad878fd9b1e4fb4f42772b)

### [Google OpenId Connect for Web Apps in Local Dev Environments](https://rathnaviraj.hashnode.dev/google-oidc-for-web-apps-in-dev-envs?utm_source=hashnode&utm_medium=feed)

Introduction Google is a popular Identity Provider (IdP) option for third-party applications. Google's OAuth 2.0 API implements Open ID Connect (OIDC) specification and is an OpenID Certified vendor, which supports the authentication and authorizatio...

4 min read · [rathnaviraj.hashnode.dev](https://rathnaviraj.hashnode.dev/google-oidc-for-web-apps-in-dev-envs?utm_source=hashnode&utm_medium=feed)

[Jan 18, 2023](https://hashnode.com/posts/google-oidc-for-web-apps-in-dev-envs/63c83cc1c2b2863f01493b6d)

### [Cache Busting with Django FileStorages](https://rathnaviraj.hashnode.dev/cache-busting-with-django-filestorages?utm_source=hashnode&utm_medium=feed)

Introduction Why Caching In production environments, caching the static contents is a well known practice to improve the user experiences and minimise resource utilisation. In most cases caching for static contents implemented in multiple levels from...

4 min read · [rathnaviraj.hashnode.dev](https://rathnaviraj.hashnode.dev/cache-busting-with-django-filestorages?utm_source=hashnode&utm_medium=feed)

[Oct 28, 2022](https://hashnode.com/posts/cache-busting-with-django-filestorages/635c1467d84f9f5d6c807099)
