Skip to content
Skilled.dev

Learn and practice

Guides

Worked explanations of interview problems, JavaScript behavior, and algorithm choices. Read the reasoning, inspect the code, and move into practice.

Guides

Debounce vs. throttle in JavaScript

Build both functions, compare leading and trailing calls, and test timing behavior with an interactive event timeline.

Guides

Implement Promise.all in JavaScript

Write a Promise.all implementation that preserves input order, handles empty iterables, and rejects correctly.

Guides

The JavaScript event loop, explained with execution traces

Trace synchronous code, promise microtasks, timers, and async functions. Work through examples before checking their output.

Guides

BFS vs. DFS: choosing a graph traversal

Compare queues, stacks, shortest paths, visited sets, and memory costs with worked graph and grid examples.

Guides

Big O time and space complexity with worked examples

Analyze loops, nested work, recursion, and auxiliary memory. Learn to state assumptions and distinguish worst-case from amortized cost.

Guides

How to explain a coding interview solution

A worked Two Sum interview: clarify the contract, develop a baseline, justify a hash map, test edge cases, and explain complexity.

Guides

Implement a JavaScript queue for BFS without repeated shift calls

Build a FIFO queue with bounded compaction, distinguish empty results from undefined values, and use it in a cyclic graph traversal.

Guides

TypeScript collections: missing values, keys, and readonly contracts

Model lookup presence explicitly, handle unchecked indexes, preserve zero and undefined, and write a typed frequency counter and graph BFS.

Guides

Count islands in Python with iterative flood fill

Solve a four-neighbor binary-grid problem with an explicit stack, visited-set and in-place variants, complexity analysis, and boundary tests.

Guides

Java PriorityQueue: top-K values, comparators, and stable ties

Retain top-K stream values, process jobs with explicit tie order, and test Java heap ranking separately from iteration and sorted output.

Guides

C++ lower_bound and upper_bound: counts, neighbors, and record ranges

Use C++ search boundaries for duplicate counts, strict predecessors and successors, and custom record keys without invalid iterator operations.

Guides

Longest unique substring in Go: bytes, runes, and Unicode

Implement rune and ASCII sliding windows, reject invalid input, preserve forward-only boundaries, and test Unicode length assumptions.

Guides

Rust BFS shortest paths with borrowed graph labels

Return a shortest unweighted route using borrowed string labels, a FIFO frontier, explicit parents, and a lifetime that matches the source graph.

Guides

JavaScript closures and this: state, receivers, and callback lifetimes

Explain closure bindings, independent instances, receiver loss, arrow functions, listener cleanup, and callback lifetime through tested JavaScript examples.

Guides

Design an accessible autocomplete: state, stale requests, and keyboard behavior

Work through query state, cancellation, stale-response guards, keyboard focus, combobox semantics, caching, and test cases for a frontend autocomplete.

Guides

DOM event delegation: boundaries, nested targets, and cleanup

Build a delegated button handler with explicit container boundaries, nested targets, disabled controls, keyboard activation, and listener cleanup.

Guides

How a multilingual coding exercise runner works

Follow a language-neutral problem spec through source generation, execution, authenticated result parsing, server-side comparison, and conformance checks.

Guides

How to test a coding exercise across programming languages

Design a language-neutral contract, independent reference checks, comparison rules, starter controls, edge cases, and conformance tests for a multilingual lesson.

Guides

Retry with exponential backoff in JavaScript

Build a bounded retry loop with full jitter, cancellation, explicit retry policy, and deterministic timing tests.

Guides

Limit promise concurrency in JavaScript

Run lazy task factories in an ordered worker pool, stop new work after failure, and drain active tasks before settling.

Guides

Deep clone JavaScript data: cycles, aliases, and property contracts

Copy a supported object graph without losing cycles, shared references, sparse holes, or property flags, and compare with structuredClone.

Guides

Flatten nested JavaScript arrays with an explicit stack

Preserve left-to-right order, distinguish holes from undefined, reject cycles, and expand repeated references correctly.

Guides

Implement currying in JavaScript with an explicit arity

Collect grouped arguments, reuse partial applications safely, and define receiver, excess-argument, and exception behavior.

Guides

JavaScript memoization: keys, invalidation, and rejected promises

Build receiver-aware argument caching and pending-promise deduplication with explicit identity, retention, and failure rules.

Guides

Build a JavaScript event emitter with reliable cleanup

Implement duplicate subscriptions, recursive once listeners, dispatch mutation rules, and idempotent unsubscription.

Guides

JavaScript prototypes: lookup, ownership, and method receivers

Trace inherited properties, shadowing, accessors, constructor prototypes, and dictionary ownership with executable examples.

Guides

JavaScript equality, coercion, and object identity

Compare strict equality, Object.is, Map keys, falsy values, and object identity through tested cases and practical API contracts.

Guides

URL shortener system design: IDs, caching, and failure tradeoffs

Work through a hypothetical short-link service, from durable key allocation to redirects, cache invalidation, analytics, and regional visibility.

Guides

Choose a coding interview practice platform with a repeatable trial

Evaluate guided courses, problem banks, language tracks, and frontend practice using one task, delayed recall, feedback, and verified access.

Guides

Explain a technical project in interviews and on your resume

Prepare an accurate project story with your contribution, tradeoffs, failure recovery, measured evidence, and recruiter-screen follow-ups.