<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Department of random technical stuffs</title><link>https://justinmathew.com/</link><description>Welcome to my blog — Its some random thoughts from a foolish developer!</description><language>en-us</language><item><title>A whole new operator for PostgreSQL monitoring</title><link>https://justinmathew.com/2026/01/a-whole-new-operator-for-postgresql-monitoring.html</link><pubDate>Sun, 25 Jan 2026 09:00:00 -0800</pubDate><guid>https://justinmathew.com/2026/01/a-whole-new-operator-for-postgresql-monitoring.html</guid><description>Introduction As I mentioned in my previous blogs, I have started learning Go and Kubernetes operators. What I realized about my softwaren engineering journey is that I love building tools and utilities and tinkering with systems. It&amp;rsquo;s so fun to just change something , tweek things a little bit, and may be build something interesting in the process. This is far better athan learning DSA or watching stupid system design videos on youtube.</description></item><item><title>Postgres Internals: Columnar and Row Store, choosing the right storage not DB</title><link>https://justinmathew.com/posts/postgres-internals-columnar-and-rowstore/</link><pubDate>Tue, 20 Jan 2026 23:02:39 +0530</pubDate><guid>https://justinmathew.com/posts/postgres-internals-columnar-and-rowstore/</guid><description>Some thoughts on PG Internals [https://www.percona.com/blog/postgresql-internals-for-newbies-a-guide-to-data-storage-part-one/] a good read for everyone.</description></item><item><title>Go Lang Notes</title><link>https://justinmathew.com/2026/01/go-lang-notes.html</link><pubDate>Tue, 06 Jan 2026 10:00:00 -0800</pubDate><guid>https://justinmathew.com/2026/01/go-lang-notes.html</guid><description>Go Lang Notes I&amp;rsquo;ve started learning Go lang very recently. For a long time java develoeper, introduction to various tricky concepts of Go lang is fun. When ever I learn something new, I will try to dig into some philosophical aspects of the language and write them down here.
For example, why go lang doesnt have inheritance, why its somehow forces you to choose composition over inheritance. Why go lang has interfaces but no classes.</description></item><item><title>Hacking TLS</title><link>https://justinmathew.com/2025/12/hacking-tls.html</link><pubDate>Mon, 15 Dec 2025 00:00:00 -0700</pubDate><guid>https://justinmathew.com/2025/12/hacking-tls.html</guid><description>Introduction When you deep dive into how tls works and the underline algorithms, we will understand how much of a security issue it has from a security point of view. When I was studing of OLD Tls flow it became very obvious to me that how much of a security issue it has. In this blog post I will try to explain how tls works and what are the security issues with it.</description></item><item><title>Solid Principles</title><link>https://justinmathew.com/posts/super-solid/</link><pubDate>Thu, 06 Nov 2025 11:23:00 -0700</pubDate><guid>https://justinmathew.com/posts/super-solid/</guid><description>Solid Principles &amp;ldquo;Complexity is the enemy of execution.&amp;rdquo; — Tony Robbins(From a youtube short)
Most of the times complexity in code, or complex explanation of a simple problem leads to failure in the longterm. If you can't keep things simple, or explain things simply, either you have not understood it fully or you are trying to make an impression of being smart. At times I used to act like I know something which I dont have a clue about.</description></item><item><title>B-Tree a data structures - Postgres Internals rabbit hole..</title><link>https://justinmathew.com/posts/btree-whats-inside-your-db/</link><pubDate>Sun, 29 Jun 2025 23:02:39 +0530</pubDate><guid>https://justinmathew.com/posts/btree-whats-inside-your-db/</guid><description>Another sunday night, another rabbit hole.</description></item><item><title>Designing a Stock Ticker Service</title><link>https://justinmathew.com/posts/stock-tick-design/</link><pubDate>Sun, 15 Jun 2025 23:02:39 +0530</pubDate><guid>https://justinmathew.com/posts/stock-tick-design/</guid><description>I got pissed off by seeing system design interview videos on this</description></item><item><title>Grouping anagrams</title><link>https://justinmathew.com/posts/group-anagrams/</link><pubDate>Wed, 11 Jun 2025 23:04:00 +0530</pubDate><guid>https://justinmathew.com/posts/group-anagrams/</guid><description>A medium but easy one!</description></item><item><title>Remove more than two duplicates in-place</title><link>https://justinmathew.com/posts/removeduplicates/</link><pubDate>Mon, 09 Jun 2025 23:04:00 +0530</pubDate><guid>https://justinmathew.com/posts/removeduplicates/</guid><description>This is a medium level problem. I think it should be easy. But anyway, lets get to the code.</description></item><item><title>Inplace element removal an easy one</title><link>https://justinmathew.com/posts/inplace-element-removal/</link><pubDate>Sat, 07 Jun 2025 11:54:39 +0530</pubDate><guid>https://justinmathew.com/posts/inplace-element-removal/</guid><description>Its an easy problem. But every problem has a trick. This one is no different. I will try to explain the trick in this post.</description></item><item><title>The nicest way to merge two sorted arrays</title><link>https://justinmathew.com/posts/mergingtwosortedarrays/</link><pubDate>Fri, 06 Jun 2025 23:02:39 +0530</pubDate><guid>https://justinmathew.com/posts/mergingtwosortedarrays/</guid><description>This is one of the easy but tricky problems. To be really honest I also struggled with tihs one. I am writing this down, and the pitfalls of this problem, so that I can refer to this later.</description></item><item><title>gRPC - The Witchcraft of Remote Procedure Calls</title><link>https://justinmathew.com/posts/grpc/</link><pubDate>Tue, 03 Jun 2025 23:02:39 +0530</pubDate><guid>https://justinmathew.com/posts/grpc/</guid><description>A deep dive into gRPC, its benefits, and how to implement it in a Spring Boot application.</description></item><item><title> Replication - Leaders and Followers</title><link>https://justinmathew.com/posts/replication/</link><pubDate>Tue, 20 May 2025 19:02:39 +0530</pubDate><guid>https://justinmathew.com/posts/replication/</guid><description>Replication - Leaders and Followers Replication, or read replica is a process of copy pasting data from a primary database to another database. This is done to improve performance, availability, and reliability of the database. Replication can be done in two ways: synchronous and asynchronous.
In synchronous replication, the primary database waits for the replica to acknowledge that it has received the data before it can proceed. This ensures that the data is always consistent between the primary and replica databases, but it can also slow down the performance of the primary database.</description></item><item><title> IP V4 Subnetting tricks and basics</title><link>https://justinmathew.com/posts/ipv4-subneting-concepts/</link><pubDate>Tue, 13 May 2025 19:02:39 +0530</pubDate><guid>https://justinmathew.com/posts/ipv4-subneting-concepts/</guid><description>IP V4 Subnetting tricks and basics Introduction As usual lets try to be little intellectual. By saying a qoute i got it from chatgpt.
“Good subnetting is like good carpentry: measure twice, cut once.”
What ever it means it doesnt matter. But the point is to understand the concept of subnetting and how it works.
This is somehow one of the most mind f**k*ng topic which i encoutered during my job.</description></item><item><title> Utils</title><link>https://justinmathew.com/posts/ipv4-utils/</link><pubDate>Tue, 13 May 2025 19:02:39 +0530</pubDate><guid>https://justinmathew.com/posts/ipv4-utils/</guid><description>First tool: Subnet Calculator If you want to calculate the subnet, you can use the following tool. It will help you to calculate the subnet, broadcast address, and usable IP addresses.
Loading message...</description></item><item><title>Enterprise Over Engineering</title><link>https://justinmathew.com/posts/mindblowing-over-engineering/</link><pubDate>Sun, 27 Apr 2025 20:39:00 -0800</pubDate><guid>https://justinmathew.com/posts/mindblowing-over-engineering/</guid><description>The Hidden Pitfalls of Overusing Design Patterns This is my story of using the Chain of Responsibility pattern after reading about it in a book while preparing for an interview.
Yes — I actually used it in a real job. And well, it didn’t turn out the way I had imagined.
Before we dive in, here&amp;rsquo;s a quote from one of my favorite authors, Khaled Hosseini (The Kite Runner):
&amp;ldquo;There is only one sin, only one.</description></item><item><title>മധുരം മലയാളം. ഒരു മലയാളം പ്രോബ്ലം സോൾവിങ്</title><link>https://justinmathew.com/2025/04/blog-post.html</link><pubDate>Sun, 06 Apr 2025 07:08:00 -0700</pubDate><guid>https://justinmathew.com/2025/04/blog-post.html</guid><description>എനിക്ക് പലപ്പോഴും തോന്നിയിട്ടുണ്ട് നമ്മുടെ ഏതു ഭാഷയിലാണ് നമ്മളുടെ ബ്രെയിൻ പ്രവർത്തിക്കുന്നത് എന്ന്. ഇന്റർനെറ്റിൽ പരതുമ്പോൾ നമ്മുക്ക് മനസിലാകും ബ്രെയിൻ symbols ഉം മോഡലുകളും ആണ് ഉപയോഗിക്കുന്നത് എന്ന്. പക്ഷെ ഒരു പ്രോബ്ലം സോൾവ് ചെയ്യുമ്പോൾ നമ്മുടെ ബ്രെയിൻ കൂടുതൽ സമയവും ചിലവഴിക്കുന്നത് ഐഡിയകളെ പരിഭാഷ ചെയ്യാൻ ആയിരിക്കും. പ്രത്യേകിച്ച് മലയാളായി ആയ എനിക്ക് ഇതൊരു പ്രശ്നമായി തോന്നിയിട്ടുണ്. ചില പ്രോബ്ലെംസ് സോൾവ് ചെയ്യുമ്പോൾ എനിക്ക് കൂടുതൽ വഴങ്ങുന്ന ഭാഷ അത് മലയാളം ആണ്.
ഉദാഹരണത്തിന് ഈ പ്രോബ്ലം നോക്കൂ. Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining.</description></item><item><title>Managing Concurrent Updates with Distributed Locks</title><link>https://justinmathew.com/2024/05/managing-concurrent-updates-with.html</link><pubDate>Thu, 30 May 2024 10:21:00 -0700</pubDate><guid>https://justinmathew.com/2024/05/managing-concurrent-updates-with.html</guid><description>Managing Concurrent Updates with Distributed Locks
Managing Concurrent Updates with Distributed Locks In distributed systems, managing concurrent access to shared resources is crucial to ensure data consistency and prevent corruption. Let’s explore how to handle this using a Java example, starting with a basic implementation and improving it step-by-step.
Basic Implementation Without Proper Lock Handling Here&amp;rsquo;s a simple version of a method that tries to acquire a distributed lock, perform an update, and release the lock:</description></item><item><title>Revisiting Dynamic Programming</title><link>https://justinmathew.com/2024/03/httpswww.justinmathew.com202403dynamic-programming-revisiting.html.html</link><pubDate>Tue, 19 Mar 2024 13:11:00 -0700</pubDate><guid>https://justinmathew.com/2024/03/httpswww.justinmathew.com202403dynamic-programming-revisiting.html.html</guid><description>The main problem with me w.r.t DP problem is forgetting it if i don&amp;#39;t practice. So I decided to revisit all the DP problems i solved once again just to refresh my memory. So first Lets start with a simple one. Here we go!!! Climbing stairs from Leetcode. Explanation : You are climbing a staircase. It takes n steps to reach the top. Each time you can either climb 1 or 2 steps.</description></item><item><title>Java Design Patterns - JDP Series #1</title><link>https://justinmathew.com/2024/03/java-design-patterns-jdp.html</link><pubDate>Thu, 07 Mar 2024 17:23:00 -0800</pubDate><guid>https://justinmathew.com/2024/03/java-design-patterns-jdp.html</guid><description>Design patterns are general reusable solutions to common problems that occur in software design. They are not code, but rather guidelines on how to solve a particular problem in a particular context. They are not a finished design that can be transformed directly into code. They are a description or template for how to solve a problem that can be used in many different situations. Types of design patterns in Java -------------------------------- There are three types of design patterns in Java: * Creational</description></item></channel></rss>