Tech Stacks
    Overview
    System Design Patterns
    CAP Theorem
    C10K and C10M
    Network Programming Models
    Examples

Tech Stacks - Overview

Updated: 2022-03-26

Tech Stacks

Infra Building Blocks

Development

  • Languages: Java vs C++ vs Python vs Go vs Rust vs Kotlin ...
  • Frameworks: server, web, mobile, UX
  • Coding Styles / Naming Conventions: camelCase? PascalCase? Underscore? Dash?
  • IDE / Editor: VS Code, Intellij, Vim. Though it is ok to choose any IDE the developer prefers, but better to have a few "officially supported" options by your technical support team.
  • Source control
  • Code review
  • Internal documentation and knowledge sharing
  • Analytics, logging
  • Internal experiment / external experiment

Production

  • Package / artifact format: a common way to package all the applications, e.g. Docker containers or Java archives.
  • Artifact registry
  • Build, Test, Release, Rollout
  • Logging: AWS Kinesis, Fluentd, GCP Cloud Logging
  • Metrics, Monitoring, Alerting, SLOs: to monitor system health and key business metrics, and send out alerts: GCP Cloud Monitoring, Datadog
  • Prober, blackbox monitoring
  • Resource / Capacity Management and Provisioning: manages a service’s capacity; adjusts resource requirements or number of replicas. CPU / RAM / SSD / DISK. (Infrastructure as code: CloudFormation, Terraform)
  • Data Integrity, Reliability, and Staleness Prevention
  • Oncall, Incidents, Escalations, and Postmortems

Processes

  • Planning / Issue tracking: Jira, Asana, Kanban
  • Privacy / Security reviews
  • Launch: internal review, then expose the code to end users
  • Methodology: waterfall vs agile