Interview
114 bites tagged Interview — interview questions with model answers, and 60-second explainers.
Structured vs unstructured logging: why it matters
Unstructured logs are free-text lines hard to parse; structured logs are machine-readable key-value or JSON records; structure enables reliable querying… understanding of log formats and their impact on observability at scale.
Why use latency percentiles over the average?
Averages hide the tail and are skewed by outliers, so most users can suffer while the mean looks fine; use percentiles; prioritize p99 when tail users are high-value or fan-out… understanding of latency distributions and tail behavior.
What are the Four Golden Signals?
Name latency, traffic, errors, and saturation; explain each briefly; describe measuring latency as a distribution separating success from failure. knowledge of the core user-facing monitoring signals.
Explain the three pillars of observability
Metrics are cheap aggregated time series for detecting and alerting, logs are discrete event records for detail and context, traces follow one request across services to localize latency. practical command of metrics, logs, and traces.
Error budget policy across dependent microservices?
Set per-service SLOs but anchor on user-facing journey SLOs, budget for dependency error via the multiplication of availabilities, attribute downstream-caused failures correctly, and use… SLO design in a dependency graph.
SRE vs traditional ops on a recurring alert?
Traditional ops repeatedly handles the alert manually and scales by adding people; SRE treats it as a bug, automates or eliminates the root cause, and scales sublinearly. whether you grasp the software-engineering mindset of SRE.
Risky launch with a near-empty error budget?
Contain blast radius via canary and feature flags, use progressive rollout tied to budget burn, negotiate explicit risk acceptance, add fast rollback. balancing business risk against reliability with engineering controls.
What makes a blameless postmortem effective?
Cover summary, impact, timeline, root cause, action items; explain blameless means focusing on systemic causes so people report honestly. understanding of postmortem structure and the psychology of blamelessness.
How do you find and eliminate toil systematically?
Inventory and measure toil via time tracking or ticket analysis, prioritize by frequency times cost versus automation effort, automate highest-ROI items, measure success… a measurable, prioritized approach to reducing operational toil.
Error budget exhausted early: what now?
Invoke the error budget policy, shift focus from features to reliability, prioritize stability work, analyze what burned the budget. whether you use the error budget as a decision tool, not punishment.
How do you set SLOs for a service from scratch?
Identify critical user journeys, pick SLIs that reflect user happiness, measure current performance, set achievable targets with buffer, iterate. a disciplined, user-centric process for defining reliability targets.
How do SRE and DevOps relate?
DevOps is a broad culture of breaking down silos; SRE is one prescriptive way to do it with specific practices. whether you see SRE as a concrete implementation of DevOps principles, not a rival.
SLI vs SLO vs SLA: how do they relate?
SLI is a measured metric, SLO is the internal target for that metric, SLA is the external contract with consequences. command of the core reliability vocabulary.
What defines toil, with an example?
Define toil as manual, repetitive, automatable, tactical, no-enduring-value, scaling-with-growth work; distinguish it from overhead; give a concrete example. whether you can identify operational work worth automating away.
Explain touch event dispatch in a ViewGroup with a clickable child
It tests touch routing through the three key methods. A strong answer traces ACTION_DOWN from root to target, notes intercepting halts child delivery, and onTouchEvent true consumes while false bubbles up.
What do the safe call and Elvis operators do in Kotlin?
?. yields null if receiver is null; ?: provides the right operand when left is null; chain as val len = str?.length ?: 0. Kotlin null-safety and default-value fallback. Using !!, verbose if checks, or stating ?.
How would you create a parameterized Svelte tooltip Action?
It tests your grasp of the Svelte Action lifecycle for reactive parameters. Answer: action takes node and parameter, returns update and destroy, bound as use:tooltip={text}. Using component events instead of the Action API, or omitting update, is a red flag.
How would you use variants, booleans, and instance swap for a Button?
This tests fluency in Figma component properties for scalable design systems. Map variant properties to states, booleans to toggle the icon layer, and instance swap to change the icon type. Never suggest detached overrides or separate components per state.
Main components vs instances: how to use Component Properties for multi-state Buttons?
This tests Figma component architecture. A main component is the source; an instance is a linked copy. Use variant properties for state and style, plus booleans for optional layers. Red flags: separate components per state or ignoring property controls.
How do you globally add a property to a third-party ButtonProps interface?
Tests TypeScript declaration merging and module augmentation. A strong answer uses a .d.ts file that declares the same module and interface name to merge the missing property globally. Red flag: suggesting edits inside node_modules or local wrapper types.
Create a generic State class with getState and setState
Write class State<T> with private T, constructor(T), getState(): T, and setState(T). Binding a generic class parameter so methods share one consistent type. Using any instead of T, erasing type safety.
Explain generic constraints and provide a length-constrained generic example
Explain that extends requires properties; show T extends { length: number }; give a generic function signature. Your grasp of bounding generics to shapes without losing type safety. Using any or dropping extends.
Refactor a function using generics to accept any array type
It tests generic type parameters for preserving element types through a function boundary. Answer: declare T, accept T[], return T, and let the compiler infer the element type from the call site.
Implement inSequence(tasks) to execute promise-returning functions sequentially
Tests async/await control flow versus Promise.all parallelism. A strong answer uses a for-of loop with await inside an async function, accumulates results in order, and stops cleanly on rejection. Red flag: suggesting Promise.all or forEach with await.
Get Interview bites daily.
Five a day, five minutes, offline. With quizzes so it sticks.
Open testing — you’ll join as an early tester.