Contents

Programming Fundamentals

Concurrency & Async

Doing many things at once, and the bugs that come with it.

Backend Engineer track

Junior

Write correct code, ship small changes safely, ask good questions.

Core: start here

  • async / awaitSyntax for writing asynchronous code that reads like synchronous code.
  • Promise / FutureAn object representing a value that will be available later.
2 more junior concepts
  • CallbackA function passed in to be called when work finishes.
  • Callback HellDeeply nested callbacks that make async code unreadable.

Mid-level

Own a feature end to end without hand-holding.

Core: start here

13 more mid-level concepts

Senior

Own a system, its failure modes, and its trade-offs.

  • Actor ModelConcurrency through isolated actors that communicate by messages.
  • BackpressureA slow consumer signalling a fast producer to slow down.
  • ChannelA typed pipe for passing values between concurrent tasks.
  • Green Threads / GoroutinesLightweight threads scheduled by the runtime rather than the OS.
  • LivelockTasks keep reacting to each other without making progress.
  • SemaphoreA counter limiting how many tasks can use a resource at once.
  • StarvationA task never gets the resources it needs to run.

Staff

Shape how many teams build, across systems.

Nothing here yet.

Principal

Set technical direction for the organization.

Data Engineer track

Junior

Build and fix pipelines from clear specs; write correct SQL.

  • async / awaitSyntax for writing asynchronous code that reads like synchronous code.
  • CallbackA function passed in to be called when work finishes.
  • Callback HellDeeply nested callbacks that make async code unreadable.
  • Promise / FutureAn object representing a value that will be available later.

Mid-level

Own pipelines and models end to end, including their quality.

Senior

Design the platform's storage, processing and modeling choices.

  • Actor ModelConcurrency through isolated actors that communicate by messages.
  • BackpressureA slow consumer signalling a fast producer to slow down.
  • ChannelA typed pipe for passing values between concurrent tasks.
  • Green Threads / GoroutinesLightweight threads scheduled by the runtime rather than the OS.
  • LivelockTasks keep reacting to each other without making progress.
  • SemaphoreA counter limiting how many tasks can use a resource at once.
  • StarvationA task never gets the resources it needs to run.

Staff

Shape how the whole organization produces and uses data.

Nothing here yet.

Principal

Set data strategy and architecture across the company.

Frontend Engineer track

Junior

Build UI that works, ship small changes safely, ask good questions.

Core: start here

  • async / awaitSyntax for writing asynchronous code that reads like synchronous code.
  • Promise / FutureAn object representing a value that will be available later.
3 more junior concepts

Mid-level

Own a feature end to end without hand-holding.

Core: start here

  • Event LoopA single thread running tasks from a queue, as in JavaScript and asyncio.
  • Race ConditionA bug where the result depends on unpredictable timing.
6 more mid-level concepts

Senior

Own an app's architecture, performance, and failure modes.

  • BackpressureA slow consumer signalling a fast producer to slow down.
  • DeadlockTwo or more tasks waiting on each other forever.
  • ProcessA running program with its own memory space.
  • ThreadAn execution path within a process that shares its memory.

Staff

Shape how many teams build, across apps.

Nothing here yet.

Principal

Set technical direction for the organization.

Nothing here yet.