PageSourceSearch

https://iamrajiv.github.io/talks/

html iamrajiv.github.io collected 2026-10-03 09:19:26 UTC 326,680 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="geistsans_d5a4f12f-module__Ur3q_a__variable geistmono_157ca88a-module__iaM1Ya__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/GeistMono_Variable.p.3ms9vq719j3f8.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/Geist_Variable-s.p.0mrjj4bg00-he.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/2s5_lne4iidd8.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0oeds6xg-zier.js"/>
1<script src="/_next/static/chunks/2i51e627rllld.js" async=""></script>
1<script src="/_next/static/chunks/2anqguf2drqme.js" async=""></script>
1<script src="/_next/static/chunks/25-8d0xcq0i-j.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-2i76z_tguwxjr.js" async=""></script>
1<script src="/_next/static/chunks/0lcbwy44y8n_c.js" async=""></script>
1<script src="/_next/static/chunks/29oan_tikaa-d.js" async=""></script>
1<script src="/_next/static/chunks/1yzzg6dc7c8k1.js" async=""></script>
1<script src="/_next/static/chunks/235t4ri4lz9s3.js" async=""></script>
1<script src="/_next/static/chunks/3ayqk_56qyv1u.js" async=""></script>
1<script src="/_next/static/chunks/3fntmmi971322.js" async=""></script>
1<script src="/_next/static/chunks/3o36mlor68a_2.js" async=""></script>
1<meta name="next-size-adjust" content=""/><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#0a0a0a" media="(prefers-color-scheme: dark)"/><title>Talks · Rajiv Singh</title><meta name="description" content="Talks I have given at conferences and meetups, with the slides, the source code, and a recording wherever one was published."/><link rel="author" href="https://iamrajiv.github.io"/><meta name="author" content="Rajiv Ranjan Singh"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="keywords" content="software engineer,backend systems,distributed systems,algorithms,open source,golang,technical writing,Rajiv Ranjan Singh,iamrajiv"/><meta name="creator" content="Rajiv Ranjan Singh"/><meta name="publisher" content="Rajiv Ranjan Singh"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><link rel="canonical" href="https://iamrajiv.github.io/talks/"/><link rel="alternate" hrefLang="en-US" href="https://iamrajiv.github.io/talks/"/><link rel="alternate" type="application/rss+xml" href="https://iamrajiv.github.io/feed.xml"/><meta property="og:title" content="Talks"/><meta property="og:description" content="Talks I have given at conferences and meetups, with the slides, the source code, and a recording wherever one was published."/><meta property="og:url" content="https://iamrajiv.github.io/talks/"/><meta property="og:site_name" content="Rajiv Singh"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://iamrajiv.github.io/talks/opengraph-image.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Talks"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@therajiv"/><meta name="twitter:title" content="Talks"/><meta name="twitter:description" content="Talks I have given at conferences and meetups, with the slides, the source code, and a recording wherever one was published."/><meta name="twitter:image" content="https://iamrajiv.github.io/talks/opengraph-image.png"/><meta name="twitter:image:alt" content="Talks"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/favicon-32x32.png" type="image/png" sizes="32x32"/><link rel="icon" href="/favicon-16x16.png" type="image/png" sizes="16x16"/><link rel="apple-touch-icon" href="/apple-touch-icon.png" type="image/png" sizes="180x180"/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
1</head><body><div hidden=""><!--$--><!--/$--></div>
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})(["class","data-theme"],"theme","system",null,["light","dark"],null,true,true)</script>
1<div class="mx-auto flex min-h-dvh w-full max-w-site flex-col px-5 sm:px-6"><a href="#main" class="sr-only focus-visible:not-sr-only focus-visible:fixed focus-visible:top-2 focus-visible:left-2 focus-visible:z-50 focus-visible:border focus-visible:bg-background focus-visible:px-3 focus-visible:py-2 focus-visible:font-mono focus-visible:text-label focus-visible:uppercase">Skip to content</a><header class="sticky top-0 z-40 flex items-center justify-between gap-3 border-b bg-background py-3.5"><a aria-label="Rajiv Singh home" class="inline-flex min-h-11 shrink-0 items-center transition-colors duration-150 hover:text-muted-foreground" href="/"><span class="font-mono text-label font-semibold whitespace-nowrap uppercase shrink-0">Rajiv Singh</span></a><div class="flex min-w-0 items-center gap-2 sm:gap-3"><div class="hidden md:block"><nav aria-label="Primary" class="flex items-center gap-3 sm:gap-4"><a data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 gap-1 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground" href="/writing/">Writing</a><a data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 gap-1 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground" href="/projects/">Projects</a><a aria-current="page" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 gap-1 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label uppercase transition-colors duration-150 hover:no-underline font-semibold text-foreground" href="/talks/">Talks</a><a data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 gap-1 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground" href="/experience/">Experience</a><a data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 gap-1 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground" href="/about/">About</a><a href="https://drive.google.com/file/d/19rwhr4MmyU62FZszQJGH9YAoEhoD0CLT/view?usp=sharing" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 gap-1 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground">Resume<span class="sr-only"> (opens in a new tab)</span></a></nav></div><button data-slot="button" data-variant="ghost" data-size="icon" class="group/button inline-flex items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-muted aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 size-11 shrink-0 text-muted-foreground transition-colors duration-150 hover:text-foreground" aria-label="Search" aria-haspopup="dialog" aria-expanded="false"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="size-4" aria-hidden="true" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg></button><div class="size-11" aria-hidden="true"></div><button data-slot="button" data-variant="ghost" data-size="icon" class="group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 size-11 md:hidden" aria-label="Open menu" aria-haspopup="dialog" aria-expanded="false"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="size-4" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg></button></div></header><main id="main" class="min-w-0 flex-1 py-7 sm:py-8"><section><h1 class="text-headline text-balance">Talks</h1><div class="mt-6"><div class="space-y-6"><section class="grid grid-cols-[minmax(0,1fr)] gap-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:gap-0"><h2 class="border-b pb-2 font-mono text-label text-foreground uppercase sm:border-b-0 sm:pt-3 sm:pb-0 sm:text-muted-foreground">2026</h2><ul class="min-w-0 divide-y sm:border-l sm:pl-6"><li><div id="opensearchcon-north-america-2026" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><div class="w-40 shrink-0 sm:w-44"><img alt="Building a High Throughput OpenSearch Ingestor using Go recording" decoding="async" loading="lazy" src="/images/talks/opensearchcon-north-america-2026.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/></div><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">OpenSearchCon North America 2026<span class="font-normal text-muted-foreground">, <!-- -->San Jose, USA</span></h3><p class="text-copy text-pretty">Building a High Throughput OpenSearch Ingestor using Go</p><nav aria-label="Resources for OpenSearchCon North America 2026" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://iamrajiv.github.io/opensearchcon-north-america-2026/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/opensearchcon-north-america-2026" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li><li><div id="wearedevelopers-world-congress-europe-2026" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.wearedevelopers.com/videos/2072-exploring-the-power-of-grpc-gateway-for-writing-restful-services" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="Exploring the Power of gRPC-Gateway for Writing RESTful Services recording" decoding="async" loading="lazy" src="/images/talks/wearedevelopers-world-congress-europe-2026.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/><span class="sr-only">Watch <!-- -->Exploring the Power of gRPC-Gateway for Writing RESTful Services<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">WeAreDevelopers World Congress Europe 2026<span class="font-normal text-muted-foreground">, <!-- -->Virtual</span></h3><p class="text-copy text-pretty">Exploring the Power of gRPC-Gateway for Writing RESTful Services</p><nav aria-label="Resources for WeAreDevelopers World Congress Europe 2026" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.wearedevelopers.com/videos/2072-exploring-the-power-of-grpc-gateway-for-writing-restful-services" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/wearedevelopers-world-congress-europe-2026/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/wearedevelopers-world-congress-europe-2026" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li></ul></section><section class="grid grid-cols-[minmax(0,1fr)] gap-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:gap-0"><h2 class="border-b pb-2 font-mono text-label text-foreground uppercase sm:border-b-0 sm:pt-3 sm:pb-0 sm:text-muted-foreground">2025</h2><ul class="min-w-0 divide-y sm:border-l sm:pl-6"><li><div id="grpconf-india-2025" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=hWhmhvje-pE" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="Writing RESTful APIs Using gRPC-Gateway recording" decoding="async" loading="lazy" src="/images/talks/grpconf-india-2025.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/><span class="sr-only">Watch <!-- -->Writing RESTful APIs Using gRPC-Gateway<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">gRPConf India 2025<span class="font-normal text-muted-foreground">, <!-- -->Bengaluru, India</span></h3><p class="text-copy text-pretty">Writing RESTful APIs Using gRPC-Gateway</p><nav aria-label="Resources for gRPConf India 2025" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=hWhmhvje-pE" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/grpconf-india-2025/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/grpconf-india-2025" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li><li><div id="bazelcon-2025" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=lh-NaENSEBU" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="Go, Wasm, &amp; Bazel: A Blueprint for Hermetic, High-Performance Web Applications recording" decoding="async" loading="lazy" src="/images/talks/bazelcon-2025.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/>
1<span class="sr-only">Watch <!-- -->Go, Wasm, &amp; Bazel: A Blueprint for Hermetic, High-Performance Web Applications<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">BazelCon 2025<span class="font-normal text-muted-foreground">, <!-- -->Atlanta, USA</span></h3><p class="text-copy text-pretty">Go, Wasm, &amp; Bazel: A Blueprint for Hermetic, High-Performance Web Applications</p><nav aria-label="Resources for BazelCon 2025" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=lh-NaENSEBU" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/bazelcon-2025/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/bazelcon-2025" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li></ul></section><section class="grid grid-cols-[minmax(0,1fr)] gap-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:gap-0"><h2 class="border-b pb-2 font-mono text-label text-foreground uppercase sm:border-b-0 sm:pt-3 sm:pb-0 sm:text-muted-foreground">2024</h2><ul class="min-w-0 divide-y sm:border-l sm:pl-6"><li><div id="kubecon-cloudnativecon-india-2024" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=LaQZVxOixGY" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="WebAssembly Profiling with pprof and wzprof recording" decoding="async" loading="lazy" src="/images/talks/kubecon-cloudnativecon-india-2024.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/><span class="sr-only">Watch <!-- -->WebAssembly Profiling with pprof and wzprof<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">KubeCon + CloudNativeCon India 2024<span class="font-normal text-muted-foreground">, <!-- -->Delhi, India</span></h3><p class="text-copy text-pretty">WebAssembly Profiling with pprof and wzprof</p><nav aria-label="Resources for KubeCon + CloudNativeCon India 2024" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=LaQZVxOixGY" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>
1Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/kubecon-cloudnativecon-india-2024/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/kubecon-cloudnativecon-india-2024" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li><li><div id="polaris-school-of-technology-2024" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><div class="w-40 shrink-0 sm:w-44"><img alt="A GSoC Journey recording" decoding="async" loading="lazy" src="/images/talks/polaris-school-of-technology-2024.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/></div><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">Polaris School of Technology<span class="font-normal text-muted-foreground">, <!-- -->Bengaluru, India</span></h3><p class="text-copy text-pretty">A GSoC Journey</p><nav aria-label="Resources for Polaris School of Technology" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://iamrajiv.github.io/polaris-school-of-technology-2024/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/polaris-school-of-technology-2024" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li><li><div id="civo-navigate-europe-2024" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=9fxMbaHSSiI" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="Profiling WebAssembly with pprof and wzprof recording" decoding="async" loading="lazy" src="/images/talks/civo-navigate-europe-2024.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/><span class="sr-only">Watch <!-- -->Profiling WebAssembly with pprof and wzprof<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">Civo Navigate Europe 2024<span class="font-normal text-muted-foreground">, <!-- -->Berlin, Germany</span></h3><p class="text-copy text-pretty">Profiling WebAssembly with pprof and wzprof</p><nav aria-label="Resources for Civo Navigate Europe 2024" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=9fxMbaHSSiI" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/civo-navigate-europe-2024/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/civo-navigate-europe-2024" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li><li><div id="kubecon-cloudnativecon-europe-2024" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=_HVTowUgXqo" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="Maximizing Go&#x27;s Capabilities with the WebAssembly System Interface recording" decoding="async" loading="lazy" src="/images/talks/kubecon-cloudnativecon-europe-2024.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/>
1<span class="sr-only">Watch <!-- -->Maximizing Go&#x27;s Capabilities with the WebAssembly System Interface<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">KubeCon + CloudNativeCon Europe 2024<span class="font-normal text-muted-foreground">, <!-- -->Paris, France</span></h3><p class="text-copy text-pretty">Maximizing Go&#x27;s Capabilities with the WebAssembly System Interface</p><nav aria-label="Resources for KubeCon + CloudNativeCon Europe 2024" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=_HVTowUgXqo" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/kubecon-cloudnativecon-europe-2024/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/kubecon-cloudnativecon-europe-2024" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li><li><div id="wasm-io-2024" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=d4MpdItNtfg" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="Empowering Go with WebAssembly System Interface (WASI) Unleashed recording" decoding="async" loading="lazy" src="/images/talks/wasm-io-2024.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/><span class="sr-only">Watch <!-- -->Empowering Go with WebAssembly System Interface (WASI) Unleashed<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">Wasm I/O 2024<span class="font-normal text-muted-foreground">, <!-- -->Barcelona, Spain</span></h3><p class="text-copy text-pretty">Empowering Go with WebAssembly System Interface (WASI) Unleashed</p><nav aria-label="Resources for Wasm I/O 2024" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=d4MpdItNtfg" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/wasm-io-2024/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/wasm-io-2024" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li></ul></section><section class="grid grid-cols-[minmax(0,1fr)] gap-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:gap-0"><h2 class="border-b pb-2 font-mono text-label text-foreground uppercase sm:border-b-0 sm:pt-3 sm:pb-0 sm:text-muted-foreground">2023</h2><ul class="min-w-0 divide-y sm:border-l sm:pl-6"><li><div id="gnome-asia-summit-2023" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=yUzYnesdHeM&amp;t=20446s" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="Exploring the Power of gRPC-Gateway for Writing RESTful Services recording" decoding="async" loading="lazy" src="/images/talks/gnome-asia-summit-2023.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/><span class="sr-only">Watch <!-- -->Exploring the Power of gRPC-Gateway for Writing RESTful Services<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">GNOME Asia Summit 2023<span class="font-normal text-muted-foreground">, <!-- -->Kathmandu, Nepal</span></h3><p class="text-copy text-pretty">Exploring the Power of gRPC-Gateway for Writing RESTful Services</p><nav aria-label="Resources for GNOME Asia Summit 2023" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=yUzYnesdHeM&amp;t=20446s" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/gnome-asia-summit-2023/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/gnome-asia-summit-2023" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li><li><div id="wasmcon-2023" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=Qu8nH5iqbzo" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="Unleashing the Power of WebAssembly System Interface (WASI) in Go recording" decoding="async" loading="lazy" src="/images/talks/wasmcon-2023.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/>
1<span class="sr-only">Watch <!-- -->Unleashing the Power of WebAssembly System Interface (WASI) in Go<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">WasmCon 2023<span class="font-normal text-muted-foreground">, <!-- -->Virtual</span></h3><p class="text-copy text-pretty">Unleashing the Power of WebAssembly System Interface (WASI) in Go</p><nav aria-label="Resources for WasmCon 2023" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=Qu8nH5iqbzo" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/wasmcon-2023/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/wasmcon-2023" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;
1size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li><li><div id="grpc-community-meetup-and-office-hours" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=T6ufWSP4Zic" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="Exploring the Power of gRPC-Gateway for Writing RESTful Services recording" decoding="async" loading="lazy" src="/images/talks/grpc-community-meetup-and-office-hours.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/><span class="sr-only">Watch <!-- -->Exploring the Power of gRPC-Gateway for Writing RESTful Services<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">gRPC Community Meetup and Office Hours<span class="font-normal text-muted-foreground">, <!-- -->Virtual</span></h3><p class="text-copy text-pretty">Exploring the Power of gRPC-Gateway for Writing RESTful Services</p><nav aria-label="Resources for gRPC Community Meetup and Office Hours" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=T6ufWSP4Zic" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/grpc-community-meetup-and-office-hours/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;
1size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/grpc-community-meetup-and-office-hours" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li></ul></section><section class="grid grid-cols-[minmax(0,1fr)] gap-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:gap-0"><h2 class="border-b pb-2 font-mono text-label text-foreground uppercase sm:border-b-0 sm:pt-3 sm:pb-0 sm:text-muted-foreground">2022</h2><ul class="min-w-0 divide-y sm:border-l sm:pl-6"><li><div id="gsoc-2022-final-demo" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=RSnJ4u81Tuc" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="GSoC 2022 Keptn Final Demonstration recording" decoding="async" loading="lazy" src="/images/talks/gsoc-2022-final-demo.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/><span class="sr-only">Watch <!-- -->GSoC 2022 Keptn Final Demonstration<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">Google Summer of Code 2022<span class="font-normal text-muted-foreground">, <!-- -->Virtual</span></h3><p class="text-copy text-pretty">GSoC 2022 Keptn Final Demonstration</p><nav aria-label="Resources for Google Summer of Code 2022" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=RSnJ4u81Tuc" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/gsoc-2022/slides/final-demo/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/gsoc-2022" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li><li><div id="gsoc-2022-midterm-demo" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=qn5NCDH5ySY" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="GSoC 2022 Keptn Midterm Demonstration recording" decoding="async" loading="lazy" src="/images/talks/gsoc-2022-midterm-demo.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/>
1<span class="sr-only">Watch <!-- -->GSoC 2022 Keptn Midterm Demonstration<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">Google Summer of Code 2022<span class="font-normal text-muted-foreground">, <!-- -->Virtual</span></h3><p class="text-copy text-pretty">GSoC 2022 Keptn Midterm Demonstration</p><nav aria-label="Resources for Google Summer of Code 2022" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=qn5NCDH5ySY" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/gsoc-2022/slides/midterm-demo/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/gsoc-2022" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;
1size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li><li><div id="gophercon-europe-2022" class="flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5"><a href="https://www.youtube.com/watch?v=4ojDihmBdh8" target="_blank" rel="noopener noreferrer" class="group w-40 shrink-0 sm:w-44"><img alt="Generate RESTful services using gRPC-Gateway recording" decoding="async" loading="lazy" src="/images/talks/gophercon-europe-2022.jpg" width="640" height="360" class="aspect-video w-full border bg-background-secondary object-cover"/><span class="sr-only">Watch <!-- -->Generate RESTful services using gRPC-Gateway<!-- --> (opens in a new tab)</span></a><div class="flex min-w-0 flex-1 flex-col gap-1"><h3 class="text-title text-pretty">GopherCon Europe 2022<span class="font-normal text-muted-foreground">, <!-- -->Virtual</span></h3><p class="text-copy text-pretty">Generate RESTful services using gRPC-Gateway</p><nav aria-label="Resources for GopherCon Europe 2022" class="mt-1 flex flex-wrap items-center gap-x-5"><a href="https://www.youtube.com/watch?v=4ojDihmBdh8" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>Recording<span class="sr-only"> (opens in a new tab)</span></a><a href="https://iamrajiv.github.io/gophercon-europe-2022/" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;
1size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Slides<span class="sr-only"> (opens in a new tab)</span></a><a href="https://github.com/iamrajiv/gophercon-europe-2022" target="_blank" rel="noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>Repository<span class="sr-only"> (opens in a new tab)</span></a></nav></div></div></li></ul></section></div></div>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#opensearchcon-north-america-2026","name":"Building a High Throughput OpenSearch Ingestor using Go","description":"Building an ingestion tool from scratch on the opensearch-go client: a worker pool sending bulk requests in parallel, bounded channels for backpressure so the cluster is never overloaded, and per-document retries with backoff and a dead-letter file so nothing is lost — measured at 150,000 documents a second on one node.","url":"https://iamrajiv.github.io/talks/#opensearchcon-north-america-2026","inLanguage":"en-US","location":{"@type":"Place","name":"San Jose, USA","geo":{"@type":"GeoCoordinates","latitude":37.3382,"longitude":-121.8863}},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["Go","OpenSearch","Performance"],"subjectOf":[{"@type":"PresentationDigitalDocument","name":"Building a High Throughput OpenSearch Ingestor using Go slides","url":"https://iamrajiv.github.io/opensearchcon-north-america-2026/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026","name":"Exploring the Power of gRPC-Gateway for Writing RESTful Services","description":"What gRPC-Gateway is and how it works, the four ways to map HTTP onto a gRPC service, and a hello world that serves gRPC and RESTful clients from one protobuf definition — then the production concerns: custom URL mappings, streaming, and error handling. Delivered as a pre-recorded session for the World Congress Virtual Stage.","url":"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026","inLanguage":"en-US","location":{"@type":"VirtualLocation","url":"https://www.wearedevelopers.com/videos/2072-exploring-the-power-of-grpc-gateway-for-writing-restful-services"},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["Go","gRPC","APIs"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026-recording"},{"@type":"PresentationDigitalDocument","name":"Exploring the Power of gRPC-Gateway for Writing RESTful Services slides","url":"https://iamrajiv.github.io/wearedevelopers-world-congress-europe-2026/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026-recording","name":"Exploring the Power of gRPC-Gateway for Writing RESTful Services","description":"What gRPC-Gateway is and how it works, the four ways to map HTTP onto a gRPC service, and a hello world that serves gRPC and RESTful clients from one protobuf definition — then the production concerns: custom URL mappings, streaming, and error handling. Delivered as a pre-recorded session for the World Congress Virtual Stage.","url":"https://www.wearedevelopers.com/videos/2072-exploring-the-power-of-grpc-gateway-for-writing-restful-services","contentUrl":"https://www.wearedevelopers.com/videos/2072-exploring-the-power-of-grpc-gateway-for-writing-restful-services","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026"},"keywords":["Go","gRPC","APIs"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#grpconf-india-2025","name":"Writing RESTful APIs Using gRPC-Gateway","description":"The protoc plugin that generates a reverse proxy in front of a gRPC service, the ways to map HTTP onto it, and a hello world serving both protocols from a single protobuf definition — with the OpenAPI documentation that comes out of the same source for free.","url":"https://iamrajiv.github.io/talks/#grpconf-india-2025","inLanguage":"en-US","location":{"@type":"Place","name":"Bengaluru, India","geo":{"@type":"GeoCoordinates","latitude":12.9716,"longitude":77.5946}},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["Go","gRPC","APIs"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#grpconf-india-2025-recording"},{"@type":"PresentationDigitalDocument","name":"Writing RESTful APIs Using gRPC-Gateway slides","url":"https://iamrajiv.github.io/grpconf-india-2025/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#grpconf-india-2025-recording","name":"Writing RESTful APIs Using gRPC-Gateway","description":"The protoc plugin that generates a reverse proxy in front of a gRPC service, the ways to map HTTP onto it, and a hello world serving both protocols from a single protobuf definition — with the OpenAPI documentation that comes out of the same source for free.","url":"https://www.youtube.com/watch?v=hWhmhvje-pE","contentUrl":"https://www.youtube.com/watch?v=hWhmhvje-pE","embedUrl":"https://www.youtube.com/embed/hWhmhvje-pE","thumbnailUrl":"https://i.ytimg.com/vi/hWhmhvje-pE/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#grpconf-india-2025","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#grpconf-india-2025"},"keywords":["Go","gRPC","APIs"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#bazelcon-2025","name":"Go, Wasm, & Bazel: A Blueprint for Hermetic, High-Performance Web Applications","description":"Where Go's WebAssembly builds stop being reproducible, and what Bazel changes: the build and dependency problems that surface when targeting Wasm with go build, the caching, parallelism, and hermeticity Bazel brings instead, and a migration path from one to the other.","url":"https://iamrajiv.github.io/talks/#bazelcon-2025","inLanguage":"en-US","location":{"@type":"Place","name":"Atlanta, USA","geo":{"@type":"GeoCoordinates","latitude":33.749,"longitude":-84.388}},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Naman Lakhwani"}],"keywords":["Go","WebAssembly","Bazel"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#bazelcon-2025-recording"},{"@type":"PresentationDigitalDocument","name":"Go, Wasm, & Bazel: A Blueprint for Hermetic, High-Performance Web Applications slides","url":"https://iamrajiv.github.io/bazelcon-2025/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Naman Lakhwani"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#bazelcon-2025-recording","name":"Go, Wasm, & Bazel: A Blueprint for Hermetic, High-Performance Web Applications","description":"Where Go's WebAssembly builds stop being reproducible, and what Bazel changes: the build and dependency problems that surface when targeting Wasm with go build, the caching, parallelism, and hermeticity Bazel brings instead, and a migration path from one to the other.","url":"https://www.youtube.com/watch?v=lh-NaENSEBU","contentUrl":"https://www.youtube.com/watch?v=lh-NaENSEBU","embedUrl":"https://www.youtube.com/embed/lh-NaENSEBU","thumbnailUrl":"https://i.ytimg.com/vi/lh-NaENSEBU/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#bazelcon-2025","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Naman Lakhwani"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#bazelcon-2025"},"keywords":["Go","WebAssembly","Bazel"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024","name":"WebAssembly Profiling with pprof and wzprof","description":"What profiling actually measures and how pprof collects it in Go, then the same investigation for a WebAssembly program with wzprof: generating CPU and memory profiles, and reading the results back.","url":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024","inLanguage":"en-US","location":{"@type":"Place","name":"Delhi, India","geo":{"@type":"GeoCoordinates","latitude":28.6139,"longitude":77.209}},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Naman Lakhwani"}],"keywords":["WebAssembly","Profiling","pprof"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024-recording"},{"@type":"PresentationDigitalDocument","name":"WebAssembly Profiling with pprof and wzprof slides","url":"https://iamrajiv.github.io/kubecon-cloudnativecon-india-2024/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Naman Lakhwani"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024-recording","name":"WebAssembly Profiling with pprof and wzprof","description":"What profiling actually measures and how pprof collects it in Go, then the same investigation for a WebAssembly program with wzprof: generating CPU and memory profiles, and reading the results back.","url":"https://www.youtube.com/watch?v=LaQZVxOixGY","contentUrl":"https://www.youtube.com/watch?v=LaQZVxOixGY","embedUrl":"https://www.youtube.com/embed/LaQZVxOixGY","thumbnailUrl":"https://i.ytimg.com/vi/LaQZVxOixGY/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Naman Lakhwani"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024"},"keywords":["WebAssembly","Profiling","pprof"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#polaris-school-of-technology-2024","name":"A GSoC Journey","description":"An invited session for students on Google Summer of Code from both sides of the program: what it is, how to participate, writing a proposal that gets picked, and where it leads, drawn from GSoD 2020 and 2021, LFX Mentorship 2021, GSoC 2022 with Keptn, and mentoring with Jenkins since 2023.","url":"https://iamrajiv.github.io/talks/#polaris-school-of-technology-2024","inLanguage":"en-US","location":{"@type":"Place","name":"Bengaluru, India","geo":{"@type":"GeoCoordinates","latitude":12.9716,"longitude":77.5946}},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["Open Source","GSoC","Mentoring"],"subjectOf":[{"@type":"PresentationDigitalDocument","name":"A GSoC Journey slides","url":"https://iamrajiv.github.io/polaris-school-of-technology-2024/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024","name":"Profiling WebAssembly with pprof and wzprof","description":"Profiling a Go program with pprof, then carrying the same workflow over to WebAssembly with wzprof: producing CPU and memory profiles for a Wasm module and visualizing both.","url":"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024","inLanguage":"en-US","location":{"@type":"Place","name":"Berlin, Germany","geo":{"@type":"GeoCoordinates","latitude":52.52,"longitude":13.405}},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["WebAssembly","Profiling","Go"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024-recording"},{"@type":"PresentationDigitalDocument","name":"Profiling WebAssembly with pprof and wzprof slides","url":"https://iamrajiv.github.io/civo-navigate-europe-2024/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024-recording","name":"Profiling WebAssembly with pprof and wzprof","description":"Profiling a Go program with pprof, then carrying the same workflow over to WebAssembly with wzprof: producing CPU and memory profiles for a Wasm module and visualizing both.","url":"https://www.youtube.com/watch?v=9fxMbaHSSiI","contentUrl":"https://www.youtube.com/watch?v=9fxMbaHSSiI","embedUrl":"https://www.youtube.com/embed/9fxMbaHSSiI","thumbnailUrl":"https://i.ytimg.com/vi/9fxMbaHSSiI/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024"},"keywords":["WebAssembly","Profiling","Go"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024","name":"Maximizing Go's Capabilities with the WebAssembly System Interface","description":"The state of WebAssembly in Go through WASI preview 1: how WASI support arrived in the Go toolchain, how to build for the wasip1 target today, and where the work goes next — told alongside the open-source community effort that landed it.","url":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024","inLanguage":"en-US","location":{"@type":"Place","name":"Paris, France","geo":{"@type":"GeoCoordinates","latitude":48.8566,"longitude":2.3522}},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Achille Roussel"}],"keywords":["Go","WebAssembly","WASI"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024-recording"},{"@type":"PresentationDigitalDocument","name":"Maximizing Go's Capabilities with the WebAssembly System Interface slides","url":"https://iamrajiv.github.io/kubecon-cloudnativecon-europe-2024/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Achille Roussel"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024-recording","name":"Maximizing Go's Capabilities with the WebAssembly System Interface","description":"The state of WebAssembly in Go through WASI preview 1: how WASI support arrived in the Go toolchain, how to build for the wasip1 target today, and where the work goes next — told alongside the open-source community effort that landed it.","url":"https://www.youtube.com/watch?v=_HVTowUgXqo","contentUrl":"https://www.youtube.com/watch?v=_HVTowUgXqo","embedUrl":"https://www.youtube.com/embed/_HVTowUgXqo","thumbnailUrl":"https://i.ytimg.com/vi/_HVTowUgXqo/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Achille Roussel"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024"},"keywords":["Go","WebAssembly","WASI"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#wasm-io-2024","name":"Empowering Go with WebAssembly System Interface (WASI) Unleashed","description":"Go's WASI preview 1 support end to end: the history of WASI in the Go toolchain, building for the wasip1 target, calling host functions with the go:wasmimport directive, and what remains ahead.","url":"https://iamrajiv.github.io/talks/#wasm-io-2024","inLanguage":"en-US","location":{"@type":"Place","name":"Barcelona, Spain","geo":{"@type":"GeoCoordinates","latitude":41.3874,"longitude":2.1686}},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Achille Roussel"}],"keywords":["Go","WebAssembly","WASI"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#wasm-io-2024-recording"},{"@type":"PresentationDigitalDocument","name":"Empowering Go with WebAssembly System Interface (WASI) Unleashed slides","url":"https://iamrajiv.github.io/wasm-io-2024/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Achille Roussel"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#wasm-io-2024-recording","name":"Empowering Go with WebAssembly System Interface (WASI) Unleashed","description":"Go's WASI preview 1 support end to end: the history of WASI in the Go toolchain, building for the wasip1 target, calling host functions with the go:wasmimport directive, and what remains ahead.","url":"https://www.youtube.com/watch?v=d4MpdItNtfg","contentUrl":"https://www.youtube.com/watch?v=d4MpdItNtfg","embedUrl":"https://www.youtube.com/embed/d4MpdItNtfg","thumbnailUrl":"https://i.ytimg.com/vi/d4MpdItNtfg/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#wasm-io-2024","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"},{"@type":"Person","name":"Achille Roussel"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#wasm-io-2024"},"keywords":["Go","WebAssembly","WASI"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023","name":"Exploring the Power of gRPC-Gateway for Writing RESTful Services","description":"Why a service often needs REST and gRPC at once, then gRPC-Gateway as the answer: defining the service, writing the server logic, and generating the stubs. Presented at St. Xavier's College, Kathmandu.","url":"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023","inLanguage":"en-US","location":{"@type":"Place","name":"Kathmandu, Nepal","geo":{"@type":"GeoCoordinates","latitude":27.7172,"longitude":85.324}},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["Go","gRPC","APIs"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023-recording"},{"@type":"PresentationDigitalDocument","name":"Exploring the Power of gRPC-Gateway for Writing RESTful Services slides","url":"https://iamrajiv.github.io/gnome-asia-summit-2023/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023-recording","name":"Exploring the Power of gRPC-Gateway for Writing RESTful Services","description":"Why a service often needs REST and gRPC at once, then gRPC-Gateway as the answer: defining the service, writing the server logic, and generating the stubs. Presented at St. Xavier's College, Kathmandu.","url":"https://www.youtube.com/watch?v=yUzYnesdHeM&t=20446s","contentUrl":"https://www.youtube.com/watch?v=yUzYnesdHeM&t=20446s","embedUrl":"https://www.youtube.com/embed/yUzYnesdHeM","thumbnailUrl":"https://i.ytimg.com/vi/yUzYnesdHeM/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023"},"keywords":["Go","gRPC","APIs"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#wasmcon-2023","name":"Unleashing the Power of WebAssembly System Interface (WASI) in Go","description":"What WASI gives a WebAssembly module — files, clocks, sockets, and environment without binding to a single operating system — how Go compiles to it, and what the Go and WebAssembly toolchain makes possible today. Presented remotely to the Linux Foundation event in Bellevue.","url":"https://iamrajiv.github.io/talks/#wasmcon-2023","inLanguage":"en-US","location":{"@type":"VirtualLocation","url":"https://www.youtube.com/watch?v=Qu8nH5iqbzo"},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["Go","WebAssembly","WASI"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#wasmcon-2023-recording"},{"@type":"PresentationDigitalDocument","name":"Unleashing the Power of WebAssembly System Interface (WASI) in Go slides","url":"https://iamrajiv.github.io/wasmcon-2023/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#wasmcon-2023-recording","name":"Unleashing the Power of WebAssembly System Interface (WASI) in Go","description":"What WASI gives a WebAssembly module — files, clocks, sockets, and environment without binding to a single operating system — how Go compiles to it, and what the Go and WebAssembly toolchain makes possible today. Presented remotely to the Linux Foundation event in Bellevue.","url":"https://www.youtube.com/watch?v=Qu8nH5iqbzo","contentUrl":"https://www.youtube.com/watch?v=Qu8nH5iqbzo","embedUrl":"https://www.youtube.com/embed/Qu8nH5iqbzo","thumbnailUrl":"https://i.ytimg.com/vi/Qu8nH5iqbzo/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#wasmcon-2023","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#wasmcon-2023"},"keywords":["Go","WebAssembly","WASI"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours","name":"Exploring the Power of gRPC-Gateway for Writing RESTful Services","description":"The trade-offs on both sides of gRPC and REST, then gRPC-Gateway and a Hello World REST service built with it. The opening session of the relaunched gRPC Community Meetup, followed by office hours; the live session was not recorded, so the published recording is a re-recording made afterwards at the gRPC team's request.","url":"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours","inLanguage":"en-US","location":{"@type":"VirtualLocation","url":"https://www.youtube.com/watch?v=T6ufWSP4Zic"},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["Go","gRPC","APIs"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours-recording"},{"@type":"PresentationDigitalDocument","name":"Exploring the Power of gRPC-Gateway for Writing RESTful Services slides","url":"https://iamrajiv.github.io/grpc-community-meetup-and-office-hours/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours-recording","name":"Exploring the Power of gRPC-Gateway for Writing RESTful Services","description":"The trade-offs on both sides of gRPC and REST, then gRPC-Gateway and a Hello World REST service built with it. The opening session of the relaunched gRPC Community Meetup, followed by office hours; the live session was not recorded, so the published recording is a re-recording made afterwards at the gRPC team's request.","url":"https://www.youtube.com/watch?v=T6ufWSP4Zic","contentUrl":"https://www.youtube.com/watch?v=T6ufWSP4Zic","embedUrl":"https://www.youtube.com/embed/T6ufWSP4Zic","thumbnailUrl":"https://i.ytimg.com/vi/T6ufWSP4Zic/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours"},"keywords":["Go","gRPC","APIs"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo","name":"GSoC 2022 Keptn Final Demonstration","description":"The final demonstration of the new Docusaurus-based documentation site engine delivered for Keptn during Google Summer of Code.","url":"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo","inLanguage":"en-US","location":{"@type":"VirtualLocation","url":"https://www.youtube.com/watch?v=RSnJ4u81Tuc"},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["Keptn","Docusaurus","Open Source"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo-recording"},{"@type":"PresentationDigitalDocument","name":"GSoC 2022 Keptn Final Demonstration slides","url":"https://iamrajiv.github.io/gsoc-2022/slides/final-demo/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo-recording","name":"GSoC 2022 Keptn Final Demonstration","description":"The final demonstration of the new Docusaurus-based documentation site engine delivered for Keptn during Google Summer of Code.","url":"https://www.youtube.com/watch?v=RSnJ4u81Tuc","contentUrl":"https://www.youtube.com/watch?v=RSnJ4u81Tuc","embedUrl":"https://www.youtube.com/embed/RSnJ4u81Tuc","thumbnailUrl":"https://i.ytimg.com/vi/RSnJ4u81Tuc/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo"},"keywords":["Keptn","Docusaurus","Open Source"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo","name":"GSoC 2022 Keptn Midterm Demonstration","description":"A midterm progress demonstration of the documentation site engine project for Keptn during Google Summer of Code.","url":"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo","inLanguage":"en-US","location":{"@type":"VirtualLocation","url":"https://www.youtube.com/watch?v=qn5NCDH5ySY"},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["Keptn","Docusaurus","Open Source"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo-recording"},{"@type":"PresentationDigitalDocument","name":"GSoC 2022 Keptn Midterm Demonstration slides","url":"https://iamrajiv.github.io/gsoc-2022/slides/midterm-demo/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo-recording","name":"GSoC 2022 Keptn Midterm Demonstration","description":"A midterm progress demonstration of the documentation site engine project for Keptn during Google Summer of Code.","url":"https://www.youtube.com/watch?v=qn5NCDH5ySY","contentUrl":"https://www.youtube.com/watch?v=qn5NCDH5ySY","embedUrl":"https://www.youtube.com/embed/qn5NCDH5ySY","thumbnailUrl":"https://i.ytimg.com/vi/qn5NCDH5ySY/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo"},"keywords":["Keptn","Docusaurus","Open Source"]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Event","@id":"https://iamrajiv.github.io/talks/#gophercon-europe-2022","name":"Generate RESTful services using gRPC-Gateway","description":"Why a gRPC service often still owes its callers an HTTP/JSON API — backward compatibility, and languages and clients gRPC does not serve well — and how to generate one from the same gRPC definition with gRPC-Gateway. Presented remotely to the conference in Berlin.","url":"https://iamrajiv.github.io/talks/#gophercon-europe-2022","inLanguage":"en-US","location":{"@type":"VirtualLocation","url":"https://www.youtube.com/watch?v=4ojDihmBdh8"},"performer":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"keywords":["Go","gRPC","APIs"],"subjectOf":[{"@id":"https://iamrajiv.github.io/talks/#gophercon-europe-2022-recording"},{"@type":"PresentationDigitalDocument","name":"Generate RESTful services using gRPC-Gateway slides","url":"https://iamrajiv.github.io/gophercon-europe-2022/","inLanguage":"en-US","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}]}]},{"@type":"VideoObject","@id":"https://iamrajiv.github.io/talks/#gophercon-europe-2022-recording","name":"Generate RESTful services using gRPC-Gateway","description":"Why a gRPC service often still owes its callers an HTTP/JSON API — backward compatibility, and languages and clients gRPC does not serve well — and how to generate one from the same gRPC definition with gRPC-Gateway. Presented remotely to the conference in Berlin.","url":"https://www.youtube.com/watch?v=4ojDihmBdh8","contentUrl":"https://www.youtube.com/watch?v=4ojDihmBdh8","embedUrl":"https://www.youtube.com/embed/4ojDihmBdh8","thumbnailUrl":"https://i.ytimg.com/vi/4ojDihmBdh8/maxresdefault.jpg","inLanguage":"en-US","mainEntityOfPage":"https://iamrajiv.github.io/talks/#gophercon-europe-2022","creator":[{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}],"recordedAt":{"@id":"https://iamrajiv.github.io/talks/#gophercon-europe-2022"},"keywords":["Go","gRPC","APIs"]}]}</script>
1</section><!--$--><!--/$--></main><footer class="flex flex-wrap items-center justify-between gap-4 border-t py-6"><p class="font-mono text-label text-muted-foreground uppercase">© <!-- -->2026<!-- --> <!-- -->Rajiv Singh</p><nav aria-label="Footer" class="flex flex-wrap items-center gap-x-4 gap-y-1"><a href="mailto:[email protected]" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="color:#EA4335" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg>Email</a><a href="https://github.com/iamrajiv" target="_blank" rel="me noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0 text-foreground" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg>GitHub<span class="sr-only"> (opens in a new tab)</span></a><a href="https://www.linkedin.com/in/iamrajivranjansingh" target="_blank" rel="me noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" aria-hidden="true" style="color:#0A66C2" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg>LinkedIn<span class="sr-only"> (opens in a new tab)</span></a><a href="https://twitter.com/therajiv" target="_blank" rel="me noopener noreferrer" data-slot="button" data-variant="link" data-size="sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5"><svg stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" aria-hidden="true" class="size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0 text-foreground" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"></path></svg>X<span class="sr-only"> (opens in a new tab)</span></a></nav></footer></div>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Person","name":"Rajiv Ranjan Singh","alternateName":"Rajiv Singh","url":"https://iamrajiv.github.io","image":"https://iamrajiv.github.io/images/avatar.jpg","jobTitle":"Software Engineer, Platform Engineering","email":"mailto:[email protected]","worksFor":{"@type":"Organization","name":"A.P. Moller - Maersk","url":"https://www.maersk.com"},"alumniOf":{"@type":"CollegeOrUniversity","name":"JSS Academy of Technical Education, Bengaluru"},"address":{"@type":"PostalAddress","addressLocality":"Bengaluru, India"},"knowsAbout":["Backend systems","Distributed systems","Algorithms","Go","Open source","gRPC","WebAssembly"],"sameAs":["https://github.com/iamrajiv","https://twitter.com/therajiv","https://www.linkedin.com/in/iamrajivranjansingh","https://iamrajiv.hashnode.dev","https://iamrajivranjansingh.medium.com","https://dev.to/iamrajiv","https://gitlab.com/iamrajiv","https://stackoverflow.com/users/10765954/rajiv-ranjan-singh","https://stackexchange.com/users/14236807/rajiv-ranjan-singh","https://scholar.google.com/citations?user=WfnukvEAAAAJ","https://orcid.org/0000-0002-1266-4790","https://www.youtube.com/@iamrajiv","https://www.instagram.com/iamrajivranjansingh","https://www.facebook.com/iamrajivranjansingh","https://www.quora.com/profile/Rajiv-Ranjan-Singh-67","https://keybase.io/iamrajiv","https://www.strava.com/athletes/iamrajiv","https://topmate.io/iamrajiv"]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Rajiv Singh","description":"Software engineer building backend systems, developer platforms, and infrastructure in Go.","url":"https://iamrajiv.github.io","inLanguage":"en-US","publisher":{"@type":"Person","name":"Rajiv Ranjan Singh","url":"https://iamrajiv.github.io"}}</script>
1<script type="module" defer="" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon="{&quot;token&quot;:&quot;e5ec72e3a9b94354bee394f0d99de4c0&quot;}"></script>
1<script src="/_next/static/chunks/0oeds6xg-zier.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[72111,[\"/_next/static/chunks/0lcbwy44y8n_c.js\",\"/_next/static/chunks/29oan_tikaa-d.js\",\"/_next/static/chunks/1yzzg6dc7c8k1.js\",\"/_next/static/chunks/235t4ri4lz9s3.js\"],\"ThemeProvider\"]\n3:I[22016,[\"/_next/static/chunks/0lcbwy44y8n_c.js\",\"/_next/static/chunks/29oan_tikaa-d.js\",\"/_next/static/chunks/1yzzg6dc7c8k1.js\",\"/_next/static/chunks/235t4ri4lz9s3.js\"],\"\"]\n4:I[23342,[\"/_next/static/chunks/0lcbwy44y8n_c.js\",\"/_next/static/chunks/29oan_tikaa-d.js\",\"/_next/static/chunks/1yzzg6dc7c8k1.js\",\"/_next/static/chunks/235t4ri4lz9s3.js\"],\"SiteNav\"]\n5:I[1141,[\"/_next/static/chunks/0lcbwy44y8n_c.js\",\"/_next/static/chunks/29oan_tikaa-d.js\",\"/_next/static/chunks/1yzzg6dc7c8k1.js\",\"/_next/static/chunks/235t4ri4lz9s3.js\"],\"CommandMenu\"]\n11:I[53348,[\"/_next/static/chunks/0lcbwy44y8n_c.js\",\"/_next/static/chunks/29oan_tikaa-d.js\",\"/_next/static/chunks/1yzzg6dc7c8k1.js\",\"/_next/static/chunks/235t4ri4lz9s3.js\",\"/_next/static/chunks/3ayqk_56qyv1u.js\"],\"default\"]\n:HL[\"/_next/static/chunks/2s5_lne4iidd8.css\",\"style\"]\n:HL[\"/_next/static/media/GeistMono_Variable.p.3ms9vq719j3f8.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/Geist_Variable-s.p.0mrjj4bg00-he.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\nf:X\n0:{\"P\":null,\"c\":[\"\",\"talks\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"talks\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2s5_lne4iidd8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0lcbwy44y8n_c.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/29oan_tikaa-d.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/1yzzg6dc7c8k1.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/235t4ri4lz9s3.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"className\":\"geistsans_d5a4f12f-module__Ur3q_a__variable geistmono_157ca88a-module__iaM1Ya__variable\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto flex min-h-dvh w-full max-w-site flex-col px-5 sm:px-6\",\"children\":[[\"$\",\"a\",null,{\"href\":\"#main\",\"className\":\"sr-only focus-visible:not-sr-only focus-visible:fixed focus-visible:top-2 focus-visible:left-2 focus-visible:z-50 focus-visible:border focus-visible:bg-background focus-visible:px-3 focus-visible:py-2 focus-visible:font-mono focus-visible:text-label focus-visible:uppercase\",\"children\":\"Skip to content\"}],[\"$\",\"header\",null,{\"className\":\"sticky top-0 z-40 flex items-center justify-between gap-3 border-b bg-background py-3.5\",\"children\":[[\"$\",\"$L3\",null,{\"href\":\"/\",\"aria-label\":\"Rajiv Singh home\",\"className\":\"inline-flex min-h-11 shrink-0 items-center transition-colors duration-150 hover:text-muted-foreground\",\"children\":[\"$\",\"span\",null,{\"className\":\"font-mono text-label font-semibold whitespace-nowrap uppercase shrink-0\",\"children\":\"Rajiv Singh\"}]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 items-center gap-2 sm:gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hidden md:block\",\"children\":[\"$\",\"$L4\",null,{}]}],[\"$\",\"$L5\",null,{\"pages\":[{\"label\":\"Home\",\"href\":\"/\"},{\"label\":\"Writing\",\"href\":\"/writing/\"},{\"label\":\"Projects\",\"href\":\"/projects/\"},{\"label\":\"Talks\",\"href\":\"/talks/\"},{\"label\":\"Experience\",\"href\":\"/experience/\"},{\"label\":\"About\",\"href\":\"/about/\"},{\"label\":\"Library\",\"href\":\"/library/\"},{\"label\":\"Building a High Throughput OpenSearch Ingestor using Go\",\"href\":\"/talks/#opensearchcon-north-america-2026\",\"hint\":\"OpenSearchCon North America 2026\",\"group\":\"Talks\",\"keywords\":[\"Go\",\"OpenSearch\",\"Performance\"]},{\"label\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\"href\":\"/talks/#wearedevelopers-world-congress-europe-2026\",\"hint\":\"WeAreDevelopers World Congress Europe 2026\",\"group\":\"Talks\",\"keywords\":[\"Go\",\"gRP
1C\",\"APIs\"]},{\"label\":\"Writing RESTful APIs Using gRPC-Gateway\",\"href\":\"/talks/#grpconf-india-2025\",\"hint\":\"gRPConf India 2025\",\"group\":\"Talks\",\"keywords\":[\"Go\",\"gRPC\",\"APIs\"]},{\"label\":\"Go, Wasm, \u0026 Bazel: A Blueprint for Hermetic, High-Performance Web Applications\",\"href\":\"/talks/#bazelcon-2025\",\"hint\":\"BazelCon 2025\",\"group\":\"Talks\",\"keywords\":[\"Go\",\"WebAssembly\",\"Bazel\"]},{\"label\":\"WebAssembly Profiling with pprof and wzprof\",\"href\":\"/talks/#kubecon-cloudnativecon-india-2024\",\"hint\":\"KubeCon + CloudNativeCon India 2024\",\"group\":\"Talks\",\"keywords\":[\"WebAssembly\",\"Profiling\",\"pprof\"]},{\"label\":\"A GSoC Journey\",\"href\":\"/talks/#polaris-school-of-technology-2024\",\"hint\":\"Polaris School of Technology, 2024\",\"group\":\"Talks\",\"keywords\":[\"Open Source\",\"GSoC\",\"Mentoring\"]},{\"label\":\"Profiling WebAssembly with pprof and wzprof\",\"href\":\"/talks/#civo-navigate-europe-2024\",\"hint\":\"Civo Navigate Europe 2024\",\"group\":\"Talks\",\"keywords\":[\"WebAssembly\",\"Profiling\",\"Go\"]},{\"label\":\"Maximizing Go's Capabilities with the WebAssembly System Interface\",\"href\":\"/talks/#kubecon-cloudnativecon-europe-2024\",\"hint\":\"KubeCon + CloudNativeCon Europe 2024\",\"group\":\"Talks\",\"keywords\":[\"Go\",\"WebAssembly\",\"WASI\"]},{\"label\":\"Empowering Go with WebAssembly System Interface (WASI) Unleashed\",\"href\":\"/talks/#wasm-io-2024\",\"hint\":\"Wasm I/O 2024\",\"group\":\"Talks\",\"keywords\":[\"Go\",\"WebAssembly\",\"WASI\"]},{\"label\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\"href\":\"/talks/#gnome-asia-summit-2023\",\"hint\":\"GNOME Asia Summit 2023\",\"group\":\"Talks\",\"keywords\":[\"Go\",\"gRPC\",\"APIs\"]},{\"label\":\"Unleashing the Power of WebAssembly System Interface (WASI) in Go\",\"href\":\"/talks/#wasmcon-2023\",\"hint\":\"WasmCon 2023\",\"group\":\"Talks\",\"keywords\":[\"Go\",\"WebAssembly\",\"WASI\"]},{\"label\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\"href\":\"/talks/#grpc-community-meetup-and-office-hours\",\"hint\":\"gRPC Community Meetup and Office Hours, 2023\",\"group\":\"Talks\",\"keywords\":[\"Go\",\"gRPC\",\"APIs\"]},{\"label\":\"GSoC 2022 Keptn Final Demonstration\",\"href\":\"/talks/#gsoc-2022-final-demo\",\"hint\":\"Google Summer of Code 2022\",\"group\":\"Talks\",\"keywords\":[\"Keptn\",\"Docusaurus\",\"Open Source\"]},{\"label\":\"GSoC 2022 Keptn Midterm Demonstration\",\"href\":\"/talks/#gsoc-2022-midterm-demo\",\"hint\":\"Google Summer of Code 2022\",\"group\":\"Talks\",\"keywords\":[\"Keptn\",\"Docusaurus\",\"Open Source\"]},{\"label\":\"Generate RESTful services using gRPC-Gateway\",\"href\":\"/talks/#gophercon-europe-2022\",\"hint\":\"GopherCon Europe 2022\",\"group\":\"Talks\",\"keywords\":[\"Go\",\"gRPC\",\"APIs\"]},{\"label\":\"cdevents-otel-bridge\",\"href\":\"https://github.com/iamrajiv/cdevents-otel-bridge\",\"hint\":\"Connect CDEvents from your CI/CD pipelines to OpenTelemetry traces, so every trace knows which deployment, commit and pipeline produced it.\",\"group\":\"Projects\",\"keywords\":[\"cdevents\",\"ci-cd\",\"distributed-tracing\",\"observability\",\"opentelemetry\"]},{\"label\":\"boundary-kube-injector\",\"href\":\"https://github.com/iamrajiv/boundary-kube-injector\",\"hint\":\"Interactive CLI for connecting to HashiCorp Boundary targets, navigating orgs, projects and targets, and configuring kubeconfig automatically for Kubernetes targets.\",\"group\":\"Projects\",\"keywords\":[\"cli\",\"devops\",\"hashicorp-boundary\",\"kubernetes\",\"zero-trust\"]},{\"label\":\"opentelemetry-grpc-gateway-boilerplate\",\"href\":\"https://github.com/iamrajiv/opentelemetry-grpc-gateway-boilerplate\",\"hint\":\"Boilerplate for an OpenTelemetry-instrumented gRPC-Gateway REST server, with traces flowing from the HTTP gateway through to the gRPC service behind it.\",\"group\":\"Projects\",\"keywords\":[\"grpc\",\"grpc-gateway\",\"observability\",\"opentelemetry\",\"rest\"]},{\"label\":\"basic-arithmetic-grpc-server\",\"href\":\"https://github.com/iamrajiv/basic-arithmetic-grpc-server\",\"hint\":\"A gRPC service exposing four arithmetic operations over both gRPC and REST, generated from a single protobuf definition with gRPC-Gateway.\",\"group\":\"Projects\",\"keywords\":[\"buf\",\"grpc\",\"grpc-gateway\",\"protobuf\",\"rest\"]},{\"label\":\"Resume\",\"href\":\"https://drive.google.com/file/d/19rwhr4MmyU62FZszQJGH9YAoEhoD0CLT/view?usp=sharing\",\"hint\":\"Opens in a new tab\",\"group\":\"Links\"}],\"posts\":[{\"label\":\"Google Summer of Code 2026\",\"href\":\"/writing/google-summer-of-code-2026/\",\"hint\":\"2026\",\"keywords\":[\"open-source\",\"career\"],\"slug\":\"google-summer-of-code-2026\"},{\"label\":\"Making sense of the Green Tea garbage collector\",\"href\":\"/writing/making-sense-of-the-green-tea-garbage-collector/\",\"hint\":\"2025\",\"keywords\":[\"go\",\"performance\"],\"slug\":\"making-sense-of-the-green-tea-garbage-collector\"},{\"label\":\"Decoupling web worker instantiation\",\"href\":\"/writing/decoupling-web-worker-instantiation/\",\"hint\":\"2025\",\"keywords\":[\"javascript\"],\"slug\":\"decoupling-web-worker-instantiation\"},{\"label\":\"Demystifying remote procedure calls\",\"href\":\"/writing/demystifying-remote-procedure-calls/\",\"hint\":\"2025\",\"keywords\":[\"systems\"],\"slug\":\"demystifying-remote-procedure-calls\"},{\"label\":\"Ten habits of standout developers\",\"href\":\"/writing/ten-habits-of-standout-developers/\",\"hint\":\"2025\",\"keywords\":[\"career\"],\"slug\":\"ten-habits-of-standout-developers\"},{\"label\":\"Profiling WebAssembly with pprof and wzprof\",\"href\":\"/writing/profiling-webassembly-with-pprof-and-wzprof/\",\"hint\":\"2024\",\"keywords\":[\"webassembly\",\"performance\"],\"slug\":\"profiling-webassembly-with-pprof-and-wzprof\"},{\"label\":\"Exploring the Go 1.22 release\",\"href\":\"/writing/exploring-go-1-22-release/\",\"hint\":\"2024\",\"keywords\":[\"go\"],\"slug\":\"exploring-go-1-22-release\"},{\"label\":\"The sliding window mental model\",\"href\":\"/writing/sliding-window-algorithmic-mental-model/\",\"hint\":\"2024\",\"keywords\":[\"algorithms\"],\"slug\":\"sliding-window-algorithmic-mental-model\"},{\"label\":\"API gateways, load balancers, and reverse proxies\",\"href\":\"/writing/api-gateways-load-balancers-reverse-proxies/\",\"hint\":\"2023\",\"keywords\":[\"systems\"],\"slug\":\"api-gateways-load-balancers-reverse-proxies\"},{\"label\":\"Higher-Order Functions in Go\",\"href\":\"/writing/higher-order-functions-in-go/\",\"hint\":\"2023\",\"keywords\":[\"go\",\"programming\"],\"slug\":\"higher-order-functions-in-go\"},{\"label\":\"Optimizing performance with inlining\",\"href\":\"/writing/optimizing-performance-with-inlining/\",\"hint\":\"2023\",\"keywords\":[\"go\",\"performance\"],\"slug\":\"optimizing-performance-with-inlining\"},{\"label\":\"Demystifying dangling pointers\",\"href\":\"/writing/demystifying-dangling-pointers/\",\"hint\":\"2023\",\"keywords\":[\"cpp\",\"programming\"],\"slug\":\"demystifying-dangling-pointers\"},{\"label\":\"Demystifying the columnar storage model\",\"href\":\"/writing/demystifying-columnar-storage-model/\",\"hint\":\"2023\",\"keywords\":[\"databases\",\"systems\"],\"slug\":\"demystifying-columnar-storage-model\"},{\"label\":\"Getting started with Google Summer of Code\",\"href\":\"/writing/getting-started-with-google-summer-of-code/\",\"hint\":\"2023\",\"keywords\":[\"open-source\",\"career\"],\"slug\":\"getting-started-with-google-summer-of-code\"},{\"label\":\"Improving software performance with buffers\",\"href\":\"/writing/improving-software-performance-with-buffers/\",\"hint\":\"2023\",\"keywords\":[\"go\",\"performance\"],\"slug\":\"improving-software-performance-with-buffers\"},{\"label\":\"Go resources\",\"href\":\"/writing/go-resources/\",\"hint\":\"2022\",\"keywords\":[\"go\",\"resources\"],\"slug\":\"go-resources\"},{\"label\":\"Theoretical runtime analysis of Big O notation\",\"href\":\"/writing/theoretical-runtime-analysis-of-big-o-notation/\",\"hint\":\"2022\",\"keywords\":[\"algorithms\",\"math\"],\"slug\":\"theoretical-runtime-analysis-of-big-o-notation\"},{\"label\":\"Measure elapsed time of C++ program\",\"href\":\"/writing/measure-elapsed-time-of-cpp-program/\",\"hint\":\"2022\",\"keywords\":[\"cpp\",\"programming\"],\"slug\":\"measure-elapsed-time-of-cpp-program\"},{\"label\":\"Linux Foundation Mentorship 2021\",\"href\":\"/writing/linux-foundation-mentorship-2021/\",\"hint\":\"2021\",\"keywords\":[\"open-source\"],\"slug\":\"linux-foundation-mentorship-2021\"},{\"label\":\"Google Season of Docs 2021\",\"href\":\"/writing/google-season-of-docs-202
11/\",\"hint\":\"2021\",\"keywords\":[\"open-source\",\"technical-writing\"],\"slug\":\"google-season-of-docs-2021\"},{\"label\":\"Kharagpur Winter of Code 2020\",\"href\":\"/writing/kharagpur-winter-of-code-2020/\",\"hint\":\"2021\",\"keywords\":[\"open-source\"],\"slug\":\"kharagpur-winter-of-code-2020\"},{\"label\":\"Google Season of Docs 2020\",\"href\":\"/writing/google-season-of-docs-2020/\",\"hint\":\"2020\",\"keywords\":[\"open-source\",\"technical-writing\"],\"slug\":\"google-season-of-docs-2020\"},{\"label\":\"An efficient algorithm for generating integer partitions\",\"href\":\"/writing/an-efficient-algorithm-for-generating-set-partitions/\",\"hint\":\"2020\",\"keywords\":[\"algorithms\",\"math\"],\"slug\":\"an-efficient-algorithm-for-generating-set-partitions\"},{\"label\":\"Finding Nth Fibonacci number in logarithmic time\",\"href\":\"/writing/finding-nth-fibonacci-number-in-logarithmic-time/\",\"hint\":\"2020\",\"keywords\":[\"algorithms\",\"math\"],\"slug\":\"finding-nth-fibonacci-number-in-logarithmic-time\"},{\"label\":\"Monty Hall problem\",\"href\":\"/writing/monty-hall-problem/\",\"hint\":\"2019\",\"keywords\":[\"math\",\"probability\"],\"slug\":\"monty-hall-problem\"},{\"label\":\"Discriminant of a conic section\",\"href\":\"/writing/discriminant-of-a-conic-section/\",\"hint\":\"2019\",\"keywords\":[\"math\"],\"slug\":\"discriminant-of-a-conic-section\"},{\"label\":\"Initial Commit\",\"href\":\"/writing/initial-commit/\",\"hint\":\"2018\",\"keywords\":[\"life\"],\"slug\":\"initial-commit\"}]}],\"$L6\",\"$L7\"]}]]}],\"$L8\",\"$L9\"]}]}],\"$La\",\"$Lb\",\"$Lc\"]}]}]]}],{\"children\":[\"$Ld\",{\"children\":[\"$Le\",{},null,false,null]},null,false,\"$f\"]},null,false,null],\"$L10\",false]],\"m\":\"$undefined\",\"G\":[\"$11\",[\"$L12\"]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Z7YzK4iqDIWsRYiShW6NK\"}\n13:I[88707,[\"/_next/static/chunks/0lcbwy44y8n_c.js\",\"/_next/static/chunks/29oan_tikaa-d.js\",\"/_next/static/chunks/1yzzg6dc7c8k1.js\",\"/_next/static/chunks/235t4ri4lz9s3.js\"],\"ThemeSelector\"]\n14:I[86300,[\"/_next/static/chunks/0lcbwy44y8n_c.js\",\"/_next/static/chunks/29oan_tikaa-d.js\",\"/_next/static/chunks/1yzzg6dc7c8k1.js\",\"/_next/static/chunks/235t4ri4lz9s3.js\"],\"MobileNav\"]\n15:I[39756,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n16:I[8821,[\"/_next/static/chunks/0lcbwy44y8n_c.js\",\"/_next/static/chunks/29oan_tikaa-d.js\",\"/_next/static/chunks/1yzzg6dc7c8k1.js\",\"/_next/static/chunks/235t4ri4lz9s3.js\",\"/_next/static/chunks/3o36mlor68a_2.js\"],\"default\"]\n17:I[37457,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n32:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"ViewportBoundary\"]\n34:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"MetadataBoundary\"]\n35:\"$Sreact.suspense\"\n6:[\"$\",\"$L13\",null,{\"className\":\"size-11\"}]\n7:[\"$\",\"$L14\",null,{}]\n8:[\"$\",\"main\",null,{\"id\":\"main\",\"className\":\"min-w-0 flex-1 py-7 sm:py-8\",\"children\":[\"$\",\"$L15\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$16\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3o36mlor68a_2.js\",\"async\":true}]],\"template\":[\"$\",\"$L17\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"section\",null,{\"className\":\"grid-frame my-10 flex flex-col items-start gap-5 border bg-background-secondary p-6 sm:p-10\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-label text-muted-foreground uppercase\",\"children\":\"Error 404\"}],[\"$\",\"h1\",null,{\"className\":\"text-display text-balance\",\"children\":\"Page not found.\"}],[\"$\",\"p\",null,{\"className\":\"max-w-prose text-copy text-muted-foreground\",\"children\":\"That page has moved or never existed. The writing, the talks, the projects, and everything else are still where you left them.\"}],[\"$\",\"$L3\",null,{\"href\":\"/\",\"aria-current\":\"$undefined\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"size-3\",\"aria-hidden\":\"true\",\"children\":[\"$undefined\",[[\"$\",\"line\",\"0\",{\"x1\":\"19\",\"y1\":\"12\",\"x2\":\"5\",\"y2\":\"12\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"12 19 5 12 12 5\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\" Back Home\"],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground gap-1\",\"ref\":null}],[\"$\",\"$L3\",null,{\"href\":\"/writing/\",\"aria-current\":\"$undefined\",\"children\":\"Browse writing\",\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 gap-1 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground\",\"ref\":null}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n9:[\"$\",\"footer\",null,{\"className\":\"flex flex-wrap items-center justify-between gap-4 border-t py-6\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-label text-muted-foreground uppercase\",\"children\":[\"© \",2026,\" \",\"Rajiv Singh\"]}],[\"$\",\"nav\",null,{\"aria-label\":\"Footer\",\"className\":\"flex flex-wrap items-center gap-x-4 gap-y-1\",\"children\":[[\"$\",\"a\",\"Email\",{\"href\":\"mailto:[email protected]\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"style\":{\"color\":\"#EA4335\"},\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"22,6 12,13 2,6\",\"children\":[]}]]],\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Email\"],false],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",\"GitHub\",{\"href\":\"https://github.com/iamrajiv\",\"target\":\"_blank\",\"rel\":\"me noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"role\":\"img\",\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"style\":{\"color\":\"$undefined\"},\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0 text-foreground\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\",\"children\":[]}
1]]],\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"GitHub\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L18\",\"$L19\"]}]]}]\n1a:T596,{\"@context\":\"https://schema.org\",\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"alternateName\":\"Rajiv Singh\",\"url\":\"https://iamrajiv.github.io\",\"image\":\"https://iamrajiv.github.io/images/avatar.jpg\",\"jobTitle\":\"Software Engineer, Platform Engineering\",\"email\":\"mailto:[email protected]\",\"worksFor\":{\"@type\":\"Organization\",\"name\":\"A.P. Moller - Maersk\",\"url\":\"https://www.maersk.com\"},\"alumniOf\":{\"@type\":\"CollegeOrUniversity\",\"name\":\"JSS Academy of Technical Education, Bengaluru\"},\"address\":{\"@type\":\"PostalAddress\",\"addressLocality\":\"Bengaluru, India\"},\"knowsAbout\":[\"Backend systems\",\"Distributed systems\",\"Algorithms\",\"Go\",\"Open source\",\"gRPC\",\"WebAssembly\"],\"sameAs\":[\"https://github.com/iamrajiv\",\"https://twitter.com/therajiv\",\"https://www.linkedin.com/in/iamrajivranjansingh\",\"https://iamrajiv.hashnode.dev\",\"https://iamrajivranjansingh.medium.com\",\"https://dev.to/iamrajiv\",\"https://gitlab.com/iamrajiv\",\"https://stackoverflow.com/users/10765954/rajiv-ranjan-singh\",\"https://stackexchange.com/users/14236807/rajiv-ranjan-singh\",\"https://scholar.google.com/citations?user=WfnukvEAAAAJ\",\"https://orcid.org/0000-0002-1266-4790\",\"https://www.youtube.com/@iamrajiv\",\"https://www.instagram.com/iamrajivranjansingh\",\"https://www.facebook.com/iamrajivranjansingh\",\"https://www.quora.com/profile/Rajiv-Ranjan-Singh-67\",\"https://keybase.io/iamrajiv\",\"https://www.strava.com/athletes/iamrajiv\",\"https://topmate.io/iamrajiv\"]}a:[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$1a\"}}]\nb:[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"Rajiv Singh\\\",\\\"description\\\":\\\"Software engineer building backend systems, developer platforms, and infrastructure in Go.\\\",\\\"url\\\":\\\"https://iamrajiv.github.io\\\",\\\"inLanguage\\\":\\\"en-US\\\",\\\"publisher\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Rajiv Ranjan Singh\\\",\\\"url\\\":\\\"https://iamrajiv.github.io\\\"}}\"}}]\nc:[\"$\",\"script\",null,{\"type\":\"module\",\"defer\":true,\"src\":\"https://static.cloudflareinsights.com/beacon.min.js\",\"data-cf-beacon\":\"{\\\"token\\\":\\\"e5ec72e3a9b94354bee394f0d99de4c0\\\"}\"}]\nd:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L15\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L17\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\ne:[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"section\",null,{\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-headline text-balance\",\"children\":\"Talks\"}],[\"$\",\"div\",null,{\"className\":\"mt-6\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-6\",\"children\":[[\"$\",\"section\",\"2026\",{\"className\":\"grid grid-cols-[minmax(0,1fr)] gap-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:gap-0\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"border-b pb-2 font-mono text-label text-foreground uppercase sm:border-b-0 sm:pt-3 sm:pb-0 sm:text-muted-foreground\",\"children\":\"2026\"}],[\"$\",\"ul\",null,{\"className\":\"min-w-0 divide-y sm:border-l sm:pl-6\",\"children\":[[\"$\",\"li\",\"o
1pensearchcon-north-america-2026\",{\"children\":[\"$\",\"div\",null,{\"id\":\"opensearchcon-north-america-2026\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-40 shrink-0 sm:w-44\",\"children\":[\"$\",\"img\",null,{\"alt\":\"Building a High Throughput OpenSearch Ingestor using Go recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/opensearchcon-north-america-2026.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"OpenSearchCon North America 2026\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"San Jose, USA\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Building a High Throughput OpenSearch Ingestor using Go\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for OpenSearchCon North America 2026\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[\"$undefined\",[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/opensearchcon-north-america-2026/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/opensearchcon-north-america-2026\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[\"$L1b\"]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],\"$L1c\"],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]]}]]}]]}]}],\"$L1d\"]}]]}],\"$L1e\",\"$L1f\",\"$L20\",\"$L21\"]}]}],[\"$L22\",\"$L23\",\"$L24\",\"$L25\",\"$L26\",\"$L27\",\"$L28\",\"$L29\",\"$L2a\",\"$L2b\",\"$L2c\",\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\"]]}],null,\"$L31\"]}]\n10:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L32\",null,{\"children\":\"$L33\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L34\",null,{\"children\":[\"$\",\"$35\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L36\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n12:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2s5_lne4iidd8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n62:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"OutletBoundary\"]\nf:C\n18:[\"$\",\"a\",\"LinkedIn\",{\"href\":\"https://www.linkedin.com/in/iamrajivranjansingh\",\"target\":\"_blank\",\"rel\":\"me noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 448 512\",\"aria-hidden\":\"true\",\"style\":{\"color\":\"#0A66C2\"},\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\",\"children\":[]}]]],\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"LinkedIn\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n19:[\"$\",\"a\",\"X\",{\"href\":\"https://twitter.com/therajiv\",\"target\":\"_blank\",\"rel\":\"me noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"role\":\"img\",\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"style\":{\"color\":\"$undefined\"},\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0 text-foreground\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z\",\"children\":[]}
1]]],\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"X\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n1b:[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]\n1c:[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]\n1d:[\"$\",\"li\",\"wearedevelopers-world-congress-europe-2026\",{\"children\":[\"$\",\"div\",null,{\"id\":\"wearedevelopers-world-congress-europe-2026\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.wearedevelopers.com/videos/2072-exploring-the-power-of-grpc-gateway-for-writing-restful-services\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/wearedevelopers-world-congress-europe-2026.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"WeAreDevelopers World Congress Europe 2026\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Virtual\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for WeAreDevelopers World Congress Europe 2026\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.wearedevelopers.com/videos/2072-exploring-the-power-of-grpc-gateway-for-writing-restful-services\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/wearedevelopers-world-congress-europe-2026/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],\"$L37\"]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],\"$L38\"],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L39\"]}]]}]]}]}]\n1e:[\"$\",\"section\",\"2025\",{\"className\":\"grid grid-cols-[minmax(0,1fr)] gap-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:gap-0\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"border-b pb-2 font-mono text-label text-foreground uppercase sm:border-b-0 sm:pt-3 sm:pb-0 sm:text-muted-foreground\",\"children\":\"2025\"}],[\"$\",\"ul\",null,{\"className\":\"min-w-0 divide-y sm:border-l sm:pl-6\",\"children\":[[\"$\",\"li\",\"grpconf-india-2025\",{\"children\":[\"$\",\"div\",null,{\"id\":\"grpconf-india-2025\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=hWhmhvje-pE\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"Writing RESTful APIs Using gRPC-Gateway recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/grpconf-india-2025.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"Writing RESTful APIs Using gRPC-Gateway\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"gRPConf India 2025\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Bengaluru, India\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Writing RESTful APIs Using gRPC-Gateway\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for gRPConf India 2025\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=hWhmhvje-pE\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/grpconf-india-2025/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],\"$L3a\"],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L3b\"]}]]}]]}]}],\"$L3c\"]}]]}]\n1f:[\"$\",\"section\",\"2024\",{\"className\":\"grid grid-cols-[minmax(0,1fr)] gap-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:gap-0\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"border-b pb-2 font-mono text-label text-foreground uppercase sm:border-b-0 sm:pt-3 sm:pb-0 sm:text-muted-foreground\",\"children\":\"2024\"}],[\"$\",\"ul\",null,{\"className\":\"min-w-0 divide-y sm:border-l sm:pl-6\",\"children\":[[\"$\",\"li\",\"kubecon-cloudnativecon-india-2024\",{\"children\":[\"$\",\"div\",null,{\"id\":\"kubecon-cloudnativecon-india-2024\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=LaQZVxOixGY\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"WebAssembly Profiling with pprof and wzprof recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/kubecon-cloudnativecon-india-2024.jpg\",\"width\":640,\"height\"
1:360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"WebAssembly Profiling with pprof and wzprof\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"KubeCon + CloudNativeCon India 2024\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Delhi, India\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"WebAssembly Profiling with pprof and wzprof\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for KubeCon + CloudNativeCon India 2024\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=LaQZVxOixGY\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/kubecon-cloudnativecon-india-2024/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],\"$L3d\",\"$L3e\",\"$L3f\"]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],\"$L40\"],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L41\"]}]]}]]}]}],\"$L42\",\"$L43\",\"$L44\",\"$L45\"]}]]}]\n20:[\"$\",\"section\",\"2023\",{\"className\":\"grid grid-cols-[minmax(0,1fr)] gap-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:gap-0\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"border-b pb-2 font-mono text-label text-foreground uppercase sm:border-b-0 sm:pt-3 sm:pb-0 sm:text-muted-foreground\",\"children\":\"2023\"}],[\"$\",\"ul\",null,{\"className\":\"min-w-0 divide-y sm:border-l sm:pl-6\",\"children\":[[\"$\",\"li\",\"gnome-asia-summit-2023\",{\"children\":[\"$\",\"div\",null,{\"id\":\"gnome-asia-summit-2023\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=yUzYnesdHeM\u0026t=20446s\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/gnome-asia-summit-2023.jpg\",\"width\":640,\"height\"
1:360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"GNOME Asia Summit 2023\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Kathmandu, Nepal\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for GNOME Asia Summit 2023\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=yUzYnesdHeM\u0026t=20446s\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/gnome-asia-summit-2023/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],\"$L46\",\"$L47\",\"$L48\",\"$L49\"]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],\"$L4a\"],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L4b\"]}]]}]]}]}],\"$L4c\",\"$L4d\"]}]]}]\n21:[\"$\",\"section\",\"2022\",{\"className\":\"grid grid-cols-[minmax(0,1fr)] gap-1 sm:grid-cols-[4rem_minmax(0,1fr)] sm:gap-0\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"border-b pb-2 font-mono text-label text-foreground uppercase sm:border-b-0 sm:pt-3 sm:pb-0 sm:text-muted-foreground\",\"children\":\"2022\"}],[\"$\",\"ul\",null,{\"className\":\"min-w-0 divide-y sm:border-l sm:pl-6\",\"children\":[[\"$\",\"li\",\"gsoc-2022-final-demo\",{\"children\":[\"$\",\"div\",null,{\"id\":\"gsoc-2022-final-demo\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=RSnJ4u81Tuc\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"GSoC 2022 Keptn Final Demonstration recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/gsoc-2022-final-demo.jpg\",\"width\":640,\"height\"
1:360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"GSoC 2022 Keptn Final Demonstration\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"Google Summer of Code 2022\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Virtual\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"GSoC 2022 Keptn Final Demonstration\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for Google Summer of Code 2022\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=RSnJ4u81Tuc\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/gsoc-2022/slides/final-demo/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],\"$L4e\"]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],\"$L4f\"],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L50\"]}]]}]]}]}],\"$L51\",\"$L52\"]}]]}]\n53:T4bf,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#opensearchcon-north-america-2026\",\"name\":\"Building a High Throughput OpenSearch Ingestor using Go\",\"description\":\"Building an ingestion tool from scratch on the opensearch-go client: a worker pool sending bulk requests in parallel, bounded channels for backpressure so the cluster is never overloaded, and per-document retries with backoff and a dead-letter file so nothing is lost — measured at 150,000 documents a second on one node.\",\"url\":\"https://iamrajiv.github.io/talks/#opensearchcon-north-america-2026\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"Place\",\"name\":\"San Jose, USA\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":37.3382,\"longitude\":-121.8863}},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"keywords\":[\"Go\",\"OpenSearch\",\"Performance\"],\"subjectOf\":[{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Building a High Throughput OpenSearch Ingestor using Go slides\",\"url\":\"https://iamrajiv.github.io/opensearchcon-north-america-2026/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]}]}22:[\"$\",\"script\",\"opensearchcon-north-america-2026\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$53\"}}]\n54:T9cc,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026\",\"name\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\"description\":\"What gRPC-Gateway is and how it works, the four ways to map HTTP onto a gRPC service, and a hello world that serves gRPC and RESTful clients from one protobuf definition — then the production concerns: custom URL mappings, streaming, and error handling. Delivered as a pre-recorded session for the World Congress Virtual Stage.\",\"url\":\"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"VirtualLocation\",\"url\":\"https://www.wearedevelopers.com/videos/2072-exploring-the-power-of-grpc-gateway-for-writing-restful-services\"},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}
1],\"keywords\":[\"Go\",\"gRPC\",\"APIs\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services slides\",\"url\":\"https://iamrajiv.github.io/wearedevelopers-world-congress-europe-2026/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026-recording\",\"name\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\"description\":\"What gRPC-Gateway is and how it works, the four ways to map HTTP onto a gRPC service, and a hello world that serves gRPC and RESTful clients from one protobuf definition — then the production concerns: custom URL mappings, streaming, and error handling. Delivered as a pre-recorded session for the World Congress Virtual Stage.\",\"url\":\"https://www.wearedevelopers.com/videos/2072-exploring-the-power-of-grpc-gateway-for-writing-restful-services\",\"contentUrl\":\"https://www.wearedevelopers.com/videos/2072-exploring-the-power-of-grpc-gateway-for-writing-restful-services\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#wearedevelopers-world-congress-europe-2026\"},\"keywords\":[\"Go\",\"gRPC\",\"APIs\"]}]}23:[\"$\",\"script\",\"wearedevelopers-world-congress-europe-2026\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$54\"}}]\n55:T82d,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#grpconf-india-2025\",\"name\":\"Writing RESTful APIs Using gRPC-Gateway\",\"description\":\"The protoc plugin that generates a reverse proxy in front of a gRPC service, the ways to map HTTP onto it, and a hello world serving both protocols from a single protobuf definition — with the OpenAPI documentation that comes out of the same source for free.\",\"url\":\"https://iamrajiv.github.io/talks/#grpconf-india-2025\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"Place\",\"name\":\"Bengaluru, India\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":12.9716,\"longitude\":77.5946}},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"keywords\":[\"Go\",\"gRPC\",\"APIs\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#grpconf-india-2025-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Writing RESTful APIs Using gRPC-Gateway slides\",\"url\":\"https://iamrajiv.github.io/grpconf-india-2025/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#grpconf-india-2025-recording\",\"name\":\"Writing RESTful APIs Using gRPC-Gateway\",\"description\":\"The protoc plugin that generates a reverse proxy in front of a gRPC service, the ways to map HTTP onto it, and a hello world serving both protocols from a single protobuf definition — with the OpenAPI documentation that comes out of the same source for free.\",\"url\":\"https://www.youtube.com/watch?v=hWhmhvje-pE\",\"contentUrl\":\"https://www.youtube.com/watch?v=hWhmhvje-pE\",\"embedUrl\":\"https://www.youtube.com/embed/hWhmhvje-pE\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/hWhmhvje-pE/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#grpconf-india-2025\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#grpconf-india-2025\"}
1,\"keywords\":[\"Go\",\"gRPC\",\"APIs\"]}]}24:[\"$\",\"script\",\"grpconf-india-2025\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$55\"}}]\n56:T91b,"])</script>
1<script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#bazelcon-2025\",\"name\":\"Go, Wasm, \u0026 Bazel: A Blueprint for Hermetic, High-Performance Web Applications\",\"description\":\"Where Go's WebAssembly builds stop being reproducible, and what Bazel changes: the build and dependency problems that surface when targeting Wasm with go build, the caching, parallelism, and hermeticity Bazel brings instead, and a migration path from one to the other.\",\"url\":\"https://iamrajiv.github.io/talks/#bazelcon-2025\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"Place\",\"name\":\"Atlanta, USA\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":33.749,\"longitude\":-84.388}},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Naman Lakhwani\"}],\"keywords\":[\"Go\",\"WebAssembly\",\"Bazel\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#bazelcon-2025-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Go, Wasm, \u0026 Bazel: A Blueprint for Hermetic, High-Performance Web Applications slides\",\"url\":\"https://iamrajiv.github.io/bazelcon-2025/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Naman Lakhwani\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#bazelcon-2025-recording\",\"name\":\"Go, Wasm, \u0026 Bazel: A Blueprint for Hermetic, High-Performance Web Applications\",\"description\":\"Where Go's WebAssembly builds stop being reproducible, and what Bazel changes: the build and dependency problems that surface when targeting Wasm with go build, the caching, parallelism, and hermeticity Bazel brings instead, and a migration path from one to the other.\",\"url\":\"https://www.youtube.com/watch?v=lh-NaENSEBU\",\"contentUrl\":\"https://www.youtube.com/watch?v=lh-NaENSEBU\",\"embedUrl\":\"https://www.youtube.com/embed/lh-NaENSEBU\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/lh-NaENSEBU/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#bazelcon-2025\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Naman Lakhwani\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#bazelcon-2025\"},\"keywords\":[\"Go\",\"WebAssembly\",\"Bazel\"]}]}25:[\"$\",\"script\",\"bazelcon-2025\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$56\"}}]\n57:T8c0,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024\",\"name\":\"WebAssembly Profiling with pprof and wzprof\",\"description\":\"What profiling actually measures and how pprof collects it in Go, then the same investigation for a WebAssembly program with wzprof: generating CPU and memory profiles, and reading the results back.\",\"url\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"Place\",\"name\":\"Delhi, India\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":28.6139,\"longitude\":77.209}},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Naman Lakhwani\"}],\"keywords\":[\"WebAssembly\",\"Profiling\",\"pprof\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"WebAssembly Profiling with pprof and wzprof slides\",\"url\":\"https://iamrajiv.github.io/kubecon-cloudnativecon-india-2024/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Naman Lakhwani\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024-recording\",\"name\":\"WebAssembly Profiling with pprof and wzprof\",\"description\":\"What profiling actually measures and how pprof collects it in Go, then the same investigation for a WebAssembly program with wzprof: generating CPU and memory profiles, and reading the results back.\",\"url\":\"https://www.youtube.com/watch?v=LaQZVxOixGY\",\"contentUrl\":\"https://www.youtube.com/watch?v=LaQZVxOixGY\",\"embedUrl\":\"https://www.youtube.com/embed/LaQZVxOixGY\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/LaQZVxOixGY/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Naman Lakhwani\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-india-2024\"},\"keywords\":[\"WebAssembly\",\"Profiling\",\"pprof\"]}]}26:[\"$\",\"script\",\"kubecon-cloudnativecon-india-2024\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$57\"}}]\n58:T451,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#polaris-school-of-technology-2024\",\"name\":\"A GSoC Journey\",\"description\":\"An invited session for students on Google Summer of Code from both 
1sides of the program: what it is, how to participate, writing a proposal that gets picked, and where it leads, drawn from GSoD 2020 and 2021, LFX Mentorship 2021, GSoC 2022 with Keptn, and mentoring with Jenkins since 2023.\",\"url\":\"https://iamrajiv.github.io/talks/#polaris-school-of-technology-2024\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"Place\",\"name\":\"Bengaluru, India\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":12.9716,\"longitude\":77.5946}},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"keywords\":[\"Open Source\",\"GSoC\",\"Mentoring\"],\"subjectOf\":[{\"@type\":\"PresentationDigitalDocument\",\"name\":\"A GSoC Journey slides\",\"url\":\"https://iamrajiv.github.io/polaris-school-of-technology-2024/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]}]}27:[\"$\",\"script\",\"polaris-school-of-technology-2024\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$58\"}}]\n59:T7d0,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024\",\"name\":\"Profiling WebAssembly with pprof and wzprof\",\"description\":\"Profiling a Go program with pprof, then carrying the same workflow over to WebAssembly with wzprof: producing CPU and memory profiles for a Wasm module and visualizing both.\",\"url\":\"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"Place\",\"name\":\"Berlin, Germany\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":52.52,\"longitude\":13.405}},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"keywords\":[\"WebAssembly\",\"Profiling\",\"Go\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Profiling WebAssembly with pprof and wzprof slides\",\"url\":\"https://iamrajiv.github.io/civo-navigate-europe-2024/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024-recording\",\"name\":\"Profiling WebAssembly with pprof and wzprof\",\"description\":\"Profiling a Go program with pprof, then carrying the same workflow over to WebAssembly with wzprof: producing CPU and memory profiles for a Wasm module and visualizing both.\",\"url\":\"https://www.youtube.com/watch?v=9fxMbaHSSiI\",\"contentUrl\":\"https://www.youtube.com/watch?v=9fxMbaHSSiI\",\"embedUrl\":\"https://www.youtube.com/embed/9fxMbaHSSiI\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/9fxMbaHSSiI/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#civo-navigate-europe-2024\"},\"keywords\":[\"WebAssembly\",\"Profiling\",\"Go\"]}]}28:[\"$\",\"script\",\"civo-navigate-europe-2024\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$59\"}}]\n5a:T952,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024\",\"name\":\"Maximizing Go's Capabilities with the WebAssembly System Interface\",\"description\":\"The state of WebAssembly in Go through WASI preview 1: how WASI support arrived in the Go toolchain, how to build for the wasip1 target today, and where the work goes next — told alongside the open-source community effort that landed it.\",\"url\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"Place\",\"name\":\"Paris, France\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":48.8566,\"longitude\":2.3522}},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Achille Roussel\"}],\"keywords\":[\"Go\",\"WebAssembly\",\"WASI\"],\"subjectOf\":[{\"@i
1d\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Maximizing Go's Capabilities with the WebAssembly System Interface slides\",\"url\":\"https://iamrajiv.github.io/kubecon-cloudnativecon-europe-2024/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Achille Roussel\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024-recording\",\"name\":\"Maximizing Go's Capabilities with the WebAssembly System Interface\",\"description\":\"The state of WebAssembly in Go through WASI preview 1: how WASI support arrived in the Go toolchain, how to build for the wasip1 target today, and where the work goes next — told alongside the open-source community effort that landed it.\",\"url\":\"https://www.youtube.com/watch?v=_HVTowUgXqo\",\"contentUrl\":\"https://www.youtube.com/watch?v=_HVTowUgXqo\",\"embedUrl\":\"https://www.youtube.com/embed/_HVTowUgXqo\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/_HVTowUgXqo/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Achille Roussel\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#kubecon-cloudnativecon-europe-2024\"},\"keywords\":[\"Go\",\"WebAssembly\",\"WASI\"]}]}29:[\"$\",\"script\",\"kubecon-cloudnativecon-europe-2024\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5a\"}}]\n5b:T859,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#wasm-io-2024\",\"name\":\"Empowering Go with WebAssembly System Interface (WASI) Unleashed\",\"description\":\"Go's WASI preview 1 support end to end: the history of WASI in the Go toolchain, building for the wasip1 target, calling host functions with the go:wasmimport directive, and what remains ahead.\",\"url\":\"https://iamrajiv.github.io/talks/#wasm-io-2024\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"Place\",\"name\":\"Barcelona, Spain\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":41.3874,\"longitude\":2.1686}},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Achille Roussel\"}],\"keywords\":[\"Go\",\"WebAssembly\",\"WASI\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#wasm-io-2024-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Empowering Go with WebAssembly System Interface (WASI) Unleashed slides\",\"url\":\"https://iamrajiv.github.io/wasm-io-2024/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Achille Roussel\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#wasm-io-2024-recording\",\"name\":\"Empowering Go with WebAssembly System Interface (WASI) Unleashed\",\"description\":\"Go's WASI preview 1 support end to end: the history of WASI in the Go toolchain, building for the wasip1 target, calling host functions with the go:wasmimport directive, and what remains ahead.\",\"url\":\"https://www.youtube.com/watch?v=d4MpdItNtfg\",\"contentUrl\":\"https://www.youtube.com/watch?v=d4MpdItNtfg\",\"embedUrl\":\"https://www.youtube.com/embed/d4MpdItNtfg\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/d4MpdItNtfg/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#wasm-io-2024\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"},{\"@type\":\"Person\",\"name\":\"Achille Roussel\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#wasm-io-2024\"},\"keywords\":[\"Go\",\"WebAssembly\",\"WASI\"]}]}2a:[\"$\",\"script\",\"wasm-io-2024\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5b\"}}]\n5c:T82f,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023\",\"name\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\"description\":\"Why a 
1service often needs REST and gRPC at once, then gRPC-Gateway as the answer: defining the service, writing the server logic, and generating the stubs. Presented at St. Xavier's College, Kathmandu.\",\"url\":\"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"Place\",\"name\":\"Kathmandu, Nepal\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":27.7172,\"longitude\":85.324}},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"keywords\":[\"Go\",\"gRPC\",\"APIs\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services slides\",\"url\":\"https://iamrajiv.github.io/gnome-asia-summit-2023/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023-recording\",\"name\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\"description\":\"Why a service often needs REST and gRPC at once, then gRPC-Gateway as the answer: defining the service, writing the server logic, and generating the stubs. Presented at St. Xavier's College, Kathmandu.\",\"url\":\"https://www.youtube.com/watch?v=yUzYnesdHeM\u0026t=20446s\",\"contentUrl\":\"https://www.youtube.com/watch?v=yUzYnesdHeM\u0026t=20446s\",\"embedUrl\":\"https://www.youtube.com/embed/yUzYnesdHeM\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/yUzYnesdHeM/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#gnome-asia-summit-2023\"},\"keywords\":[\"Go\",\"gRPC\",\"APIs\"]}]}2b:[\"$\",\"script\",\"gnome-asia-summit-2023\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5c\"}}]\n5d:T85f,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#wasmcon-2023\",\"name\":\"Unleashing the Power of WebAssembly System Interface (WASI) in Go\",\"description\":\"What WASI gives a WebAssembly module — files, clocks, sockets, and environment without binding to a single operating system — how Go compiles to it, and what the Go and WebAssembly toolchain makes possible today. Presented remotely to the Linux Foundation event in Bellevue.\",\"url\":\"https://iamrajiv.github.io/talks/#wasmcon-2023\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"VirtualLocation\",\"url\":\"https://www.youtube.com/watch?v=Qu8nH5iqbzo\"},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"keywords\":[\"Go\",\"WebAssembly\",\"WASI\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#wasmcon-2023-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Unleashing the Power of WebAssembly System Interface (WASI) in Go slides\",\"url\":\"https://iamrajiv.github.io/wasmcon-2023/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#wasmcon-2023-recording\",\"name\":\"Unleashing the Power of WebAssembly System Interface (WASI) in Go\",\"description\":\"What WASI gives a WebAssembly module — files, clocks, sockets, and environment without binding to a single operating system — how Go compiles to it, and what the Go and WebAssembly toolchain makes possible today. Presented remotely to the Linux Foundation event in Bellevue.\",\"url\":\"https://www.youtube.com/watch?v=Qu8nH5iqbzo\",\"contentUrl\":\"https://www.youtube.com/watch?v=Qu8nH5iqbzo\",\"embedUrl\":\"https://www.youtube.com/embed/Qu8nH5iqbzo\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/Qu8nH5iqbzo/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#wasmcon-2023\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#wasmcon-2023\"},\"keywords\":[\"Go\",\"WebAssembly\",\"WASI\"]}]}2c:[\"$\",\"script\",\"wasmcon-2023\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5d\"}}]\n5e:T95a,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours\",\"name\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\"description\":\"The trade-offs on both sides of gRPC and REST, then gRPC-Gateway and a Hello World REST service built with it. The opening session of the relaunched gRPC Community Meetup, followed by office hours; the live session was not recorded, so the published recording is a re-recording made afterwards at the gRPC team's request.\",\"url\":\"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"VirtualLocation\",\"url\":\"https://www.youtube.com/watch?v=T6ufWSP4Zic\"},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}
1],\"keywords\":[\"Go\",\"gRPC\",\"APIs\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services slides\",\"url\":\"https://iamrajiv.github.io/grpc-community-meetup-and-office-hours/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours-recording\",\"name\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\"description\":\"The trade-offs on both sides of gRPC and REST, then gRPC-Gateway and a Hello World REST service built with it. The opening session of the relaunched gRPC Community Meetup, followed by office hours; the live session was not recorded, so the published recording is a re-recording made afterwards at the gRPC team's request.\",\"url\":\"https://www.youtube.com/watch?v=T6ufWSP4Zic\",\"contentUrl\":\"https://www.youtube.com/watch?v=T6ufWSP4Zic\",\"embedUrl\":\"https://www.youtube.com/embed/T6ufWSP4Zic\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/T6ufWSP4Zic/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#grpc-community-meetup-and-office-hours\"},\"keywords\":[\"Go\",\"gRPC\",\"APIs\"]}]}2d:[\"$\",\"script\",\"grpc-community-meetup-and-office-hours\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5e\"}}]\n5f:T728,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo\",\"name\":\"GSoC 2022 Keptn Final Demonstration\",\"description\":\"The final demonstration of the new Docusaurus-based documentation site engine delivered for Keptn during Google Summer of Code.\",\"url\":\"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"VirtualLocation\",\"url\":\"https://www.youtube.com/watch?v=RSnJ4u81Tuc\"},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"keywords\":[\"Keptn\",\"Docusaurus\",\"Open Source\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"GSoC 2022 Keptn Final Demonstration slides\",\"url\":\"https://iamrajiv.github.io/gsoc-2022/slides/final-demo/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo-recording\",\"name\":\"GSoC 2022 Keptn Final Demonstration\",\"description\":\"The final demonstration of the new Docusaurus-based documentation site engine delivered for Keptn during Google Summer of Code.\",\"url\":\"https://www.youtube.com/watch?v=RSnJ4u81Tuc\",\"contentUrl\":\"https://www.youtube.com/watch?v=RSnJ4u81Tuc\",\"embedUrl\":\"https://www.youtube.com/embed/RSnJ4u81Tuc\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/RSnJ4u81Tuc/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#gsoc-2022-final-demo\"},\"keywords\":[\"Keptn\",\"Docusaurus\",\"Open Source\"]}]}2e:[\"$\",\"script\",\"gsoc-2022-final-demo\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5f\"}}]\n60:T720,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo\",\"name\":\"GSoC 2022 Keptn Midterm Demonstration\",\"description\":\"A midterm progress demonstration of the documentation site engine project for Keptn during Google Summer of Code.\",\"url\":\"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"VirtualLocation\",\"url\":\"https://www.youtube.com/watch?v=qn5NCDH5ySY\"},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"keywords\":[\"Keptn\",\"Docusaurus\",\"Open Source\"],\"subjectOf\":[{\"@i
1d\":\"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"GSoC 2022 Keptn Midterm Demonstration slides\",\"url\":\"https://iamrajiv.github.io/gsoc-2022/slides/midterm-demo/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo-recording\",\"name\":\"GSoC 2022 Keptn Midterm Demonstration\",\"description\":\"A midterm progress demonstration of the documentation site engine project for Keptn during Google Summer of Code.\",\"url\":\"https://www.youtube.com/watch?v=qn5NCDH5ySY\",\"contentUrl\":\"https://www.youtube.com/watch?v=qn5NCDH5ySY\",\"embedUrl\":\"https://www.youtube.com/embed/qn5NCDH5ySY\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/qn5NCDH5ySY/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#gsoc-2022-midterm-demo\"},\"keywords\":[\"Keptn\",\"Docusaurus\",\"Open Source\"]}]}2f:[\"$\",\"script\",\"gsoc-2022-midterm-demo\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$60\"}}]\n61:T83d,{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Event\",\"@id\":\"https://iamrajiv.github.io/talks/#gophercon-europe-2022\",\"name\":\"Generate RESTful services using gRPC-Gateway\",\"description\":\"Why a gRPC service often still owes its callers an HTTP/JSON API — backward compatibility, and languages and clients gRPC does not serve well — and how to generate one from the same gRPC definition with gRPC-Gateway. Presented remotely to the conference in Berlin.\",\"url\":\"https://iamrajiv.github.io/talks/#gophercon-europe-2022\",\"inLanguage\":\"en-US\",\"location\":{\"@type\":\"VirtualLocation\",\"url\":\"https://www.youtube.com/watch?v=4ojDihmBdh8\"},\"performer\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"keywords\":[\"Go\",\"gRPC\",\"APIs\"],\"subjectOf\":[{\"@id\":\"https://iamrajiv.github.io/talks/#gophercon-europe-2022-recording\"},{\"@type\":\"PresentationDigitalDocument\",\"name\":\"Generate RESTful services using gRPC-Gateway slides\",\"url\":\"https://iamrajiv.github.io/gophercon-europe-2022/\",\"inLanguage\":\"en-US\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}]}]},{\"@type\":\"VideoObject\",\"@id\":\"https://iamrajiv.github.io/talks/#gophercon-europe-2022-recording\",\"name\":\"Generate RESTful services using gRPC-Gateway\",\"description\":\"Why a gRPC service often still owes its callers an HTTP/JSON API — backward compatibility, and languages and clients gRPC does not serve well — and how to generate one from the same gRPC definition with gRPC-Gateway. Presented remotely to the conference in Berlin.\",\"url\":\"https://www.youtube.com/watch?v=4ojDihmBdh8\",\"contentUrl\":\"https://www.youtube.com/watch?v=4ojDihmBdh8\",\"embedUrl\":\"https://www.youtube.com/embed/4ojDihmBdh8\",\"thumbnailUrl\":\"https://i.ytimg.com/vi/4ojDihmBdh8/maxresdefault.jpg\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":\"https://iamrajiv.github.io/talks/#gophercon-europe-2022\",\"creator\":[{\"@type\":\"Person\",\"name\":\"Rajiv Ranjan Singh\",\"url\":\"https://iamrajiv.github.io\"}],\"recordedAt\":{\"@id\":\"https://iamrajiv.github.io/talks/#gophercon-europe-2022\"},\"keywords\":[\"Go\",\"gRPC\",\"APIs\"]}]}30:[\"$\",\"script\",\"gophercon-europe-2022\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$61\"}}]\n31:[\"$\",\"$L62\",null,{\"children\":[\"$\",\"$35\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@63\"}]}]\n37:[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]\n38:[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]\n39:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/wearedevelopers-world-congress-europe-2026\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n3a:[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]\n3b:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/grpconf-india-2025\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n3c:[\"$\",\"li\",\"bazelcon-2025\",{\"children\":[\"$\",\"div\",null,{\"id\":\"bazelcon-2025\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=lh-NaENSEBU\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"Go, Wasm, \u0026 Bazel: A Blueprint for Hermetic, High-Performance Web Applications recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/bazelcon-2025.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"Go, Wasm, \u0026 Bazel: A Blueprint for Hermetic, High-Performance Web Applications\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"BazelCon 2025\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Atlanta, USA\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Go, Wasm, \u0026 Bazel: A Blueprint for Hermetic, High-Performance Web Applications\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for BazelCon 2025\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=lh-NaENSEBU\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/bazelcon-2025/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L64\"]}]]}]]}]}]\n3d:[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}]\n3e:[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}]\n3f:[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]\n40:[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]\n41:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/kubecon-cloudnativecon-india-2024\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n42:[\"$\",\"li\",\"polaris-school-of-technology-2024\",{\"children\":[\"$\",\"div\",null,{\"id\":\"polaris-school-of-technology-2024\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-40 shrink-0 sm:w-44\",\"children\":[\"$\",\"img\",null,{\"alt\":\"A GSoC Journey recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/polaris-school-of-technology-2024.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"Polaris School of Technology\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Bengaluru, India\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"A GSoC Journey\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for Polaris School of Technology\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[\"$undefined\",[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/polaris-school-of-technology-2024/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/polaris-school-of-technology-2024\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]]}]]}]]}]}]\n43:[\"$\",\"li\",\"civo-navigate-europe-2024\",{\"children\":[\"$\",\"div\",null,{\"id\":\"civo-navigate-europe-2024\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=9fxMbaHSSiI\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"Profiling WebAssembly with pprof and wzprof recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/civo-navigate-europe-2024.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"Profiling WebAssembly with pprof and wzprof\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"Civo Navigate Europe 2024\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Berlin, Germany\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Profiling WebAssembly with pprof and wzprof\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for Civo Navigate Europe 2024\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=9fxMbaHSSiI\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/civo-navigate-europe-2024/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L65\"]}]]}]]}]}]\n44:[\"$\",\"li\",\"kubecon-cloudnativecon-europe-2024\",{\"children\":[\"$\",\"div\",null,{\"id\":\"kubecon-cloudnativecon-europe-2024\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=_HVTowUgXqo\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"Maximizing Go's Capabilities with the WebAssembly System Interface recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/kubecon-cloudnativecon-europe-2024.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"Maximizing Go's Capabilities with the WebAssembly System Interface\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"KubeCon + CloudNativeCon Europe 2024\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Paris, France\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Maximizing Go's Capabilities with the WebAssembly System Interface\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for KubeCon + CloudNativeCon Europe 2024\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=_HVTowUgXqo\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/kubecon-cloudnativecon-europe-2024/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L66\"]}]]}]]}]}]\n45:[\"$\",\"li\",\"wasm-io-2024\",{\"children\":[\"$\",\"div\",null,{\"id\":\"wasm-io-2024\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=d4MpdItNtfg\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"Empowering Go with WebAssembly System Interface (WASI) Unleashed recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/wasm-io-2024.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"Empowering Go with WebAssembly System Interface (WASI) Unleashed\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"Wasm I/O 2024\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Barcelona, Spain\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Empowering Go with WebAssembly System Interface (WASI) Unleashed\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for Wasm I/O 2024\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=d4MpdItNtfg\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/wasm-io-2024/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L67\"]}]]}]]}]}]\n46:[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}]\n47:[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}]\n48:[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}]\n49:[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]\n4a:[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]\n4b:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/gnome-asia-summit-2023\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n4c:[\"$\",\"li\",\"wasmcon-2023\",{\"children\":[\"$\",\"div\",null,{\"id\":\"wasmcon-2023\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=Qu8nH5iqbzo\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"Unleashing the Power of WebAssembly System Interface (WASI) in Go recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/wasmcon-2023.jpg\",\"width\":640,\"height\"
1:360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"Unleashing the Power of WebAssembly System Interface (WASI) in Go\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"WasmCon 2023\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Virtual\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Unleashing the Power of WebAssembly System Interface (WASI) in Go\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for WasmCon 2023\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=Qu8nH5iqbzo\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/wasmcon-2023/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L68\"]}]]}]]}]}]\n6c:I[27201,[\"/_next/static/chunks/3fntmmi971322.js\"],\"IconMark\"]\n4d:[\"$\",\"li\",\"grpc-community-meetup-and-office-hours\",{\"children\":[\"$\",\"div\",null,{\"id\":\"grpc-community-meetup-and-office-hours\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=T6ufWSP4Zic\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/grpc-community-meetup-and-office-hours.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"gRPC Community Meetup and Office Hours\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Virtual\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Exploring the Power of gRPC-Gateway for Writing RESTful Services\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for gRPC Community Meetup and Office Hours\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=T6ufWSP4Zic\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/grpc-community-meetup-and-office-hours/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L69\"]}]]}]]}]}]\n"])</script>
1<script>self.__next_f.push([1,"4e:[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]\n4f:[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]\n50:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/gsoc-2022\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n51:[\"$\",\"li\",\"gsoc-2022-midterm-demo\",{\"children\":[\"$\",\"div\",null,{\"id\":\"gsoc-2022-midterm-demo\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=qn5NCDH5ySY\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"GSoC 2022 Keptn Midterm Demonstration recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/gsoc-2022-midterm-demo.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"GSoC 2022 Keptn Midterm Demonstration\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"Google Summer of Code 2022\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Virtual\"]}]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"GSoC 2022 Keptn Midterm Demonstration\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for Google Summer of Code 2022\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=qn5NCDH5ySY\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/gsoc-2022/slides/midterm-demo/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L6a\"]}]]}]]}]}]\n52:[\"$\",\"li\",\"gophercon-europe-2022\",{\"children\":[\"$\",\"div\",null,{\"id\":\"gophercon-europe-2022\",\"className\":\"flex scroll-mt-24 flex-col gap-3 py-5 sm:flex-row sm:gap-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=4ojDihmBdh8\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group w-40 shrink-0 sm:w-44\",\"children\":[[\"$\",\"img\",null,{\"alt\":\"Generate RESTful services using gRPC-Gateway recording\",\"decoding\":\"async\",\"loading\":\"lazy\",\"src\":\"/images/talks/gophercon-europe-2022.jpg\",\"width\":640,\"height\":360,\"className\":\"aspect-video w-full border bg-background-secondary object-cover\"}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[\"Watch \",\"Generate RESTful services using gRPC-Gateway\",\" (opens in a new tab)\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-1 flex-col gap-1\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-title text-pretty\",\"children\":[\"GopherCon Europe 2022\",[\"$\",\"span\",null,{\"className\":\"font-normal text-muted-foreground\",\"children\":[\", \",\"Virtual\"]}
1]]}],[\"$\",\"p\",null,{\"className\":\"text-copy text-pretty\",\"children\":\"Generate RESTful services using gRPC-Gateway\"}],[\"$\",\"nav\",null,{\"aria-label\":\"Resources for GopherCon Europe 2022\",\"className\":\"mt-1 flex flex-wrap items-center gap-x-5\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=4ojDihmBdh8\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"polygon\",\"0\",{\"points\":\"5 3 19 12 5 21 5 3\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Recording\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],[\"$\",\"a\",null,{\"href\":\"https://iamrajiv.github.io/gophercon-europe-2022/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\",\"children\":[]}],[\"$\",\"polyline\",\"1\",{\"points\":\"14 2 14 8 20 8\",\"children\":[]}],[\"$\",\"line\",\"2\",{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\",\"children\":[]}],[\"$\",\"line\",\"3\",{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\",\"children\":[]}],[\"$\",\"polyline\",\"4\",{\"points\":\"10 9 9 9 8 9\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Slides\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}],\"$L6b\"]}]]}]]}]}]\n64:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/bazelcon-2025\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n65:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/civo-navigate-europe-2024\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n66:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/kubecon-cloudnativecon-europe-2024\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n67:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/wasm-io-2024\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n68:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/wasmcon-2023\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n69:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/grpc-community-meetup-and-office-hours\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n6a:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/gsoc-2022\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n6b:[\"$\",\"a\",null,{\"href\":\"https://github.com/iamrajiv/gophercon-europe-2022\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"none\",\"strokeWidth\":\"2\",\"viewBox\":\"0 0 24 24\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":\"true\",\"className\":\"size-3.5 grayscale transition-[filter] duration-300 group-hover:grayscale-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Repository\"],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\" (opens in a new tab)\"}]],\"data-slot\":\"button\",\"data-variant\":\"link\",\"data-size\":\"sm\",\"className\":\"group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 underline-offset-4 h-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 min-w-11 p-0 font-mono text-label font-normal uppercase transition-colors duration-150 hover:no-underline text-muted-foreground hover:text-foreground group gap-1.5\",\"ref\":null}]\n33:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n36:[[\"$\",\"title\",\"0\",{\"children\":\"Talks · Rajiv Singh\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Talks I have given at conferences and meetups, with the slides, the source code, and a recording wherever one was published.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"author\",\"href\":\"https://iamrajiv.github.io\"}],[\"$\",\"meta\",\"3\",{\"name\":\"author\",\"content\":\"Rajiv Ranjan Singh\"}],[\"$\",\"link\",\"4\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"5\",{\"name\":\"keywords\",\"content\":\"software engineer,backend systems,distributed systems,algorithms,open source,golang,technical writing,Rajiv Ranjan Singh,iamrajiv\"}],[\"$\",\"meta\",\"6\",{\"name\":\"creator\",\"content\":\"Rajiv Ranjan Singh\"}],[\"$\",\"meta\",\"7\",{\"name\":\"publisher\",\"content\":\"Rajiv Ranjan Singh\"}],[\"$\",\"meta\",\"8\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"9\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"link\",\"10\",{\"rel\":\"canonical\",\"href\":\"https://iamrajiv.github.io/talks/\"}],[\"$\",\"link\",\"11\",{\"rel\":\"alternate\",\"hrefLang\":\"en-US\",\"href\":\"https://iamrajiv.github.io/talks/\"}],[\"$\",\"link\",\"12\",{\"rel\":\"alternate\",\"type\":\"application/rss+xml\",\"href\":\"https://iamrajiv.github.io/feed.xml\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:title\",\"content\":\"Talks\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:description\",\"content\":\"Talks I have given at conferences and meetups, with the slides, the source code, and a recording wherever one was published.\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:url\",\"content\":\"https://iamrajiv.github.io/talks/\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:site_name\",\"content\":\"Rajiv Singh\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image\",\"content\":\"https://iamrajiv.github.io/talks/opengraph-image.png\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:image:alt\",\"content\":\"Talks\"}],[\"$\",\"meta\",\"22\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:creator\",\"content\":\"@therajiv\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:title\",\"content\":\"Talks\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:description\",\"content\":\"Talks I have given at conferences and meetups, with the slides, the source code, and a recording wherever one was published.\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image\",\"content\":\"https://iamrajiv.github.io/talks/opengraph-image.png\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:alt\",\"content\":\"Talks\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"30\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"31\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"32\",{\"rel\":\"icon\",\"href\":\"/favicon-32x32.png\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"33\",{\"rel\":\"icon\",\"href\":\"/favicon-16x16.png\",\"type\":\"image/png\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"34\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L6c\",\"35\",{}]]\n63:null\n"])</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.