Skip to content
tezvyn:

⚙️Backend Dev

Backend engineering, APIs, and databases

533 bites

Test yourself: Top 30 Backend Dev interview questionsMultiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Interview questions in Backend Dev, page 23

intermediate2 min read

Using context.Context across microservice calls in Go

Context carries cancellation, deadlines, and values; pass ctx as first arg, set one WithTimeout at the edge, attach a request ID via WithValue, thread it through downstream calls so all cancel…

advanced1 min read

Cross-server Socket.IO communication in horizontal scaling?

Local io.emit() only reaches local sockets, need adapter (Redis) for inter-server broadcast.

intermediate1 min read

Synchronous vs asynchronous replication trade-offs

Sync waits for replica ack giving zero data loss but higher latency; async acks immediately, faster but risks losing recent writes on failover.

intermediate1 min read

Rust Send and Sync marker traits explained

Send means a value can move across threads, Sync means a reference can be shared; Rc uses non-atomic refcounts, Arc uses atomic ones.

How do you broadcast WebSocket messages to all clients across server nodes?
advanced2 min read

How do you broadcast WebSocket messages to all clients across server nodes?

Tests WebSocket horizontal scaling and pub/sub backplanes. A strong answer names a broker like Redis, describes cross-node fan-out, and keeps connection state purely local.

advanced2 min read

WebSocket optimization for high-frequency data?

Large payloads increase latency, frequent tiny messages waste overhead, solutions include compression, selective fields, and batching.

intermediate1 min read

The N+1 query problem and how to fix it

One query for a list plus one per item for its relation, fix with eager loading or a batched join.

advanced1 min read

Architecting an L7 proxy in Go versus Rust

Go offers GC and cheap goroutines for fast delivery but tail-latency GC pauses; Rust offers ownership and async/await for predictable latency at higher complexity.

advanced2 min read

How do you handle slow startup without blocking the FastAPI event loop?

It tests FastAPI lifespan events and event loop hygiene. Use an async lifespan to offload blocking model loading to a thread pool, track readiness with a global flag, and return 503 for early requests. Never block the event loop in startup handlers.

easy1 min read

Environment configuration and secrets management in Node.js?

Use environment variables, load from .env file (dev only), never commit secrets.

intermediate1 min read

Tuning a database connection pool

Max size, min idle, connection and max-lifetime timeouts; size from cores and latency, not guesswork.

advanced2 min read

Why Pin is needed for self-referential Futures

Async blocks compile to state machines that can hold references into their own storage; Pin guarantees the value will not move so those internal pointers stay valid across polls.

How do you inspect WebSocket close codes in FastAPI?
advanced2 min read

How do you inspect WebSocket close codes in FastAPI?

Tests WebSocket lifecycle handling in FastAPI. Strong answers catch the disconnect exception, read its code attribute, and log 1000 for normal closures versus 1001/1006 for crashes.

easy1 min read

What does PM2 do for Node.js applications?

PM2 restarts crashed processes and manages multiple workers.

intermediate1 min read

Upgrading a stateful Flink job without losing state

Take a savepoint, stop with drain, deploy new jar, restore from savepoint with matching operator UIDs.

intermediate1 min read

Fearless concurrency: Rust compile-time vs Go runtime

Rust uses ownership plus Send/Sync to reject data races at compile time; Go encourages channels but still allows races, with the runtime race detector catching them at test…

Walk me through a basic Dockerfile for a FastAPI app
easy2 min read

Walk me through a basic Dockerfile for a FastAPI app

Slim base, install deps before app code to cache layers, expose port, exec-form CMD for Uvicorn.

easy1 min read

How does NODE_ENV=production change Express behavior?

NODE_ENV is a convention signal, production disables verbose logging and enables caching.

intermediate1 min read

Denormalization: trading write cost for read speed

Duplicate or precompute data to avoid joins, accept harder writes and consistency risk, justify by read-heavy access.

intermediate2 min read

Rust lifetimes versus Go garbage-collected lifetimes

A lifetime is a compile-time region a reference is valid for; annotations like 'a relate input and output reference durations; Go instead uses garbage collection and escape analysis.

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles