# Gaurav Sarma's Blog

Thoughts on software engineering, distributed systems, and career growth

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## What Replaces Git When Agents Write the Code

DevFeed: [What Replaces Git When Agents Write the Code](<https://devfeed.tech/articles/what-replaces-git-when-agents-write-the-code-39664.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-08-19_what-replaces-git-when-agents-write-the-code>)

Published: 2026-08-19T00:00:00Z

Content type: opinion

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Code](<https://devfeed.tech/topics/code.md>), [audit](<https://devfeed.tech/topics/audit.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [audit](<https://devfeed.tech/tags/audit.md>), [ci](<https://devfeed.tech/tags/ci.md>), [code](<https://devfeed.tech/tags/code.md>), [context-window](<https://devfeed.tech/tags/context-window.md>), [git](<https://devfeed.tech/tags/git.md>), [github](<https://devfeed.tech/tags/github.md>), [logs](<https://devfeed.tech/tags/logs.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>)

### AI overview

The article argues that Git and GitHub's human-centered workflow does not scale when many software agents modify the same codebase. It identifies four resulting problems: code review bottlenecks, blocking merge conflicts, unstructured CI output that consumes agent context, and missing provenance for auditing and rollback.

### Source excerpt

. [What Replaces Git When Agents Write the Code](what-replaces-git-when-agents-write-the-code-cover...

## Upgrading Rails 4.2 to Rails 8: Count Sites, Not Warnings

DevFeed: [Upgrading Rails 4.2 to Rails 8: Count Sites, Not Warnings](<https://devfeed.tech/articles/upgrading-rails-4-2-to-rails-8-count-sites-not-warnings-39663.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-08-08_upgrading-rails-4-to-rails-8>)

Published: 2026-08-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [version](<https://devfeed.tech/topics/version.md>), [Test coverage](<https://devfeed.tech/topics/coverage.md>), [RSpec](<https://devfeed.tech/topics/rspec.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>)

Tags: [coverage](<https://devfeed.tech/tags/coverage.md>), [docker-compose](<https://devfeed.tech/tags/docker-compose.md>), [rails](<https://devfeed.tech/tags/rails.md>), [rspec](<https://devfeed.tech/tags/rspec.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

An account of upgrading a multi-tenant JSON API from Rails 4.2.7.1 to Rails 8. The author argues that estimates focused on version gates missed the actual risks, and describes how characterization tests, an extracted frontend, and containerized development reduced the work.

### Source excerpt

. [Upgrading Rails 4...

## Porting Django to Go with AI Without the Naive Rewrite

DevFeed: [Porting Django to Go with AI Without the Naive Rewrite](<https://devfeed.tech/articles/porting-django-to-go-with-ai-without-the-naive-rewrite-39662.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-07-28_porting-django-to-go-with-ai>)

Published: 2026-07-28T00:00:00Z

Content type: article

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Django](<https://devfeed.tech/topics/django.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [test-coverage](<https://devfeed.tech/topics/test-coverage.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [proxy](<https://devfeed.tech/topics/proxy.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [claude](<https://devfeed.tech/tags/claude.md>), [copilot](<https://devfeed.tech/tags/copilot.md>), [django](<https://devfeed.tech/tags/django.md>), [go](<https://devfeed.tech/tags/go.md>), [migration](<https://devfeed.tech/tags/migration.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [test-coverage](<https://devfeed.tech/tags/test-coverage.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article argues that porting a Django API to Go with AI requires strong engineering foundations rather than line-by-line translation. It recommends tests, production-shaped traffic, clear module boundaries, code review, and incremental rollout mechanisms to establish behavioral parity and reduce migration risk.

### Source excerpt

. [Porting Django to Go with AI Without the Naive Rewrite](porting-django-to-go-with-ai-cover...

## How to Write to SSDs - Co-Designing DBMS and Flash Storage

DevFeed: [How to Write to SSDs - Co-Designing DBMS and Flash Storage](<https://devfeed.tech/articles/how-to-write-to-ssds-co-designing-dbms-and-flash-storage-39661.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-06-22_optimising-ssd-writes-for-dbms>)

Published: 2026-06-22T00:00:00Z

Content type: article

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [systems](<https://devfeed.tech/topics/systems.md>), [optimize](<https://devfeed.tech/topics/optimize.md>), [Parallelism](<https://devfeed.tech/topics/parallelism.md>)

Tags: [b-tree](<https://devfeed.tech/tags/b-tree.md>), [checkpoint](<https://devfeed.tech/tags/checkpoint.md>), [cycles](<https://devfeed.tech/tags/cycles.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [latency](<https://devfeed.tech/tags/latency.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [optimize](<https://devfeed.tech/tags/optimize.md>), [optimizing](<https://devfeed.tech/tags/optimizing.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [ssd](<https://devfeed.tech/tags/ssd.md>), [storage](<https://devfeed.tech/tags/storage.md>), [systems](<https://devfeed.tech/tags/systems.md>), [wal](<https://devfeed.tech/tags/wal.md>), [write-amplification](<https://devfeed.tech/tags/write-amplification.md>)

### AI overview

The article explains how database management systems and SSDs jointly amplify writes. It reports that a 4 KiB logical page write can become about 18.85 KiB of flash writes on a Samsung PM9A3, and presents DBMS-SSD co-design, including avoiding in-place updates, as a way to address the combined amplification.

### Source excerpt

. [How to Write to SSDs](optimising-ssd-writes-for-dbms-cover...

## Where SQLite Gives Up - Locks, Writers, and the Single-File Problem

DevFeed: [Where SQLite Gives Up - Locks, Writers, and the Single-File Problem](<https://devfeed.tech/articles/where-sqlite-gives-up-locks-writers-and-the-single-file-problem-39660.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-05-12_where-sqlite-gives-up>)

Published: 2026-05-12T00:00:00Z

Content type: article

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [SQLite](<https://devfeed.tech/topics/sqlite.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [file](<https://devfeed.tech/topics/file.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [filesystem](<https://devfeed.tech/tags/filesystem.md>), [locks](<https://devfeed.tech/tags/locks.md>), [python](<https://devfeed.tech/tags/python.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

This article examines three production limitations of SQLite: unfair lock acquisition, globally serialized write transactions, and scaling constraints from its single-file, single-machine design. It uses small benchmarks and compares these trade-offs with the server-based deployment costs of Postgres and MySQL.

### Source excerpt

. [Where SQLite Gives Up](where-sqlite-gives-up-cover...

## When Does Compressed Protobuf Actually Beat Compressed JSON?

DevFeed: [When Does Compressed Protobuf Actually Beat Compressed JSON?](<https://devfeed.tech/articles/when-does-compressed-protobuf-actually-beat-compressed-json-39659.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-05-07_when-compressed-protobuf-beats-compressed-json>)

Published: 2026-05-07T00:00:00Z

Content type: comparison

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Compression](<https://devfeed.tech/topics/compression.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [JSON](<https://devfeed.tech/topics/json.md>), [data](<https://devfeed.tech/topics/data.md>), [Python](<https://devfeed.tech/topics/python.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [PyPI](<https://devfeed.tech/topics/pypi.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [code](<https://devfeed.tech/tags/code.md>), [compression](<https://devfeed.tech/tags/compression.md>), [data](<https://devfeed.tech/tags/data.md>), [github](<https://devfeed.tech/tags/github.md>), [json](<https://devfeed.tech/tags/json.md>), [pypi](<https://devfeed.tech/tags/pypi.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

This article benchmarks compressed Protobuf against compressed JSON across 19 payload shapes and three compressors. It finds that compression can narrow or reverse Protobuf's raw-size advantage, depending on the data shape, so neither format is consistently smaller.

### Source excerpt

. [When Does Compressed Protobuf Beat Compressed JSON...

## How Big Tech Interview Decisions and Rounds Work

DevFeed: [How Big Tech Interview Decisions and Rounds Work](<https://devfeed.tech/articles/how-big-tech-interviews-actually-work-39676.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/random/2026-04-21_how-big-tech-interviews-work>)

Published: 2026-04-21T00:00:00Z

Content type: article

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [test-coverage](<https://devfeed.tech/topics/test-coverage.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>)

Tags: [api-integration](<https://devfeed.tech/tags/api-integration.md>), [bug](<https://devfeed.tech/tags/bug.md>), [career](<https://devfeed.tech/tags/career.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [dsa](<https://devfeed.tech/tags/dsa.md>), [faang](<https://devfeed.tech/tags/faang.md>), [interview](<https://devfeed.tech/tags/interview.md>), [interviews](<https://devfeed.tech/tags/interviews.md>), [system-design](<https://devfeed.tech/tags/system-design.md>), [tech](<https://devfeed.tech/tags/tech.md>), [test-coverage](<https://devfeed.tech/tags/test-coverage.md>)

### AI overview

The article explains how big tech interviews are evaluated. Interviewers assess specific signals independently across coding, system design, and project-focused rounds, then discuss the combined feedback in a panel. Communication, code quality, edge-case handling, problem-solving instincts, scalability, and trade-off analysis can affect the decision, not just whether a problem is solved.

### Source excerpt

Having worked at a few big tech companies and having interviewed candidates for them as well, here are some things I wish more candidates knew going in. How decisions are actually made Each interviewer is assigned a round and for every round, there are specific signals they need to collect...

## Table-Per-Tenant vs Shared Table: The Multi-Tenancy Tradeoff in Postgres

DevFeed: [Table-Per-Tenant vs Shared Table: The Multi-Tenancy Tradeoff in Postgres](<https://devfeed.tech/articles/table-per-tenant-vs-shared-table-the-multi-tenancy-tradeoff-in-postgres-39658.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-04-15_table-per-tenant-vs-shared-table>)

Published: 2026-04-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Multi-tenancy](<https://devfeed.tech/topics/multi-tenancy.md>), [Database](<https://devfeed.tech/topics/database.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>)

Tags: [customers](<https://devfeed.tech/tags/customers.md>), [database](<https://devfeed.tech/tags/database.md>), [indexes](<https://devfeed.tech/tags/indexes.md>), [isolation](<https://devfeed.tech/tags/isolation.md>), [migration](<https://devfeed.tech/tags/migration.md>), [multi-tenancy](<https://devfeed.tech/tags/multi-tenancy.md>), [orders](<https://devfeed.tech/tags/orders.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [saas](<https://devfeed.tech/tags/saas.md>), [table](<https://devfeed.tech/tags/table.md>)

### AI overview

This tutorial compares table-per-tenant and shared-table designs for multi-tenant SaaS applications in Postgres. It explains how tenant counts, data size, schema changes, scale, query planning, migrations, monitoring, and data-deletion requirements affect the choice.

### Source excerpt

You are building a SaaS product. Every customer has their own orders, invoices, and documents...

## Metric Depth from a Single Camera: How Robots See Without LiDAR

DevFeed: [Metric Depth from a Single Camera: How Robots See Without LiDAR](<https://devfeed.tech/articles/metric-depth-from-a-single-camera-how-robots-see-without-lidar-39657.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-04-07_metric-depth-from-a-single-camera>)

Published: 2026-04-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Point cloud](<https://devfeed.tech/topics/point-cloud.md>), [3D](<https://devfeed.tech/topics/3d.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [ai](<https://devfeed.tech/tags/ai.md>), [algorithm](<https://devfeed.tech/tags/algorithm.md>), [camera](<https://devfeed.tech/tags/camera.md>), [lidar](<https://devfeed.tech/tags/lidar.md>)

### AI overview

This article explains how robots can estimate dense, metric depth from a single camera by combining an AI depth-estimation model with a tracking algorithm that provides real-world scale. It contrasts this approach with LiDAR and describes the role of depth ambiguity in camera-based navigation.

### Source excerpt

Take a photo of a coffee mug on your desk. Now look at that photo...

## When CDC Becomes a Crutch: A Philosophy on Data Replication

DevFeed: [When CDC Becomes a Crutch: A Philosophy on Data Replication](<https://devfeed.tech/articles/when-cdc-becomes-a-crutch-a-philosophy-on-data-replication-39656.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-04-06_when-cdc-becomes-a-crutch>)

Published: 2026-04-06T00:00:00Z

Content type: opinion

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Replication](<https://devfeed.tech/topics/replication.md>), [consistency](<https://devfeed.tech/topics/consistency.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [Kafka](<https://devfeed.tech/topics/kafka.md>)

Tags: [consistency](<https://devfeed.tech/tags/consistency.md>), [data-replication](<https://devfeed.tech/tags/data-replication.md>), [database](<https://devfeed.tech/tags/database.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [replication](<https://devfeed.tech/tags/replication.md>)

### AI overview

The article argues that Change Data Capture can become a crutch when teams replicate database tables across services without a clear data-ownership or consistency strategy. Although CDC tools make replication easy, maintaining and reconciling divergent replicas remains costly, especially after schema changes, pipeline lag, or ingestion bugs.

### Source excerpt

Your orders service needs the user's email to send a confirmation. The payments service needs the user's tier to apply a discount...

## The Data Structures Behind Text Editors: Gap Buffers, Piece Tables, Ropes, and CRDTs

DevFeed: [The Data Structures Behind Text Editors: Gap Buffers, Piece Tables, Ropes, and CRDTs](<https://devfeed.tech/articles/the-data-structures-behind-text-editors-gap-buffers-piece-tables-ropes-and-crdts-39655.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-04-05_text-editor-data-structures>)

Published: 2026-04-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Data structures](<https://devfeed.tech/topics/data-structures.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>)

Tags: [data-structures](<https://devfeed.tech/tags/data-structures.md>), [delete](<https://devfeed.tech/tags/delete.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [editor](<https://devfeed.tech/tags/editor.md>), [file](<https://devfeed.tech/tags/file.md>), [insert](<https://devfeed.tech/tags/insert.md>), [memory](<https://devfeed.tech/tags/memory.md>), [search](<https://devfeed.tech/tags/search.md>), [syntax-highlighting](<https://devfeed.tech/tags/syntax-highlighting.md>)

### AI overview

This tutorial explains how text editors represent document buffers in memory. It compares gap buffers, piece tables, ropes, and CRDTs, focusing on the trade-offs among insertion, deletion, reading, cursor movement, memory efficiency, latency, and multi-user concurrency.

### Source excerpt

Open a text editor, type a character, and it appears on screen. That single keystroke triggers a surprisingly deep question: how does the editor represent your document in memory so that insertions, deletions, and cursor movements all feel instant, even on a file with millions of lines...

## How Split Brain Happens in Distributed Databases and How It Gets Fixed

DevFeed: [How Split Brain Happens in Distributed Databases and How It Gets Fixed](<https://devfeed.tech/articles/how-split-brain-happens-in-distributed-databases-and-how-it-gets-fixed-39654.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-03-31_split-brain-in-distributed-databases>)

Published: 2026-03-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Network](<https://devfeed.tech/topics/network.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [CAP theorem](<https://devfeed.tech/topics/cap-theorem.md>)

Tags: [consensus](<https://devfeed.tech/tags/consensus.md>), [databases](<https://devfeed.tech/tags/databases.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [failed](<https://devfeed.tech/tags/failed.md>), [false-positives](<https://devfeed.tech/tags/false-positives.md>), [partition](<https://devfeed.tech/tags/partition.md>), [replication](<https://devfeed.tech/tags/replication.md>), [split-brain](<https://devfeed.tech/tags/split-brain.md>)

### AI overview

This tutorial explains how split brain occurs in distributed databases when a network partition causes multiple nodes to become primary and accept conflicting writes. It discusses why timeout-based failure detection can create false positives and introduces the distributed consensus complexity motivated by this failure mode.

### Source excerpt

. [How Split Brain Happens in Distributed Databases and How It Gets Fixed](split-brain-in-distributed-databases-cover...

## How Databases Checkpoint to Disk Without Stopping the World

DevFeed: [How Databases Checkpoint to Disk Without Stopping the World](<https://devfeed.tech/articles/how-databases-checkpoint-to-disk-without-stopping-the-world-39653.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-03-15_checkpointing-without-stopping-the-world>)

Published: 2026-03-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [checkpoint](<https://devfeed.tech/tags/checkpoint.md>), [crash-recovery](<https://devfeed.tech/tags/crash-recovery.md>), [databases](<https://devfeed.tech/tags/databases.md>), [latency](<https://devfeed.tech/tags/latency.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [snapshot](<https://devfeed.tech/tags/snapshot.md>), [wal](<https://devfeed.tech/tags/wal.md>)

### AI overview

A tutorial on database checkpointing explains why pausing writes to flush all dirty pages causes latency spikes and throughput stalls. It introduces fuzzy or online checkpointing, including PostgreSQL's WAL-based approach, which allows writes to continue while dirty pages are flushed and uses WAL replay during crash recovery.

### Source excerpt

Your database has gigabytes of dirty pages in memory. At some point they need to hit disk...

## Cursor Pagination vs Offset Pagination: Which One Should You Use?

DevFeed: [Cursor Pagination vs Offset Pagination: Which One Should You Use?](<https://devfeed.tech/articles/cursor-pagination-vs-offset-pagination-which-one-should-you-use-39652.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-03-11_cursor-pagination-vs-offset-pagination>)

Published: 2026-03-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [b-tree](<https://devfeed.tech/tags/b-tree.md>), [database](<https://devfeed.tech/tags/database.md>), [index](<https://devfeed.tech/tags/index.md>), [indexes](<https://devfeed.tech/tags/indexes.md>), [query-planner](<https://devfeed.tech/tags/query-planner.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

This tutorial compares offset, cursor, and keyset pagination for REST APIs. It explains that offset pagination becomes slower at deep pages because the database scans and discards preceding rows, while concurrent inserts can cause duplicates or skipped results. Cursor pagination uses an indexed position for more consistent performance but does not support random page access; keyset pagination generalizes the approach to arbitrary sort orders.

### Source excerpt

. [Cursor vs Offset Pagination](cursor-pagination-vs-offset-pagination-cover...

## How MongoDB Stores Data - WiredTiger Pages vs SQLite

DevFeed: [How MongoDB Stores Data - WiredTiger Pages vs SQLite](<https://devfeed.tech/articles/how-mongodb-stores-data-wiredtiger-pages-vs-sqlite-39651.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-03-09_mongodb-wiredtiger-vs-sqlite-storage>)

Published: 2026-03-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Cache](<https://devfeed.tech/topics/cache.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [database](<https://devfeed.tech/tags/database.md>), [memory](<https://devfeed.tech/tags/memory.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [performance](<https://devfeed.tech/tags/performance.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

This tutorial explains how MongoDB's WiredTiger storage engine stores collection and index data in variable-size B-trees, then compares that model with SQLite's fixed-page B-tree and overflow-page design. It focuses on how page management, overflow references, reconciliation, and cache pressure can affect query performance.

### Source excerpt

. [MongoDB WiredTiger vs SQLite Storage](mongodb-wiredtiger-vs-sqlite-storage-cover...

## SQLite Query Optimisation - How the Planner Thinks and Where It Goes Wrong

DevFeed: [SQLite Query Optimisation - How the Planner Thinks and Where It Goes Wrong](<https://devfeed.tech/articles/sqlite-query-optimisation-how-the-planner-thinks-and-where-it-goes-wrong-39650.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-03-08_sqlite-query-optimisation>)

Published: 2026-03-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [SQLite](<https://devfeed.tech/topics/sqlite.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [b-tree](<https://devfeed.tech/tags/b-tree.md>), [index](<https://devfeed.tech/tags/index.md>), [optimisation](<https://devfeed.tech/tags/optimisation.md>), [planner](<https://devfeed.tech/tags/planner.md>), [query](<https://devfeed.tech/tags/query.md>), [query-planner](<https://devfeed.tech/tags/query-planner.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

A tutorial on how SQLite's query planner chooses between index searches and full table scans. It explains planner behavior, the effects of query patterns and data distribution, and how to avoid conditions that make indexes inaccessible or scans appear cheaper.

### Source excerpt

. [SQLite Query Optimisation](sqlite-query-optimisation-cover...

## How PostgreSQL Handles Large Values - TOAST and What It Costs You

DevFeed: [How PostgreSQL Handles Large Values - TOAST and What It Costs You](<https://devfeed.tech/articles/how-postgresql-handles-large-values-toast-and-what-it-costs-you-39649.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-03-07_postgres-toast>)

Published: 2026-03-07T00:00:00Z

Content type: article

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>)

Tags: [compression](<https://devfeed.tech/tags/compression.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [schema-design](<https://devfeed.tech/tags/schema-design.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

This article explains how PostgreSQL handles values that exceed a page's capacity through TOAST. It covers compression, out-of-line storage in a separate system-managed table, chunking, indexing, read-time reconstruction, storage thresholds, and the costs of the approach compared with SQLite.

### Source excerpt

. [How PostgreSQL Handles Large Values](postgres-toast-cover...

## SQLite Overflow Pages - When Your Rows Don't Fit

DevFeed: [SQLite Overflow Pages - When Your Rows Don't Fit](<https://devfeed.tech/articles/sqlite-overflow-pages-when-your-rows-don-t-fit-39648.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-03-06_sqlite-overflow-pages>)

Published: 2026-03-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>)

Tags: [b-tree](<https://devfeed.tech/tags/b-tree.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [database](<https://devfeed.tech/tags/database.md>), [performance](<https://devfeed.tech/tags/performance.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

This tutorial explains how SQLite stores rows in fixed-size pages and uses overflow-page chains when a row does not fit within a single page. It describes how those chains are reconstructed during reads and why large rows can significantly increase query costs.

### Source excerpt

. [SQLite Overflow Pages](sqlite-overflow-pages-cover...

## Single-Node Kubernetes GitOps on a Budget

DevFeed: [Single-Node Kubernetes GitOps on a Budget](<https://devfeed.tech/articles/single-node-kubernetes-gitops-on-a-budget-39647.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-03-04_single-node-k3s-gitops-on-a-budget>)

Published: 2026-03-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [GitOps](<https://devfeed.tech/topics/gitops.md>), [k3s](<https://devfeed.tech/topics/k3s.md>), [argocd](<https://devfeed.tech/topics/argocd.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Self-hosted](<https://devfeed.tech/topics/self-hosted.md>), [Firewall](<https://devfeed.tech/topics/firewall.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [traefik](<https://devfeed.tech/topics/traefik.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Digital Ocean](<https://devfeed.tech/topics/digital-ocean.md>)

Tags: [argocd](<https://devfeed.tech/tags/argocd.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [digitalocean](<https://devfeed.tech/tags/digitalocean.md>), [firewall](<https://devfeed.tech/tags/firewall.md>), [github](<https://devfeed.tech/tags/github.md>), [gitops](<https://devfeed.tech/tags/gitops.md>), [k3s](<https://devfeed.tech/tags/k3s.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [lets](<https://devfeed.tech/tags/lets.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>)

### AI overview

This tutorial describes a budget-conscious, single-node Kubernetes platform built with k3s and GitOps. It covers bootstrapping an Ubuntu VM, syncing applications with ArgoCD, and adding TLS and firewall controls. The supplied text is truncated before the full implementation is presented.

### Source excerpt

. [Single-Node Kubernetes GitOps on a Budget](single-node-k3s-gitops-on-a-budget-cover...

## Building Gigaboy, An Autonomous Software Engineering Agent Orchestrator

DevFeed: [Building Gigaboy, An Autonomous Software Engineering Agent Orchestrator](<https://devfeed.tech/articles/building-gigaboy-an-autonomous-software-engineering-agent-orchestrator-39646.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-03-02_building-gigaboy-autonomous-software-engineering-agent>)

Published: 2026-03-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Linear](<https://devfeed.tech/topics/linear.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [function calling](<https://devfeed.tech/topics/function-calling.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [function-calling](<https://devfeed.tech/tags/function-calling.md>), [github](<https://devfeed.tech/tags/github.md>), [go](<https://devfeed.tech/tags/go.md>), [linear](<https://devfeed.tech/tags/linear.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [redis](<https://devfeed.tech/tags/redis.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

### AI overview

This article introduces Gigaboy, an autonomous software engineering orchestrator that watches Linear issues, takes tickets marked Todo, explores a repository, makes code changes, opens and iterates on pull requests, and can merge approved work. It explains the limitations of chat-based coding assistants and describes using Linear as the primary interface, with Redis and PostgreSQL supporting the system.

### Source excerpt

. [Building Gigaboy: An Autonomous Agent Orchestrator](building-an-ai-agent-orchestrator-cover...

## Building an AI Tennis Coach with MediaPipe and Claude

DevFeed: [Building an AI Tennis Coach with MediaPipe and Claude](<https://devfeed.tech/articles/building-an-ai-tennis-coach-with-mediapipe-and-claude-39645.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-02-25_building-ai-tennis-coach-mediapipe-claude>)

Published: 2026-02-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Streamlit](<https://devfeed.tech/topics/streamlit.md>), [MediaPipe Face Landmarker](<https://devfeed.tech/topics/mediapipe-face-landmarker.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Code](<https://devfeed.tech/topics/code.md>), [math](<https://devfeed.tech/topics/math.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [app](<https://devfeed.tech/tags/app.md>), [building](<https://devfeed.tech/tags/building.md>), [code](<https://devfeed.tech/tags/code.md>), [floating-point](<https://devfeed.tech/tags/floating-point.md>), [laptop](<https://devfeed.tech/tags/laptop.md>), [math](<https://devfeed.tech/tags/math.md>), [mediapipe](<https://devfeed.tech/tags/mediapipe.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [speed](<https://devfeed.tech/tags/speed.md>)

### AI overview

This tutorial explains how to build a Streamlit AI tennis-coaching app using MediaPipe pose detection and Claude. The pipeline analyzes uploaded tennis video, calculates joint angles and swing timing, overlays a skeleton on the footage, and generates coaching feedback grounded in the computed measurements.

### Source excerpt

. [Building an AI Tennis Coach with MediaPipe and Claude](building-an-ai-tennis-coach-mediapipe-claude-cover...

## Auto-generating Synced Diagram Overlays for Technical Videos

DevFeed: [Auto-generating Synced Diagram Overlays for Technical Videos](<https://devfeed.tech/articles/auto-generating-synced-diagram-overlays-for-technical-videos-39644.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-02-24_auto-generating-synced-diagram-overlays>)

Published: 2026-02-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Whisper](<https://devfeed.tech/topics/whisper.md>), [Python](<https://devfeed.tech/topics/python.md>), [Claude](<https://devfeed.tech/topics/claude.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [claude](<https://devfeed.tech/tags/claude.md>), [code](<https://devfeed.tech/tags/code.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [python](<https://devfeed.tech/tags/python.md>), [sync](<https://devfeed.tech/tags/sync.md>), [technical](<https://devfeed.tech/tags/technical.md>), [whisper](<https://devfeed.tech/tags/whisper.md>)

### AI overview

This article describes technify-motions, a local Python pipeline that adds animated diagrams, flowcharts, summaries, and code snippets to technical videos in sync with the transcript. It covers audio extraction with FFmpeg, local transcription with faster-whisper, and scene classification using Claude.

### Source excerpt

. [Auto-generating Synced Diagram Overlays](auto-generating-synced-diagram-overlays-cover...

## Effect of Lucene Segments on Elasticsearch

DevFeed: [Effect of Lucene Segments on Elasticsearch](<https://devfeed.tech/articles/effect-of-lucene-segments-on-elasticsearch-39643.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-01-09_how-lucene-segments-affect-elasticsearch>)

Published: 2026-01-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [elasticsearch](<https://devfeed.tech/topics/elasticsearch.md>), [data](<https://devfeed.tech/topics/data.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [data](<https://devfeed.tech/tags/data.md>), [elasticsearch](<https://devfeed.tech/tags/elasticsearch.md>), [performance](<https://devfeed.tech/tags/performance.md>), [search-engine](<https://devfeed.tech/tags/search-engine.md>)

### AI overview

This deep dive explains how Elasticsearch relates to Lucene and how Lucene segments organize and represent data. It covers shards, inverted indexes, doc values, BKD trees, immutable segments, document updates, deletions, background segment merging, and reference counters used to keep searches consistent.

### Source excerpt

. [How Lucene Segments Affect Elasticsearch](how-lucene-segments-affect-elasticsearch-cover...

## Disabling partial results in Elasticsearch

DevFeed: [Disabling partial results in Elasticsearch](<https://devfeed.tech/articles/disabling-partial-results-in-elasticsearch-39642.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-01-02_disabling-allow-partial-results-in-elasticsearch>)

Published: 2026-01-02T00:00:00Z

Content type: opinion

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [elasticsearch](<https://devfeed.tech/topics/elasticsearch.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [incident](<https://devfeed.tech/topics/incident.md>)

Tags: [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [elasticsearch](<https://devfeed.tech/tags/elasticsearch.md>), [incident](<https://devfeed.tech/tags/incident.md>), [integrity](<https://devfeed.tech/tags/integrity.md>), [monitor](<https://devfeed.tech/tags/monitor.md>), [retry](<https://devfeed.tech/tags/retry.md>), [search](<https://devfeed.tech/tags/search.md>)

### AI overview

This commentary explains how disabling Elasticsearch partial search results can cause more query failures and longer-running queries in distributed workloads. It recommends monitoring returned row counts and shard failures, then retrying when appropriate, while reserving the setting for cases where data integrity cannot be compromised.

### Source excerpt

. [Disabling allow_partial_search_results in Elasticsearch](disabling-allow-partial-results-in-elasticsearch-cover...

[Next page](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md?cursor=WyIyMDI2LTAxLTAyVDAwOjAwOjAwKzAwOjAwIiwgIjg1YTZkYTVmLTdmMDAtNGRiZi1hYmU0LWRlZmNlNDg2NDc4ZSJd>)