<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home on Aryan Sharma - Product Engineer</title><link>https://www.arayofcode.com/</link><description>Recent content in Home on Aryan Sharma - Product Engineer</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 24 Oct 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.arayofcode.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Exploring the OAuth method in PostgreSQL 18</title><link>https://www.arayofcode.com/posts/oauth-postgres-18/</link><pubDate>Fri, 24 Oct 2025 00:00:00 +0000</pubDate><guid>https://www.arayofcode.com/posts/oauth-postgres-18/</guid><description>&lt;p&gt;The latest PostgreSQL release introduced a new authentication method: OAuth. This brings PostgreSQL closer to enterprise SSO systems, while opening new discussions around design and security considerations. I spent some time exploring how Postgres implemented this method and the tradeoffs involved. This post summarizes how OAuth works in PostgreSQL, steps I took to set it up using Keycloak, along with some practices to follow.&lt;/p&gt;
&lt;p&gt;Here are a few points for the reader:&lt;/p&gt;</description></item><item><title>Introduction to Web Application Security</title><link>https://www.arayofcode.com/talks/web-appsec-101/</link><pubDate>Sat, 13 Sep 2025 00:00:00 +0000</pubDate><guid>https://www.arayofcode.com/talks/web-appsec-101/</guid><description>&lt;p&gt;Securing Web Applications 101. This talk was given in my residence society&amp;rsquo;s meetup.&lt;/p&gt;</description></item><item><title>PostgreSQL Security: Bare Minimums, and when “Best” isn’t Enough</title><link>https://www.arayofcode.com/talks/pgday-hyd-postgres-security/</link><pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate><guid>https://www.arayofcode.com/talks/pgday-hyd-postgres-security/</guid><description>&lt;p&gt;A default PostgreSQL installation can be dangerously permissive. While DBAs are diligent about setting roles and policies and privileges, true database security extends far beyond GRANT. This talk dives into critical, often-overlooked configurations and attack vectors to harden your database. This is a practical, two-part guide for engineers and DBAs ready to move beyond basics.&lt;/p&gt;
&lt;p&gt;The first part: “Bare Minimums”, is a hands-on exploration of hardening database server itself. We start with initdb, enforce encrypted connections using hostssl, prevent password leakage in logs and configure meaningful audit trails.&lt;/p&gt;</description></item><item><title>mDNSResponder and Cloudflare</title><link>https://www.arayofcode.com/posts/mdnsresponder/</link><pubDate>Sat, 14 Jun 2025 00:00:00 +0000</pubDate><guid>https://www.arayofcode.com/posts/mdnsresponder/</guid><description>&lt;p&gt;Ever since I began using a MacBook for personal usage, I&amp;rsquo;ve been seeing an error that prevented me from using WARP by Cloudflare.
&lt;img src="../../assets/images/content/posts/mdnsresponder/pasted_image_20250614013556.png" alt="&amp;ldquo;DNS Proxy Failure&amp;rdquo; error in WARP"&gt;
The error message, &lt;code&gt;A third-party process is performing DNS resolution on this device&lt;/code&gt; often points to &lt;code&gt;Google Chrome helper&lt;/code&gt; or &lt;code&gt;mDNSResponder&lt;/code&gt; as the conflicting process. After spending some time in the &lt;a href="https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/troubleshooting/client-errors/#cf_dns_proxy_failure"&gt;documentation&lt;/a&gt;, I found some processes can cause mDNSResponder to bind to port 53, preventing WARP from setting local DNS proxy on the same port. Here are the list of applications I&amp;rsquo;ve noticed that cause this:&lt;/p&gt;</description></item><item><title>Upskill Program - PostgreSQL Security</title><link>https://www.arayofcode.com/talks/upskill-program-postgresql-security/</link><pubDate>Sat, 03 May 2025 00:00:00 +0000</pubDate><guid>https://www.arayofcode.com/talks/upskill-program-postgresql-security/</guid><description>&lt;p&gt;Delivered a 3-hour session at Postgres Women India&amp;rsquo;s Upskill Program discussing mindset to securing your database, taking deep-dive into PostgreSQL authentication, authorization, RLS, instance security and methods to prevent external attacks.&lt;/p&gt;</description></item><item><title>Securing PostgreSQL: Fundamentals and Best Practices</title><link>https://www.arayofcode.com/talks/2025-02-07-securing-postgresql/</link><pubDate>Fri, 07 Feb 2025 00:00:00 +0000</pubDate><guid>https://www.arayofcode.com/talks/2025-02-07-securing-postgresql/</guid><description>&lt;p&gt;An introduction of securing PostgreSQL databases, covering foundational security principles applicable to any database system, then diving into specific PostgreSQL mechanisms around authentication and authorization like roles, permissions, row-level security, and network controls. The talk also touches upon valuable extensions and configurations to further enhance database resilience against common threats.&lt;/p&gt;
&lt;p&gt;This session was delivered at the Hyderabad PostgreSQL User Group Meetup #9.&lt;/p&gt;

 
 &lt;div class="youtube-embed " data-video-id="1KO8RZYmeAE"&gt;
 &lt;div class="youtube-thumbnail"&gt;
 &lt;img 
 src="https://img.youtube.com/vi/1KO8RZYmeAE/hqdefault.jpg" 
 alt="YouTube video" 
 loading="lazy"
 width="480" 
 height="360"
 &gt;
 &lt;button class="youtube-play-button" aria-label="Play YouTube video"&gt;
 &lt;svg width="68" height="48" viewBox="0 0 68 48" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.63 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#f00"/&gt;
 &lt;path d="M45 24L27 14v20l18-10z" fill="#fff"/&gt;
 &lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;style&gt;
 .youtube-embed {
 position: relative;
 padding-bottom: 56.25%;
 height: 0;
 overflow: hidden;
 background: #000;
 cursor: pointer;
 }
 
 .youtube-thumbnail {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 background: #000;
 display: flex;
 align-items: center;
 justify-content: center;
 }
 
 .youtube-thumbnail img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
 }
 
 .youtube-play-button {
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
 background: none;
 border: none;
 cursor: pointer;
 opacity: 0.8;
 transition: opacity 0.3s ease;
 }
 
 .youtube-play-button:hover {
 opacity: 1;
 }
 
 .youtube-embed iframe {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 border: 0;
 }
 &lt;/style&gt;

 &lt;script&gt;
 document.addEventListener('DOMContentLoaded', function() {
 const embeds = document.querySelectorAll('.youtube-embed');
 
 embeds.forEach(function(embed) {
 embed.addEventListener('click', function() {
 const videoId = this.dataset.videoId;
 const iframe = document.createElement('iframe');
 
 iframe.src = `https://www.youtube-nocookie.com/embed/${videoId}?autoplay=1&amp;rel=0&amp;modestbranding=1`;
 iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture';
 iframe.allowFullscreen = true;
 iframe.title = 'YouTube video';
 
 
 this.innerHTML = '';
 this.appendChild(iframe);
 });
 });
 });
 &lt;/script&gt;</description></item><item><title>An Unexpected Invitation</title><link>https://www.arayofcode.com/posts/unexpected-invite/</link><pubDate>Thu, 19 Dec 2024 00:00:00 +0000</pubDate><guid>https://www.arayofcode.com/posts/unexpected-invite/</guid><description>&lt;p&gt;Last Friday, December 13, 2024, I attended the Hyderabad PostgreSQL UserGroup Meetup, expecting a regular attendee experience. However, the host, &lt;a href="https://www.linkedin.com/in/hari-kiran-pg"&gt;Hari&lt;/a&gt;, surprised me with an unplanned invite to join the round table as one of the panelists.&lt;/p&gt;
