Functional Programming
Building programs from pure functions and immutable data.
Backend Engineer track
Junior
Write correct code, ship small changes safely, ask good questions.
- First-Class FunctionsFunctions treated as values that can be stored, passed and returned.
- Higher-Order FunctionA function that takes or returns other functions.
- Lambda / Anonymous FunctionA function without a name, defined inline.
- Pure FunctionSame input, same output, and no side effects.
- Side EffectAnything a function does besides returning a value: I/O, mutation, logging.
Mid-level
Own a feature end to end without hand-holding.
- ClosureA function that remembers variables from the place it was defined.
- Declarative vs ImperativeDescribing what you want vs spelling out how to do it.
- Function CompositionCombining functions so the output of one feeds the next.
- Functional ProgrammingBuilding programs from pure functions and immutable data.
- ImmutabilityNever changing data after creation, producing new values instead.
- MemoizationCaching a function's results for inputs it has already seen.
- Option / Maybe TypeA type that explicitly represents "a value or nothing".
- Partial ApplicationFixing some arguments of a function to get a new function.
- Result / Either TypeA type that represents success or failure without exceptions.
Senior
Own a system, its failure modes, and its trade-offs.
- CurryingTurning a multi-argument function into a chain of single-argument ones.
- MonadA pattern for chaining computations that carry context, like Option or Promise.
- Referential TransparencyAn expression can be replaced by its value without changing behavior.
Staff
Shape how many teams build, across systems.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.
Data Engineer track
Junior
Build and fix pipelines from clear specs; write correct SQL.
- First-Class FunctionsFunctions treated as values that can be stored, passed and returned.
- Higher-Order FunctionA function that takes or returns other functions.
- Lambda / Anonymous FunctionA function without a name, defined inline.
- Pure FunctionSame input, same output, and no side effects.
- Side EffectAnything a function does besides returning a value: I/O, mutation, logging.
Mid-level
Own pipelines and models end to end, including their quality.
- ClosureA function that remembers variables from the place it was defined.
- Declarative vs ImperativeDescribing what you want vs spelling out how to do it.
- Function CompositionCombining functions so the output of one feeds the next.
- Functional ProgrammingBuilding programs from pure functions and immutable data.
- ImmutabilityNever changing data after creation, producing new values instead.
- MemoizationCaching a function's results for inputs it has already seen.
- Option / Maybe TypeA type that explicitly represents "a value or nothing".
- Partial ApplicationFixing some arguments of a function to get a new function.
- Result / Either TypeA type that represents success or failure without exceptions.
Senior
Design the platform's storage, processing and modeling choices.
- CurryingTurning a multi-argument function into a chain of single-argument ones.
- MonadA pattern for chaining computations that carry context, like Option or Promise.
- Referential TransparencyAn expression can be replaced by its value without changing behavior.
Staff
Shape how the whole organization produces and uses data.
Nothing here yet.
Principal
Set data strategy and architecture across the company.
Nothing here yet.
Frontend Engineer track
Junior
Build UI that works, ship small changes safely, ask good questions.
Core: start here
- ClosureA function that remembers variables from the place it was defined.
7 more junior concepts
- Arrow FunctionJavaScript's concise function syntax with lexical this.
- Declarative vs ImperativeDescribing what you want vs spelling out how to do it.
- First-Class FunctionsFunctions treated as values that can be stored, passed and returned.
- Higher-Order FunctionA function that takes or returns other functions.
- Lambda / Anonymous FunctionA function without a name, defined inline.
- Pure FunctionSame input, same output, and no side effects.
- Side EffectAnything a function does besides returning a value: I/O, mutation, logging.
Mid-level
Own a feature end to end without hand-holding.
- CurryingTurning a multi-argument function into a chain of single-argument ones.
- Function CompositionCombining functions so the output of one feeds the next.
- Functional ProgrammingBuilding programs from pure functions and immutable data.
- ImmutabilityNever changing data after creation, producing new values instead.
- MemoizationCaching a function's results for inputs it has already seen.
- Option / Maybe TypeA type that explicitly represents "a value or nothing".
- Partial ApplicationFixing some arguments of a function to get a new function.
- Result / Either TypeA type that represents success or failure without exceptions.
Senior
Own an app's architecture, performance, and failure modes.
- MonadA pattern for chaining computations that carry context, like Option or Promise.
- Referential TransparencyAn expression can be replaced by its value without changing behavior.
Staff
Shape how many teams build, across apps.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.