Engrain by ByteRush

JS.16 12 concepts

The coding round III: data structures and patterns

Implement the classic utility and pattern questions (with JS.14 and JS.15, at least 35 implementations).

  1. JS.16.01deepClone (with cycles, Map, Set, Date, RegExp)CoreMid-levelBeing written
  2. JS.16.02EventEmitter / pub-subCoreMid-levelBeing written
  3. JS.16.03LRU cacheCoreMid-levelBeing written
  4. JS.16.04get, set and flatten/unflatten object pathsCoreMid-levelBeing written
  5. JS.16.05Promise pool, async queue and task schedulerCoreSeniorBeing written
  6. JS.16.06retryWithBackoff and cancellable fetch wrapperCoreMid-levelBeing written
  7. JS.16.07Array/collection utilitiesCoreJuniorBeing written
  8. JS.16.08String utilities: template engine, classnames, query stringsMid-levelBeing written
  9. JS.16.09DOM utilitiesCoreMid-levelBeing written
  10. JS.16.10Observable, signals and storeSeniorBeing written
  11. JS.16.11Rate limiter and request batcherSeniorBeing written
  12. JS.16.13More commonly asked utilitiesMid-levelBeing written

Practice rooms

  • Mixed timed setsrung 4 timed sets · spaced re-solve deck of all implementations

Interview questions in this module

  1. Implement deepClone that handles circular references.
  2. Implement an EventEmitter with on, off, once and emit.
  3. Implement an LRU cache with O(1) operations.
  4. Implement get(obj, "a.b[0].c", defaultValue).
  5. Implement a promise pool with a concurrency limit.
  6. Implement groupBy and chunk.
  7. Implement a simple template engine.
  8. Implement getElementsByClassName without using built-in selectors.
  9. Implement a Redux-style store with subscribe.
  10. Implement a token-bucket rate limiter.
  11. Implement a function that batches calls made in the same tick into one network request.
  12. Flatten a nested object into dot-notation keys and back.