&lt;p&gt;Being fairly inexperienced around databases and having no experience giving talks at community meetups, I was initially stunned and hesitant. However, I decided to join anyway: thought it would be a good experience. Out of nervousness, my answers seemed scattered, with my mentally-prepared points slipping away mid-conversation. By the end of this round table, I felt embarrassed of my answers.&lt;/p&gt;</description></item><item><title>Round Table: How to Become a Star DBA</title><link>https://www.arayofcode.com/talks/2024-12-13-star-dba-round-discussion/</link><pubDate>Fri, 13 Dec 2024 00:00:00 +0000</pubDate><guid>https://www.arayofcode.com/talks/2024-12-13-star-dba-round-discussion/</guid><description>&lt;p&gt;This round table discussion at the Hyderabad PostgreSQL User Group Meetup 8 explored the multifaceted journey of becoming a &amp;lsquo;Star DBA&amp;rsquo;. Panelists shared their experiences and insights on crucial skills, mindset, continuous learning, and the impact of community involvement in shaping an exceptional Database Administrator.&lt;/p&gt;

 
 &lt;div class="youtube-embed " data-video-id="QdTmepCDX2Y"&gt;
 &lt;div class="youtube-thumbnail"&gt;
 &lt;img 
 src="https://img.youtube.com/vi/QdTmepCDX2Y/hqdefault.jpg" 
 alt="YouTube video" 
 loading="lazy"
 width="480" 
 height="360"
 &gt;
 &lt;button class="youtube-play-button" aria-label="Play YouTube video"&gt;
 &lt;svg width="68" height="48" viewBox="0 0 68 48" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.63 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="#f00"/&gt;
 &lt;path d="M45 24L27 14v20l18-10z" fill="#fff"/&gt;
 &lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
 &lt;/div&gt;

 &lt;style&gt;
 .youtube-embed {
 position: relative;
 padding-bottom: 56.25%;
 height: 0;
 overflow: hidden;
 background: #000;
 cursor: pointer;
 }
 
 .youtube-thumbnail {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 background: #000;
 display: flex;
 align-items: center;
 justify-content: center;
 }
 
 .youtube-thumbnail img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
 }
 
 .youtube-play-button {
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
 background: none;
 border: none;
 cursor: pointer;
 opacity: 0.8;
 transition: opacity 0.3s ease;
 }
 
 .youtube-play-button:hover {
 opacity: 1;
 }
 
 .youtube-embed iframe {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 border: 0;
 }
 &lt;/style&gt;

 &lt;script&gt;
 document.addEventListener('DOMContentLoaded', function() {
 const embeds = document.querySelectorAll('.youtube-embed');
 
 embeds.forEach(function(embed) {
 embed.addEventListener('click', function() {
 const videoId = this.dataset.videoId;
 const iframe = document.createElement('iframe');
 
 iframe.src = `https://www.youtube-nocookie.com/embed/${videoId}?autoplay=1&amp;rel=0&amp;modestbranding=1`;
 iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture';
 iframe.allowFullscreen = true;
 iframe.title = 'YouTube video';
 
 
 this.innerHTML = '';
 this.appendChild(iframe);
 });
 });
 });
 &lt;/script&gt;</description></item><item><title>About</title><link>https://www.arayofcode.com/about/</link><pubDate>Sat, 05 Oct 2024 00:00:00 +0000</pubDate><guid>https://www.arayofcode.com/about/</guid><description>&lt;p&gt;I&amp;rsquo;ve built at Gojek (GoTo Group), a superapp with 5,000 engineers and 60k+ repositories, and Blueflag Security, an SDLC security startup with the product scaled to handle SCM and cloud data of 10+ enterprise customers.&lt;/p&gt;
&lt;p&gt;At Gojek, I built automation to solve Security Engineering&amp;rsquo;s problems: finding who owns what across 60k repos, scaling secret detection across the full engineering org, and building SCA tooling that replaced commercial licenses worth $400-600k.&lt;/p&gt;</description></item><item><title>Concurrency Limits and Performance</title><link>https://www.arayofcode.com/posts/concurrency-failure/</link><pubDate>Sat, 05 Oct 2024 00:00:00 +0000</pubDate><guid>https://www.arayofcode.com/posts/concurrency-failure/</guid><description>&lt;p&gt;I read &lt;a href="https://netflixtechblog.medium.com/performance-under-load-3e6fa9a60581"&gt;this blog&lt;/a&gt; by Netflix Engineering team this morning, which reminded me of a challenge I faced on, working on a project in my first role. The blog shares Netflix&amp;rsquo;s approach to managing system performance and availability under heavy workload through adaptive concurrency limits. Their algorithm dynamically adjusts the number of concurrent requests their system would handle, finding the right number that maximised their throughput while maintaining low latency. Reading the article helped me understand why my application failed, and thought it would be good to share what went wrong, and how we could&amp;rsquo;ve improved it.&lt;/p&gt;</description></item></channel></rss>