04 — Software Engineering

General software engineering knowledge supporting all technical work in the vault. Covers the full development lifecycle from design principles through to AI-assisted tooling, with depth in Python, Go, TypeScript, distributed systems, APIs, databases, testing, and DevOps.

Guiding question: “How do we build robust software systems?”

This layer does NOT cover: statistical derivations (→ 01_foundations), model algorithm selection (→ 03_modeling), ML production systems (→ 05_ml_engineering), or LLM system design (→ 06_ai_engineering).

Sublayers

01 — Principles & Patterns

SOLID, design patterns, and clean code practices that govern how good software is structured.

02 — Programming Languages

Language reference notes for Python, Go, JavaScript, and TypeScript.

  • Python — core language, data model, async, tooling
  • Go — types, concurrency, interfaces, packages
  • JavaScript — core language, async, modules, runtimes
  • TypeScript — type system, generics, utility types

03 — System Design

Fundamentals of designing large-scale distributed systems: CAP theorem, consistency, scalability, and availability trade-offs.

04 — APIs & Services

REST API design, FastAPI patterns, gRPC and Protobuf.

05 — Databases & Storage

SQL, NoSQL, and caching patterns for persistent data management.

06 — Testing & Quality

Testing strategies, TDD, property-based testing, and quality gates.

07 — DevOps & Infrastructure

Docker, Kubernetes, CI/CD pipelines, ML framework tooling, Git internals, and GitHub workflows. Version control content lives here.

08 — Security

Defensive engineering patterns: filesystem sandboxing, authentication, and trust boundary enforcement.

09 — AI-Assisted Software Engineering

LLM code generation, MCP protocol, RAG for code, and agentic coding workflows.

Relationship to Other Layers


Navigation:Modeling | Start with Principles & Patterns →

9 items under this folder.