<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>vsay</title><link>https://vsay.pages.dev/</link><description>Recent content on vsay</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 27 Sep 2026 23:10:49 +0000</lastBuildDate><atom:link href="https://vsay.pages.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>sendon.live</title><link>https://vsay.pages.dev/projects/sendon-live/</link><pubDate>Thu, 03 Sep 2026 12:02:44 +0000</pubDate><guid>https://vsay.pages.dev/projects/sendon-live/</guid><description>sendon, A Peer-to-Peer File Sharing Platform sendon is available at sendon.live.
sendon is a security-first, peer-to-peer file sharing platform.
It is designed for both everyday file sharing and large-scale transfers, sendon handles everything from small files around 1 MB to files as large as 50 GB, without requiring cloud storage as an intermediary.</description></item><item><title>yomye.me</title><link>https://vsay.pages.dev/projects/yomye-me/</link><pubDate>Thu, 17 Sep 2026 20:46:14 +0000</pubDate><guid>https://vsay.pages.dev/projects/yomye-me/</guid><description>Yömye Service Architecture Yömye is available at yomye.me.
Yömye is designed as a social media platform for local businesses and people who provide everyday services, such as barbers, car washers, restaurants, mechanics, cafés, and many others.</description></item><item><title>Building a Key-Value Store from Scratch</title><link>https://vsay.pages.dev/blog/building-a-key-value-store-from-scratch/</link><pubDate>Sun, 27 Sep 2026 20:15:56 +0000</pubDate><guid>https://vsay.pages.dev/blog/building-a-key-value-store-from-scratch/</guid><description>Building a Key-Value Store from Scratch A key-value store saves a value under a key. It also provides a way to read the value later. A file and two operations, Put and Get, are enough to begin.</description></item><item><title>Building an OpenTelemetry Pipeline with Grafana Cloud</title><link>https://vsay.pages.dev/blog/building-an-opentelemetry-pipeline-with-grafana-cloud/</link><pubDate>Sun, 27 Sep 2026 23:09:37 +0000</pubDate><guid>https://vsay.pages.dev/blog/building-an-opentelemetry-pipeline-with-grafana-cloud/</guid><description>How to Build an OpenTelemetry Pipeline with Grafana Cloud An API request may be handled by several functions, services, and databases before a response is returned. If 900 ms is reported in a completion log, the slow operation is not identified.</description></item><item><title>distributed chat application</title><link>https://vsay.pages.dev/projects/distributed-chat-application/</link><pubDate>Sun, 20 Sep 2026 13:10:16 +0000</pubDate><guid>https://vsay.pages.dev/projects/distributed-chat-application/</guid><description>Distributed Chat Application This project is a distributed chat application. Its main purpose was to explore microservices and important distributed system concepts such as scalability and availability. It was also a practical way to work with Docker, Kubernetes, and several levels of automated testing.</description></item><item><title>Messaging with RabbitMQ</title><link>https://vsay.pages.dev/blog/messaging-with-rabbitmq/</link><pubDate>Fri, 25 Sep 2026 13:46:12 +0000</pubDate><guid>https://vsay.pages.dev/blog/messaging-with-rabbitmq/</guid><description>Messaging with RabbitMQ A task can be encapsulated as a message and sent to a queue. The message is taken by a worker, the work is completed, and RabbitMQ is notified when processing finishes.</description></item><item><title>The Journey of an HTTP Request</title><link>https://vsay.pages.dev/blog/the-journey-of-an-http-request/</link><pubDate>Thu, 24 Sep 2026 23:42:55 +0000</pubDate><guid>https://vsay.pages.dev/blog/the-journey-of-an-http-request/</guid><description>The Journey of an HTTP Request This blog follows a laptop running Linux making an HTTP request to http://google.com, starting with DHCP network configuration, then DNS resolution, routing and ARP, sockets and ports, TCP connection establishment, IP packet creation, link-layer framing, router forwarding, NAT, the journey across the Internet, the HTTP request and response, and finally the browser rendering the page.</description></item><item><title>Isolation Levels in PostgreSQL</title><link>https://vsay.pages.dev/blog/isolation-levels-in-postgresql/</link><pubDate>Sun, 27 Sep 2026 13:52:57 +0000</pubDate><guid>https://vsay.pages.dev/blog/isolation-levels-in-postgresql/</guid><description>Isolation Levels in PostgreSQL A transaction is a group of SQL statements handled as one unit. Isolation levels define what a transaction can see while other transactions run. They are part of ACID, which stands for atomicity, consistency, isolation, and durability.</description></item><item><title>Data Structures Implementations in TypeScript</title><link>https://vsay.pages.dev/blog/data-structures-implementations-in-typescript/</link><pubDate>Sun, 27 Sep 2026 20:45:15 +0000</pubDate><guid>https://vsay.pages.dev/blog/data-structures-implementations-in-typescript/</guid><description>This is a TypeScript project that implements data structures such as linked lists, stacks, queues, hash tables, binary search trees, and heaps.
Singly linked list A singly linked list stores values in nodes.</description></item><item><title>social blogging platform</title><link>https://vsay.pages.dev/projects/social-blogging-platform/</link><pubDate>Sun, 27 Sep 2026 16:20:42 +0000</pubDate><guid>https://vsay.pages.dev/projects/social-blogging-platform/</guid><description>Social Blogging Platform This project is a full stack social blogging application built with React on the client and NestJS on the backend, both in TypeScript. Users can create accounts, publish posts, follow other accounts, comment and reply, react to content, save bookmarks, subscribe to authors, and exchange private messages.</description></item><item><title>Caching: Patterns, Invalidation, and Eviction</title><link>https://vsay.pages.dev/blog/caching/</link><pubDate>Fri, 25 Sep 2026 14:19:07 +0000</pubDate><guid>https://vsay.pages.dev/blog/caching/</guid><description>Caching Caching means keeping a copy of data so it can be found faster later. A result can be saved after a database query. When the same result is needed again, it can be read from the cache instead of the database.</description></item><item><title>Authentication and Authorization</title><link>https://vsay.pages.dev/blog/authentication-and-authorization/</link><pubDate>Fri, 25 Sep 2026 14:31:54 +0000</pubDate><guid>https://vsay.pages.dev/blog/authentication-and-authorization/</guid><description>Authentication and Authorization Authentication and authorization are often used together, but they answer different questions.
Authentication checks who is making a request. Authorization checks what that person is allowed to do.</description></item><item><title>About</title><link>https://vsay.pages.dev/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://vsay.pages.dev/about/</guid><description>I&amp;rsquo;m a software developer. I work on web applications and the systems behind them.
The project pages explain how I built things and why I made particular technical choices.</description></item></channel></rss>