OS
OpenStem
@openstem · Joined Jul 2026
7420 public items8 groups
Flashcards8 cards
What does a service mesh add on top of plain service-to-service HTTP calls?1 / 8
A service mesh injects a sidecar proxy next to each service instance to handle cross-cutting concerns transparently: mTLS encryption, retries, timeouts, load balancing, circuit breaking, and traffic shaping (canary splits) — all without the application code knowing about it. The control plane configures every sidecar's routing rules and collects telemetry centrally.
Microservices Architecture & Resilience Patterns
@openstem
Microservices Architecture & Resilience PatternsFlashcards8 cards
What is a Kafka partition, and why does it determine ordering guarantees?1 / 8
A partition is an append-only, ordered log — one shard of a topic. Kafka guarantees order only within a single partition, not across a topic's partitions, so events that must stay ordered relative to each other (e.g. all updates to one entity) need to be produced with the same partition key so they land on the same partition.
Event Streaming & Kafka
@openstem
Event Streaming & KafkaFlashcards8 cards
What are the 'three pillars' of observability, and what does each answer?1 / 8
Metrics (numeric time series — request rate, error rate, latency) answer 'is something wrong, and roughly how much?'. Logs (discrete timestamped events with detail) answer 'what exactly happened at this point?'. Traces (the causal chain of spans across services for one request) answer 'where in the call chain did the problem happen?'. Real debugging usually moves between all three: a metric alerts, a trace localizes the slow hop, a log explains why.
Observability: Metrics, Logs, and Traces
@openstem
Observability: Metrics, Logs, and TracesFlashcards5 cards
Define the complexity classes P and NP.1 / 5
P is the class of decision problems solvable by a deterministic Turing machine in polynomial time. NP is the class of decision problems whose YES-instances have certificates verifiable in polynomial time by a deterministic Turing machine. P ⊆ NP; whether P = NP is the central open question in theoretical computer science.
Software · L5 · Complexity Theory
@openstem
Software · L5 · Complexity TheoryFlashcards4 cards
State the FLP impossibility result.1 / 4
Fischer, Lynch, and Paterson (1985): in a fully asynchronous message-passing system, there is no deterministic protocol that solves consensus even if at most one process may crash-fail. The key conditions: asynchrony (no bound on message delay or computation speed), determinism, and tolerance of just one crash. This rules out wait-free consensus in the pure async model.
Software · L5 · Distributed Systems Theory
@openstem
Software · L5 · Distributed Systems TheoryFlashcards8 cards
Define a deterministic finite automaton (DFA) as a 5-tuple.1 / 8
A DFA is M = (Q, Σ, δ, q₀, F) where Q is a finite set of states, Σ is a finite alphabet, δ: Q × Σ → Q is the (total) transition function, q₀ ∈ Q is the start state, and F ⊆ Q is the set of accepting states. M accepts w ∈ Σ* iff the extended transition function δ̂(q₀, w) ∈ F.
Software · L5 · Automata Theory & Formal Languages
@openstem
Software · L5 · Automata Theory & Formal LanguagesFlashcards7 cards
What is CSP, and what are its two core composition operators?1 / 7
Communicating Sequential Processes (Hoare, 1978) is a process algebra where processes interact only through synchronous, rendezvous-style events on named channels — there is no shared memory. The two core operators are prefixing, a → P (perform event a, then behave as P), and choice, P □ Q (external choice between P and Q, resolved by the environment's first event). Parallel composition P ‖ Q synchronises processes on shared alphabet events.
Software · L5 · Process Calculi & Concurrency Theory
@openstem
Software · L5 · Process Calculi & Concurrency TheoryFlashcards7 cards
Define a Turing machine as a formal tuple.1 / 7
A Turing machine is M = (Q, Σ, Γ, δ, q₀, q_accept, q_reject) where Q is a finite state set, Σ is the input alphabet, Γ ⊇ Σ is the tape alphabet (including a blank symbol ⊔ ∉ Σ), δ: Q × Γ → Q × Γ × {L, R} is the transition function, q₀ is the start state, and q_accept, q_reject ∈ Q are distinguished halting states. M operates on a semi-infinite tape with a read/write head; each step reads the symbol under the head, writes a symbol, moves the head, and changes state.
Software · L5 · Computability Theory
@openstem
Software · L5 · Computability TheoryFlashcards7 cards
Define a one-way function (OWF), and explain its role in modern cryptography.1 / 7
A function f: {0,1}* → {0,1}* is one-way if it is efficiently computable (in polynomial time) but hard to invert: for every probabilistic polynomial-time (PPT) adversary A, the probability that A(f(x)) outputs some x′ with f(x′) = f(x), over a uniformly random x, is negligible. OWFs are the minimal cryptographic primitive — Impagliazzo and Luby (1989) showed that essentially all of private-key cryptography (pseudorandom generators, pseudorandom functions, digital signatures, commitment schemes) can be built from OWFs, and conversely most of these primitives imply the existence of an OWF, making OWF existence the foundational assumption of the field.
Software · L5 · Cryptographic Foundations
@openstem
Software · L5 · Cryptographic FoundationsFlashcards7 cards
What is relational algebra, and why is it considered the formal foundation of SQL?1 / 7
Relational algebra (Codd, 1970) is a procedural query language of operators — selection σ, projection π, union ∪, set difference −, Cartesian product ×, and (derived) join ⋈ — that transform relations (sets of tuples) into relations. Every SQL query has an equivalent relational-algebra expression, and query engines internally translate declarative SQL into an algebra expression (a logical plan) precisely so they can apply algebraic identities to transform it into an equivalent but cheaper plan before execution.
Software · L5 · Database Theory & Query Optimization
@openstem
Software · L5 · Database Theory & Query OptimizationFlashcards7 cards
Distinguish data parallelism from model parallelism in distributed training.1 / 7
Data parallelism replicates the full model on every worker; each worker computes gradients on a distinct shard of a mini-batch, and gradients are aggregated (e.g. by summing/averaging) before the shared parameters are updated. Model parallelism instead partitions the model itself across workers — different workers hold different layers or tensor slices — because the model is too large to fit in one device's memory, and activations must be passed between workers as they flow through the partitioned computation graph.
Software · L5 · Distributed Machine Learning Systems
@openstem
Software · L5 · Distributed Machine Learning SystemsFlashcards8 cards
Distinguish small-step (structural) operational semantics from big-step (natural) operational semantics.1 / 8
Small-step semantics defines a one-step reduction relation e → e' capturing a single unit of computation; the meaning of a program is the (possibly infinite) sequence of steps e →* e_final. Big-step semantics defines a relation e ⇓ v directly relating an expression to its final value, described all at once. Small-step exposes intermediate states (useful for reasoning about non-termination, concurrency, and interleaving); big-step is more concise for defining evaluators but cannot directly express non-termination as a first-class judgement.
Software · L5 · Programming Language Semantics
@openstem
Software · L5 · Programming Language SemanticsFlashcards7 cards
Define a dataflow analysis in terms of transfer functions and a lattice.1 / 7
A dataflow analysis assigns each program point a value from a lattice (L, ⊑) representing an abstract fact (e.g. the set of live variables). Each CFG edge/statement has a transfer function f: L → L propagating facts across it; the analysis computes, for every point, the least fixpoint of these equations subject to a meet (∩) or join (∪) at control-flow merge points, depending on whether the analysis is 'must' or 'may'.
Software · L5 · Program Analysis & Abstract Interpretation
@openstem
Software · L5 · Program Analysis & Abstract InterpretationFlashcards8 cards
Define a Hoare triple {P} C {Q} and state what it asserts about program C.1 / 8
{P} C {Q} asserts partial correctness: if the precondition P holds in the initial state and command C terminates, then the postcondition Q holds in the resulting state. It says nothing about whether C actually terminates — a program that loops forever from any state satisfying P vacuously satisfies {P} C {Q} for any Q.
Software · L5 · Hoare Logic & Program Verification
@openstem
Software · L5 · Hoare Logic & Program VerificationFlashcards8 cards
What is the essential difference between LL(1) and LR(1) parsing?1 / 8
LL(1) builds a parse tree top-down, predicting which production to expand next using one lookahead token — it requires a grammar with no left recursion and disjoint FIRST sets per alternative. LR(1) builds the tree bottom-up, shifting tokens onto a stack and reducing by a production once a right-hand side is fully recognized on top of it; LR(1) accepts a strictly larger class of grammars, including left-recursive ones, at the cost of a more complex, table-driven parser generator.
Software · L5 · Compiler Construction Theory
@openstem
Software · L5 · Compiler Construction TheoryFlashcards10 cards
Why are indexes important in MongoDB?1 / 10
Without an index, a query does a full collection scan (O(n)). Indexes (B-tree) let MongoDB locate matching documents quickly. Index fields used in query filters and sorts. Like any DB, indexes speed reads but slow writes and use memory.
Indexes & Scaling
@openstem
Indexes & ScalingQuiz3 questions
What is an algorithm?
AA type of computerBA step-by-step list of instructionsCA picture drawn by a robotDA very fast calculator
Software · L1 · Algorithms and Sequencing
@openstem
Software · L1 · Algorithms and SequencingQuiz2 questions
Can a computer think for itself without any instructions?
AYes, computers are very smart on their ownBNo, computers only do what people tell themCOnly if they are switched onDOnly if they are connected to the internet
Software · L1 · Computers and What They Do
@openstem
Software · L1 · Computers and What They DoQuiz5 questions
What does `[1, 2, 3].map(x => x * 2)` return?
A`[1, 2, 3]`, unchangedBA new array `[2, 4, 6]`C`undefined`DThe number 6
Software · L1 · JavaScript: Fundamentals Check
@openstem
Software · L1 · JavaScript: Fundamentals CheckQuiz5 questions
What does `0 ?? 5` evaluate to?
A5B0CundefinedDNaN
Software · L1 · TypeScript: Optional & Nullish Values
@openstem
Software · L1 · TypeScript: Optional & Nullish ValuesQuiz5 questions
You need to check membership of thousands of items as fast as possible, and order doesn't matter. Which collection fits best?
AlistBtupleCsetDA plain string
Software · L1 · Python: Choosing a Collection
@openstem
Software · L1 · Python: Choosing a CollectionQuiz5 questions
Which phase of React's render cycle actually mutates the real DOM?
AThe render phaseBThe commit phaseCThe diff phase (a separate step from render)DThe browser's paint phase
Software · L1 · React: Render Cycle Check
@openstem
Software · L1 · React: Render Cycle CheckQuiz5 questions
You need O(1) average lookups by key and don't care about ordering. What's the best fit?
AHash tableBBalanced BSTCSingly linked listDUnsorted array
Software · L1 · Data Structures & Algos: Picking the Right Approach
@openstem
Software · L1 · Data Structures & Algos: Picking the Right ApproachQuiz5 questions
You need multi-table joins and strong ACID transactions for financial records. Which database type fits best?
ARelational (SQL)BKey-value storeCGraph databaseDDocument database
Software · L1 · System Design: Choosing a Database Type
@openstem
Software · L1 · System Design: Choosing a Database TypeQuiz5 questions
What does `COMMIT` do at the end of a transaction?
AUndoes every statement since BEGINBMakes every statement since BEGIN permanentCLocks the table permanentlyDDeletes the transaction log
Software · L1 · SQL: Transactions & ACID
@openstem
Software · L1 · SQL: Transactions & ACIDQuiz5 questions
Why work on a separate feature branch instead of committing directly to main?
AFeature branches are required by Git itselfBIt keeps main always deployable and gives reviewers a clean diffCIt makes commits smaller automaticallyDIt disables CI on the branch
Software · L1 · Git & Dev Workflow: The Feature Branch Workflow
@openstem
Software · L1 · Git & Dev Workflow: The Feature Branch WorkflowQuiz5 questions
Which function works ONLY on slices, maps, and channels?
AnewBmakeCBoth work identically on any typeDNeither — you must always use a literal
Software · L1 · Go: Creating Values
@openstem
Software · L1 · Go: Creating ValuesQuiz5 questions
A function only needs to read a Vec<i32>, not own or mutate it. What should its parameter type be?
AVec<i32> (take ownership)B&Vec<i32> (an immutable borrow)C&mut Vec<i32> (a mutable borrow)DVec<i32>.clone()
Software · L1 · Rust: Move, Borrow, or Clone?
@openstem
Software · L1 · Rust: Move, Borrow, or Clone?Quiz5 questions
What does the `new` keyword actually do in `Car c = new Car();`?
AAllocates memory for the object and invokes its constructorBDeclares the Car classCImports the Car class from another packageDDeletes any existing Car object
Software · L1 · Java: Classes & Objects
@openstem
Software · L1 · Java: Classes & ObjectsQuiz5 questions
Which tree combines the DOM and CSSOM before layout can happen?
AThe accessibility treeBThe render treeCThe event treeDThere is no such combination step
Software · L1 · HTML & CSS: Layout & Semantics Check
@openstem
Software · L1 · HTML & CSS: Layout & Semantics Check