OS
OpenStem
@openstem · Joined Jul 2026
7420 public items8 groups
Note~149 words · 1 min
Representing a Graph A graph is a set of vertices connected by edges. The two common representations trade memory for lookup speed differently, and the right choice depends on how dense the graph is and what operations dominate. BFS vs DFS
Software · L2 · Data Structures & Algos: Graph Traversal
@openstem
Software · L2 · Data Structures & Algos: Graph TraversalNote~131 words · 1 min
Cache Strategies at a Glance Every caching strategy is really a decision about when the cache and the database are allowed to disagree, and for how long. Which Strategy Fits? The deciding factors are usually how tolerant the application is
Software · L2 · System Design: Choosing a Cache Strategy
@openstem
Software · L2 · System Design: Choosing a Cache StrategyNote~149 words · 1 min
Why Isolation Levels Exist When multiple transactions run at once, the database has to decide how much of each other's in-progress work they can see. A stricter isolation level prevents more anomalies but forces more transactions to wait on
Software · L2 · SQL: Isolation Levels & Locking
@openstem
Software · L2 · SQL: Isolation Levels & LockingNote~92 words · 1 min
When Git Can't Auto-Merge A conflict means two branches changed the same lines and Git needs a human to decide the outcome. It marks the disputed section directly in the file rather than guessing. Staging a file with `git add` after editing
Software · L2 · Git & Dev Workflow: Resolving a Merge Conflict
@openstem
Software · L2 · Git & Dev Workflow: Resolving a Merge ConflictNote~148 words · 1 min
Match the Tool to the Coordination Problem Go's concurrency toolbox isn't one-size-fits-all. Mutexes, channels, and wait groups solve three different problems, and reaching for the wrong one usually means fighting the language instead of wr
Software · L2 · Go: Choosing a Concurrency Primitive
@openstem
Software · L2 · Go: Choosing a Concurrency PrimitiveNote~142 words · 1 min
Match the Failure Mode to the Type Rust gives you three distinct ways to represent something not going as planned, and each one tells the caller a different story about how serious the situation is. Working Through It Library code in partic
Software · L2 · Rust: Option, Result, or panic!?
@openstem
Software · L2 · Rust: Option, Result, or panic!?Note~189 words · 1 min
Threads: Running Code Concurrently A Thread is an independent path of execution within a program. Java can run many threads at once (on multi-core hardware, truly in parallel), letting one program do several things without blocking. You sta
Software · L2 · Java: Concurrency Basics
@openstem
Software · L2 · Java: Concurrency BasicsNote~92 words · 1 min
Where the Accessible Name Comes From An interactive element's 'accessible name' — what a screen reader actually reads aloud — is computed by checking several sources in a strict priority order, stopping at the first match. An element marked
Software · L2 · HTML & CSS: Computing an Element's Accessible Name
@openstem
Software · L2 · HTML & CSS: Computing an Element's Accessible NameNote~107 words · 1 min
Request In, Response Streamed Out A raw Node HTTP server has no built-in middleware concept, but the pattern is simple: an ordered list of functions, each given the chance to act or hand off control to the next one via `next()`. Because Inc
Software · L2 · Node.js: HTTP Middleware Pipeline
@openstem
Software · L2 · Node.js: HTTP Middleware PipelineNote~105 words · 1 min
Delegated Access Without Sharing Passwords The authorization code flow lets a third-party client obtain limited access to a user's account on another service, by routing the login through that service's own authorization server. Public clie
Software · L2 · Networking & HTTP: OAuth 2.0 Authorization Code Flow
@openstem
Software · L2 · Networking & HTTP: OAuth 2.0 Authorization Code FlowNote~129 words · 1 min
What Matters Most? No scheduling algorithm is best on every axis — each one optimizes for a particular goal at the expense of another. Picking one starts with naming what the workload actually needs. A Decision Path In practice, most genera
Software · L2 · Operating Systems: Choosing a CPU Scheduling Algorithm
@openstem
Software · L2 · Operating Systems: Choosing a CPU Scheduling AlgorithmNote~151 words · 1 min
Same Goal, Different Tools All synchronization primitives exist to keep concurrent access to shared state correct, but they differ in how many threads they let through at once, whether they track ownership, and whether they block or spin wh
Software · L2 · Concurrency: Choosing a Synchronization Primitive
@openstem
Software · L2 · Concurrency: Choosing a Synchronization PrimitiveNote~125 words · 1 min
When Something Goes Wrong Prevention fails sometimes, no matter how strong your defenses. Incident response is the practiced sequence a team follows once an attack or breach is confirmed, so the reaction is fast and consistent rather than i
Software · L2 · Security & Auth: Incident Response Basics
@openstem
Software · L2 · Security & Auth: Incident Response BasicsNote~119 words · 1 min
From Commit to Production A CI/CD pipeline is a chain of gates: each stage exists to catch a specific class of problem before it reaches the next, more expensive, stage. Test always runs before Package/Publish: it's cheaper to fail the pipe
Software · L2 · Docker & Kubernetes: CI/CD Pipeline Stages
@openstem
Software · L2 · Docker & Kubernetes: CI/CD Pipeline StagesNote~119 words · 1 min
Not Every Test Runs at Every Gate A mature CI setup doesn't run the entire suite everywhere — it matches test speed to how often the gate fires, so fast feedback stays fast and thorough coverage still happens somewhere. Notice E2E tests run
Software · L2 · Testing: CI Test Execution Strategy
@openstem
Software · L2 · Testing: CI Test Execution StrategyNote~129 words · 1 min
Same Shape, Different Intent Adapter, Decorator, and Proxy all wrap one object behind an interface, which is exactly why they're easy to confuse. The difference is in what the wrapper is for: translating, extending, or controlling. A Decisi
Software · L2 · Design Patterns: Which Structural Pattern?
@openstem
Software · L2 · Design Patterns: Which Structural Pattern?Note~162 words · 1 min
Mapping Entities and Relationships A JPA entity is a POJO annotated `@Entity` with an `@Id` field, mapped to a database table. Relationships between entities are declared with annotations rather than manual join SQL. Why @Transactional Matt
Software · L2 · Spring Boot: Data Access & Transactions
@openstem
Software · L2 · Spring Boot: Data Access & TransactionsNote~163 words · 1 min
Catching by Type with `on` A plain `catch (e)` catches anything thrown. `on SomeType catch (e)` catches only that type, letting you stack multiple `on` clauses to handle different error types differently, with a general `catch` as a fallbac
Software · L2 · Dart: Error Handling & Testing
@openstem
Software · L2 · Dart: Error Handling & TestingNote~151 words · 1 min
Fetching JSON with the http Package `http.get(Uri.parse(url))` returns a Future<Response> with a status code and body string. Check `response.statusCode == 200` before decoding, then use `jsonDecode(response.body)` (from dart:convert) to tu
Software · L2 · Flutter: Networking & Data
@openstem
Software · L2 · Flutter: Networking & DataNote~165 words · 1 min
One File, Every Matching Request A `middleware.ts` at the project root runs before a request reaches its matched route — redirecting, rewriting, setting headers/cookies, or gating access based on auth, all before any page or route handler c
Software · L2 · Next.js: Middleware & Edge Runtime
@openstem
Software · L2 · Next.js: Middleware & Edge RuntimeNote~109 words · 1 min
Four Ways to Satisfy a Token A provider isn't always 'a class Nest instantiates for you' — the `providers` array can register several different shapes, each resolved differently when a token is requested. Whichever shape produces the instan
Software · L2 · NestJS: Custom Provider Resolution
@openstem
Software · L2 · NestJS: Custom Provider ResolutionNote~110 words · 1 min
What Is a Replica Set? A replica set is a group of mongod processes holding the same data set. One member is the primary and accepts all writes; the rest are secondaries that replicate the primary's operations from its oplog (operation log)
Software · L2 · MongoDB: Replica Sets & Failover
@openstem
Software · L2 · MongoDB: Replica Sets & FailoverNote~134 words · 1 min
Streaming Replication Every write to a Postgres primary is first recorded in the Write-Ahead Log (WAL). Streaming replication ships that WAL to one or more standby servers, which replay it to reconstruct an up-to-date copy of the data — wit
Software · L2 · PostgreSQL: Replication & High Availability
@openstem
Software · L2 · PostgreSQL: Replication & High AvailabilityNote~107 words · 1 min
The Pipeline Stages AWS splits CI/CD into three composable services rather than one monolithic tool. CodePipeline orchestrates the stages, CodeBuild compiles and tests, and CodeDeploy rolls the result out to running infrastructure. What Hap
Software · L2 · AWS: CI/CD Pipelines
@openstem
Software · L2 · AWS: CI/CD PipelinesNote~111 words · 1 min
The Build-to-Release Chain GCP separates CI/CD into focused services: Cloud Build compiles and tests, Artifact Registry stores the resulting images/packages, and Cloud Deploy manages progressive rollout to your runtime of choice. What Happe
Software · L2 · Google Cloud: CI/CD & Deployment
@openstem
Software · L2 · Google Cloud: CI/CD & DeploymentNote~138 words · 1 min
Why Two Concurrent Applies Are Dangerous State is Terraform's single source of truth for what it manages. If two applies write to it at once, the file can end up corrupted or missing resources — a remote backend with locking exists specific
Software · L2 · Terraform: Safe Applies with Remote State & Locking
@openstem
Software · L2 · Terraform: Safe Applies with Remote State & LockingNote~581 words · 3 min
Resources, Not Actions A REST API is organized around resources — nouns like orders, users, or invoices — addressed by URLs, with the HTTP method supplying the verb. A well-modeled API reads as a set of collections and items: /orders is a c
Software · L3 · API Design & REST
@openstem
Software · L3 · API Design & RESTNote~575 words · 3 min
Why Cache at All A cache trades memory for latency: keeping a copy of expensive-to-compute or expensive-to-fetch data somewhere faster to read than the source of truth. The two design questions that matter most are how reads and writes flow
Software · L3 · Caching Strategies
@openstem
Software · L3 · Caching StrategiesNote~557 words · 3 min
Pure Functions and Side Effects A pure function's return value depends only on its arguments, and calling it has no observable effect beyond producing that value — no writing to a database, mutating a shared object, logging, or reading the
Software · L3 · Functional Programming Concepts
@openstem
Software · L3 · Functional Programming ConceptsNote~560 words · 3 min
How a Backtracking Engine Matches Most mainstream regex engines (PCRE, Python's re, JavaScript's RegExp) are backtracking engines: they try the pattern against the input greedily, and whenever a later part fails to match, they backtrack to
Software · L3 · Regular Expressions & Text Parsing
@openstem
Software · L3 · Regular Expressions & Text Parsing