<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Rajiv Singh</title>
    <link>https://iamrajiv.github.io</link>
    <description>Software engineer building backend systems, developer platforms, and infrastructure in Go.</description>
    <language>en-US</language>
    <managingEditor>rajivperfect007@gmail.com (Rajiv Ranjan Singh)</managingEditor>
    <atom:link href="https://iamrajiv.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Google Summer of Code 2026</title>
      <link>https://iamrajiv.github.io/writing/google-summer-of-code-2026/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/google-summer-of-code-2026/</guid>
      <pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
      <description>How GSoC selection actually works, why the organization name matters far less than the project idea, and what separates a proposal that gets read from one that gets skimmed.</description>
    </item>
    <item>
      <title>Making sense of the Green Tea garbage collector</title>
      <link>https://iamrajiv.github.io/writing/making-sense-of-the-green-tea-garbage-collector/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/making-sense-of-the-green-tea-garbage-collector/</guid>
      <pubDate>Sun, 30 Nov 2025 00:00:00 GMT</pubDate>
      <description>Go's new collector scans memory a block at a time instead of chasing individual pointers. The reason that helps says something about where performance actually goes on modern hardware.</description>
    </item>
    <item>
      <title>Decoupling web worker instantiation</title>
      <link>https://iamrajiv.github.io/writing/decoupling-web-worker-instantiation/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/decoupling-web-worker-instantiation/</guid>
      <pubDate>Wed, 23 Jul 2025 00:00:00 GMT</pubDate>
      <description>A library that constructs its own web worker will break in someone else's bundler. Letting the caller construct it instead fixes every case at once, and the reasoning generalises.</description>
    </item>
    <item>
      <title>Demystifying remote procedure calls</title>
      <link>https://iamrajiv.github.io/writing/demystifying-remote-procedure-calls/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/demystifying-remote-procedure-calls/</guid>
      <pubDate>Fri, 04 Apr 2025 00:00:00 GMT</pubDate>
      <description>RPC makes a network call look like a function call. That abstraction is why it is productive and also where its problems come from — both are worth understanding before you pick it.</description>
    </item>
    <item>
      <title>Ten habits of standout developers</title>
      <link>https://iamrajiv.github.io/writing/ten-habits-of-standout-developers/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/ten-habits-of-standout-developers/</guid>
      <pubDate>Sat, 22 Feb 2025 00:00:00 GMT</pubDate>
      <description>Ten things I have seen separate the engineers I learned the most from — none of which are about knowing more than everyone else.</description>
    </item>
    <item>
      <title>Profiling WebAssembly with pprof and wzprof</title>
      <link>https://iamrajiv.github.io/writing/profiling-webassembly-with-pprof-and-wzprof/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/profiling-webassembly-with-pprof-and-wzprof/</guid>
      <pubDate>Sat, 28 Sep 2024 00:00:00 GMT</pubDate>
      <description>Compiling to WebAssembly usually costs you your profiler. wzprof instruments the runtime instead of the guest, which gets pprof back — for any source language.</description>
    </item>
    <item>
      <title>Exploring the Go 1.22 release</title>
      <link>https://iamrajiv.github.io/writing/exploring-go-1-22-release/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/exploring-go-1-22-release/</guid>
      <pubDate>Thu, 22 Feb 2024 00:00:00 GMT</pubDate>
      <description>Per-iteration loop variables, routing patterns in the standard library, and math/rand/v2 — the release that quietly fixed Go's most expensive design mistake.</description>
    </item>
    <item>
      <title>The sliding window mental model</title>
      <link>https://iamrajiv.github.io/writing/sliding-window-algorithmic-mental-model/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/sliding-window-algorithmic-mental-model/</guid>
      <pubDate>Sat, 10 Feb 2024 00:00:00 GMT</pubDate>
      <description>Recognising a sliding window problem is most of the work. The pattern is a small set of signals in the question, and two variants that cover nearly all of them.</description>
    </item>
    <item>
      <title>API gateways, load balancers, and reverse proxies</title>
      <link>https://iamrajiv.github.io/writing/api-gateways-load-balancers-reverse-proxies/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/api-gateways-load-balancers-reverse-proxies/</guid>
      <pubDate>Sun, 06 Aug 2023 00:00:00 GMT</pubDate>
      <description>All three are one address that forwards traffic somewhere else. What separates them is not the software — it is what sits behind the address, and one diagram covers the whole distinction.</description>
    </item>
    <item>
      <title>Higher-Order Functions in Go</title>
      <link>https://iamrajiv.github.io/writing/higher-order-functions-in-go/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/higher-order-functions-in-go/</guid>
      <pubDate>Tue, 23 May 2023 00:00:00 GMT</pubDate>
      <description>Collapsing repetitive entry/exit logging into one line per method with a function that returns a function — and the one-character mistake that silently breaks it.</description>
    </item>
    <item>
      <title>Optimizing performance with inlining</title>
      <link>https://iamrajiv.github.io/writing/optimizing-performance-with-inlining/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/optimizing-performance-with-inlining/</guid>
      <pubDate>Tue, 23 May 2023 00:00:00 GMT</pubDate>
      <description>Inlining removes a fixed cost of about a nanosecond per call. Whether that matters depends entirely on what the function body costs — and a benchmark that ignores this will mislead you.</description>
    </item>
    <item>
      <title>Demystifying dangling pointers</title>
      <link>https://iamrajiv.github.io/writing/demystifying-dangling-pointers/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/demystifying-dangling-pointers/</guid>
      <pubDate>Sat, 20 May 2023 00:00:00 GMT</pubDate>
      <description>A pointer to freed memory usually keeps working for a while, which is what makes it dangerous. The four ways C++ produces them, and the tools that catch what discipline misses.</description>
    </item>
    <item>
      <title>Demystifying the columnar storage model</title>
      <link>https://iamrajiv.github.io/writing/demystifying-columnar-storage-model/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/demystifying-columnar-storage-model/</guid>
      <pubDate>Thu, 11 May 2023 00:00:00 GMT</pubDate>
      <description>Storing a table by column instead of by row changes what compresses well and what queries cost. A Go benchmark shows the effect, and also shows why the usual demonstration of it is misleading.</description>
    </item>
    <item>
      <title>Getting started with Google Summer of Code</title>
      <link>https://iamrajiv.github.io/writing/getting-started-with-google-summer-of-code/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/getting-started-with-google-summer-of-code/</guid>
      <pubDate>Sat, 06 May 2023 00:00:00 GMT</pubDate>
      <description>An introduction to open source and Google Summer of Code — what the program is actually for, how to pick a project, and what makes a proposal worth reading.</description>
    </item>
    <item>
      <title>Improving software performance with buffers</title>
      <link>https://iamrajiv.github.io/writing/improving-software-performance-with-buffers/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/improving-software-performance-with-buffers/</guid>
      <pubDate>Sat, 06 May 2023 00:00:00 GMT</pubDate>
      <description>Writing 100,000 lines to a file takes 9ms unbuffered and 3.5ms buffered. The reason is system calls, and the same reasoning applies far beyond file I/O.</description>
    </item>
    <item>
      <title>Go resources</title>
      <link>https://iamrajiv.github.io/writing/go-resources/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/go-resources/</guid>
      <pubDate>Sat, 05 Mar 2022 00:00:00 GMT</pubDate>
      <description>The resources I'd hand someone learning Go, ordered the way I'd actually work through them rather than dumped as a list.</description>
    </item>
    <item>
      <title>Theoretical runtime analysis of Big O notation</title>
      <link>https://iamrajiv.github.io/writing/theoretical-runtime-analysis-of-big-o-notation/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/theoretical-runtime-analysis-of-big-o-notation/</guid>
      <pubDate>Sun, 27 Feb 2022 00:00:00 GMT</pubDate>
      <description>A loop bound by a problem constraint is technically O(1). Working out why that is true and why it is useless says something real about what Big O measures.</description>
    </item>
    <item>
      <title>Measure elapsed time of C++ program</title>
      <link>https://iamrajiv.github.io/writing/measure-elapsed-time-of-cpp-program/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/measure-elapsed-time-of-cpp-program/</guid>
      <pubDate>Tue, 22 Feb 2022 00:00:00 GMT</pubDate>
      <description>Timing a block of C++ with &lt;chrono&gt;, why steady_clock is the right clock for the job, and how to read the same duration in four different units.</description>
    </item>
    <item>
      <title>Linux Foundation Mentorship 2021</title>
      <link>https://iamrajiv.github.io/writing/linux-foundation-mentorship-2021/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/linux-foundation-mentorship-2021/</guid>
      <pubDate>Wed, 29 Dec 2021 00:00:00 GMT</pubDate>
      <description>Twelve weeks on moja global's FLINT UI — the frontend for a carbon-accounting engine — building out a component library, CI, and the infrastructure around it.</description>
    </item>
    <item>
      <title>Google Season of Docs 2021</title>
      <link>https://iamrajiv.github.io/writing/google-season-of-docs-2021/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/google-season-of-docs-2021/</guid>
      <pubDate>Thu, 02 Dec 2021 00:00:00 GMT</pubDate>
      <description>A second season, this time with Wechaty — improving the gRPC and OpenAPI ecosystem, and learning how a distributed community actually keeps a project moving.</description>
    </item>
    <item>
      <title>Kharagpur Winter of Code 2020</title>
      <link>https://iamrajiv.github.io/writing/kharagpur-winter-of-code-2020/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/kharagpur-winter-of-code-2020/</guid>
      <pubDate>Sun, 03 Jan 2021 00:00:00 GMT</pubDate>
      <description>Five weeks contributing to three open-source projects, all of it CI and tooling — and why that turned out to be a good place for a beginner to start.</description>
    </item>
    <item>
      <title>Google Season of Docs 2020</title>
      <link>https://iamrajiv.github.io/writing/google-season-of-docs-2020/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/google-season-of-docs-2020/</guid>
      <pubDate>Thu, 10 Dec 2020 00:00:00 GMT</pubDate>
      <description>Rebuilding the gRPC-Gateway documentation site over three months — a new theme, a tutorials section written from scratch, and what I learned about documenting something by using it.</description>
    </item>
    <item>
      <title>An efficient algorithm for generating integer partitions</title>
      <link>https://iamrajiv.github.io/writing/an-efficient-algorithm-for-generating-set-partitions/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/an-efficient-algorithm-for-generating-set-partitions/</guid>
      <pubDate>Thu, 30 Jan 2020 00:00:00 GMT</pubDate>
      <description>Generating every partition of an integer takes exponential time because there are exponentially many. Counting them takes quadratic time — and the difference is worth understanding.</description>
    </item>
    <item>
      <title>Finding Nth Fibonacci number in logarithmic time</title>
      <link>https://iamrajiv.github.io/writing/finding-nth-fibonacci-number-in-logarithmic-time/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/finding-nth-fibonacci-number-in-logarithmic-time/</guid>
      <pubDate>Sun, 26 Jan 2020 00:00:00 GMT</pubDate>
      <description>A 2x2 matrix identity turns Fibonacci into exponentiation, and fast exponentiation takes it from linear to logarithmic time.</description>
    </item>
    <item>
      <title>Monty Hall problem</title>
      <link>https://iamrajiv.github.io/writing/monty-hall-problem/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/monty-hall-problem/</guid>
      <pubDate>Thu, 18 Jul 2019 00:00:00 GMT</pubDate>
      <description>Why switching doors wins two times out of three, worked through by enumeration and then by Bayes' theorem — including the variant where the answer really is 50–50.</description>
    </item>
    <item>
      <title>Discriminant of a conic section</title>
      <link>https://iamrajiv.github.io/writing/discriminant-of-a-conic-section/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/discriminant-of-a-conic-section/</guid>
      <pubDate>Thu, 24 Jan 2019 00:00:00 GMT</pubDate>
      <description>Two numbers — a determinant and a discriminant — tell you which conic a second-degree equation draws, without plotting a single point.</description>
    </item>
    <item>
      <title>Initial Commit</title>
      <link>https://iamrajiv.github.io/writing/initial-commit/</link>
      <guid isPermaLink="true">https://iamrajiv.github.io/writing/initial-commit/</guid>
      <pubDate>Thu, 20 Sep 2018 00:00:00 GMT</pubDate>
      <description>Why I started writing here, and what I intend to put in it.</description>
    </item>
  </channel>
</rss>
