A list of the most recently updated pages.
| Aug 1, 2026 | » | Passing Data Asynchronously Between Producers and Consumers (.NET)
8 min; updated Aug 1, 2026
A channel is a data structure that’s used to store produced data for a consumer to retrieve, and an appropriate synchronization to enable that to happen safely, while also enabling appropriate notifications in both directions. A Toy Channel |
| Jun 6, 2026 | » | Caching
2 min; updated Jul 21, 2026
NotesFor read-heavy applications, storing frequently accessed data in fast memory (e.g., Redis) allows you to skip the DB entirely for some reads. A cache hit on Redis takes ~1ms compared to 20-50ms for a typical DB query, and this speedup is impactful in the order of millions of requests. In a web application, user sessions are typically stored in a distributed cache, allowing the system to quickly retrieve the data when a user makes a request. ... |
| Jul 21, 2026 | » | Distributed Systems Potpourri
3 min; updated Jul 21, 2026
Streams and Event SourcingUnlike message queues , streams can retain data for a configurable period of time, allowing consumers to read and re-read messages from a specified time. You can use a stream to ingest high volumes of events in real-time, e.g., real-time analytics of user engagements in social media. Event sourcing involves storing changes in application state as a sequence of events. These events can be replayed to reconstruct the system’s state at any point in time. The technique is useful for systems that require a detailed audit trail, e.g., a banking system, where every transaction (deposits, withdrawals, transfers) need to be recorded and may affect multiple accounts. ... |
| Jun 6, 2026 | » | Distributing Work
3 min; updated Jul 16, 2026
ShardingSharding comes up when a single database won’t work (e.g., hit storage limits, write throughput limits, or read throughput limits) and you need to split your data across multiple independent servers. For a user-centric social media app, sharding by |
| Jul 14, 2026 | » | Blob Storage
2 min; updated Jul 16, 2026
Blob StorageUnstructured blobs of data include images, videos, and other files. Typically, these are stored in blob storage, and the core database stores metadata, e.g., blob URL. Common setup for large binary artifacts. Credits: Hello Interview. Blob storage solutions like S3 can be considered infinitely scalable within your account limits. They are also cost effective, e.g., AWS S3 charges $0.023 per GB per month for the first 50TB, compared to AWS DynamoDB that charges $1.25 per GB per month for the first 10TB of storage. ... |
| Jun 6, 2026 | » | Data Modeling
3 min; updated Jul 14, 2026
Data ModelingChoosing what data to store and how to structure it directly affects performance, scalability, and maintenance. Relational databases are useful when you have structured data with clear relationships and need strong consistency (transaction-based actions, enforcing foreign key constraints). NoSQL databases shine for flexible schemas or when you need to scale horizontally across many servers without complex joins. That said, the overlap between relational DBs and NoSQL ones is substantial, so focus on the DB that your using and how it helps solve the problem at hand, e.g., NoSQL DBs can express relationships too, SQL DBs can have JSON columns with flexible schemas, etc. ... |
| May 28, 2023 | » | Relational Model Versus Document Model
8 min; updated Jul 14, 2026
A relational data model uses tables that consist of rows and columns. A row can be uniquely identified by a table + ID combination. A column entry can reference another row in another table through a shared key. One goal is to avoid duplicating data. However, to answer a real-world query, we end up paying th cost by joining results from multiple tables. That said, with proper indexing and prior research, combining results is pretty fast. ... |
| Jul 8, 2026 | » | System Design Practice: Metrics Monitoring System
5 min; updated Jul 9, 2026
Functional Requirements
Scale: 500K servers, 5M metrics per second, ~1GB/s raw ingestion. ... |
| Aug 1, 1997 | » | [ToDo] Design Patterns: Elements of Reusable Object-Oriented Software
1 min; updated Jul 8, 2026
Design Pattern Catalog
Design Patterns: Elements of Reusable Object-Oriented Software.
Erich Gamma; Richard Helm; Ralph Johnson; John Vlissides.
|
| Jul 4, 2026 | » | High Performance Networking in Chrome
7 min; updated Jul 5, 2026
Performance in ContextThe execution of a web browser primarily involves three tasks: fetching resources, page layout and rendering, and JavaScript execution. That said, optimizing the last two tasks won’t do much good if the browser is blocked on the network, waiting for resources to arrive. Of the top 100K, the median page on desktop requests 97 resources weighing 2,954KB in total, and makes 16 TCP connections . While the underlying transport (TCP) is optimized for large, streaming downloads, most network transfers in the browser are short and bursty. ... |
| May 19, 2020 | » | Chrome vs. Everybody
3 min; updated Jul 4, 2026
![]() At the very least, Chrome is worth studying. Something worked out. I’m biased, I only plan to deeply explore Chromium-based browsers and Firefox. Stability, Testing and the Multi-Process ArchitectureIn a single-threaded browser, devs use asynchronous APIs - which may sometimes hold the browser up. Instead of multiple threads, Chromium chose multiple processes: isolation, independent crashes, better asymptotic memory management, identifying expensive sites, etc. ... |
| Jan 19, 2026 | » | The Performance of Open Source Applications
2 min; updated Jul 4, 2026
The Architecture of Open Source Applications.
The Performance of Open Source Applications.
Tavish Armstrong.
✅ High Performance Networking in Chrome. Many of the sites we use today are not just web pages, they are applications. How do we make the fastest browser? Notes . From SocialCalc to EtherCalc. EtherCalc is an online spreadsheet system optimized towards simultaneous editing, using SocialCalc as its in-browser spreadsheet engine. ... |
| Apr 18, 2020 | » | Miscellaneous Topics
1 min; updated Jul 4, 2026
Personalizing Your ShellPut all of your scripts in the Managing |
| May 25, 2026 | » | The New Gods (2024)
7 min; updated Jul 4, 2026
ConflictMAXWELL LORD. What he failed to understand, my friend, is that it is human
nature. To find things that are better than us – godly, wondrous divine things
– and drag them down and pull them apart. Until there isn’t very much godly or
divine about them at all. THE CHRONICLER. Having foreseen his imminent capture and inevitable end,
Parzurem had already fractured his mind into two arguments, given shape and
structure by each other’s existence… moder and paeter. The moder pyxis found
itself drawn by the gravitational fallout of the sundering of Urgrund,
eventually falling into the orbit of Galactica, which would later come to be
known as New Genesis. But the paeter pyxis drifted through an eternity, driven
by Parzurem’s search for peace and ponderance, before finding its way to an
infant planet in a far corner of the cosmos where it would be undisturbed for a
brief age. |
| Jul 2, 2026 | » | Uri Tupka and the Gods
4 min; updated Jul 2, 2026
BISHOP 1. Your damned letter to the Emperor – |
| Dec 24, 2024 | » | Using LLMs to Enhance My Capabilities
8 min; updated Jun 13, 2026
Sample Use CasesLLMs are increasingly here to stay despite the reservations . How can I use them to enhance my capabilities? Look out for the Gell-Man amnesia effect. You prompt the LLM on some subject you know well. You read the response and see the LLM has absolutely no understanding of either the facts or the issues. In any case, you read with exasperation or amusement the multiple errors in the response, and then ask it about something else, and read the response as if it’s more accurate than the baloney you just read. ... |
| Oct 4, 2021 | » | Journal Reviews on Fairness
8 min; updated Jun 7, 2026
MetaInstead of changing the data or learners in multiple ways and then see if fairness improves, postulate that the root causes of bias are the prior decisions that generated the training data. These affect (a) what data was selected, and (b) the labels assigned to the examples. They propose the \(\text{Fair-SMOTE}\) (Fair Synthetic Minority Over Sampling Technique) algorithm which (1) removes biased labels (via situation testing: if the model’s prediction for a data point changes once all of the data points' protected attributes are flipped, then that label is biased and the data point is discarded), and (2) rebalances internal distributions such that based on a protected attribute, examples are equal in both positive and negative classes. The method is just as effective in reducing bias as prior approaches, and its models achieve higher recall and F1 performance. Furthermore, \(\text{Fair-SMOTE}\) can simultaneously reduce bias for more than one protected attribute. ... |
| Aug 18, 2022 | » | Binary Search
2 min; updated Jun 6, 2026
Binary Search on a Non-Decreasing \(f: \mathbb{R} \to \mathbb{R}\)Given a number \(L\) and a non-decreasing function \(f: \mathbb{R} \to \mathbb{R}\), find the greatest \(x\) such that \(f(x) \le L\). To start, there are two numbers \(lo\) and \(hi\), such that \(f(lo) \le L < f(hi)\). AlgorithmIn my attempt at writing |
| Jun 6, 2026 | » | Greedy Algorithms
2 min; updated Jun 6, 2026
Sample ProblemYou are given two integer arrays:
Assign cookies such that as many children as possible are satisfied. Each child can receive at most one cookie, and each cookie can be given to only one child. A Greedy Algorithm |
| Jun 7, 2026 | » | AsyncIO in Python
3 min; updated Jun 7, 2026
The Event LoopThe event loop contains a collection of jobs to be run. Some jobs are added
by application code, and others indirectly by |

Contains content that is not extensive enough for its own page.