stack_baseline.md

Stack baseline — 2026-2027

Updated 11 min read source
On this page14
  1. Python
  2. Python tooling
  3. Web / backend
  4. Data stores
  5. Infra / platform
  6. Frontend
  7. AI / LLM
  8. Compliance / security
  9. Data engineering
  10. Domain: quant / fintech
  11. Domain: healthcare / regulated
  12. AI-assisted development
  13. How to use this file
  14. Sources

Stack baseline — 2026-2027

Single source of truth for versions and facts used across these notes. Every content edit checks claims against this table. Web-verified 2026-08-08; Vue, data-engineering, quant, healthcare and AI-tooling rows verified 2026-08-10; Python and the ML/LLM library rows re-verified 2026-08-12; agent-framework and eval-tooling rows added 2026-08-13.

Rule: when a note states a version, it either matches this table or explicitly says why an older version matters (“Django 4.2 is where X was introduced”). Never leave a bare unversioned claim that was true only in 2023.

Python

Item Current Notes for notes
Python 3.14.7 (2026-08-05; 3.14.0 GA 2025-10-07) Baseline for all examples. 3.13 acceptable where a feature needs it.
Python 3.15 pre-release, planned 2026-10-01 Say “due October 2026”, never “current”. Useful as the “what’s next” answer.
Security-only 3.10-3.12 3.10 goes EOL 2026-10. 3.9 already EOL (2025-10-31).
Free-threading Official (PEP 779) in 3.14 No longer experimental. 3.13 was experimental. Build is still opt-in (python3.14t). Rewrite every GIL note around this.
JIT Experimental (copy-and-patch) Say “experimental”, not “coming”.
Subinterpreters PEP 734, stdlib interpreters in 3.14 New concurrency option alongside threads/async/processes.
t-strings PEP 750 in 3.14 Template strings. New topic — safe SQL/HTML interpolation angle.
Deferred annotations PEP 649 in 3.14 from __future__ import annotations story changed. Update typing notes.
compression.zstd PEP 784 in 3.14 Minor; mention in stdlib note.
EOL 3.9 EOL Oct 2025 Anything referencing 3.7/3.8/3.9 as “modern” is wrong.

Python tooling

Item Current Notes for notes
Package manager uv The 2026 default. Repo mentions it in 3 files — should be the primary answer in packaging/CI/Docker notes, with pip/Poetry as context.
Lint + format Ruff 800+ rules; replaces flake8 + black + isort + pyupgrade + bandit. Used by FastAPI, LangChain, HuggingFace.
Type checker mypy (established), ty (Astral, newer) mypy is still the safe interview answer; mention ty/pyright as the moving edge.
Config pyproject.toml only uv, Ruff, mypy, pytest, coverage, build all live there. setup.py/setup.cfg/.flake8/mypy.ini are legacy.
Base image python:3.14-slim Repo Docker notes should not pin 3.11.

Web / backend

Item Current Notes for notes
FastAPI 0.136.x, fastapi[standard] OpenAPI 3.1. Still the default Python API framework.
Pydantic v2 (2.7+) v1 only as migration context. 5–50× faster validation.
SQLAlchemy 2.0, AsyncSession 2.0 select() style only. Sync SQLAlchemy blocks the event loop — that’s the interview point.
Django 6.1 (2026-08-05); 6.0 Dec 2025 5.2 is the LTS. Repo says 4.2 — stale.
DRF current Check async support story.
ASGI ASGI 3 Granian/uvicorn/hypercorn landscape.

Data stores

Item Current Notes for notes
PostgreSQL 18.4 (18 GA Sep 2025) Repo says 12/13. PG18: async I/O, UUIDv7, virtual generated columns, OAuth auth.
Redis 8.x; license changed 2024 The license split is itself an interview topic. Covered across backend/09_caching/redis/ (01 model, 04 persistence, 05 HA, 06 streams, 07 Python).
Valkey Linux Foundation fork of Redis 7.2; 8.x Multi-threaded I/O is the real technical divergence. Covered in backend/09_caching/valkey/01_valkey.md.
Kafka 4.x (4.0 Mar 2025; 4.3.1 Jun 2026) ZooKeeper fully removed — KRaft only. Repo says 2.4/2.8 — badly stale. Also: queues for Kafka (KIP-932), faster rebalances.
MongoDB 8.x
Elasticsearch 9.x AGPLv3 added as a licence option Aug 2024 — “Elasticsearch isn’t open source” is out of date.
OpenSearch 3.x; Apache 2.0 Verified 2026-08-18. Forked from ES 7.10 in 2021; donated to the Linux Foundation Sep 2024, so it is no longer “an AWS project”. elasticsearch-py 8+ refuses to talk to it (product-verification header) — use opensearch-py. Covered in backend/08_databases/nosql/elasticsearch/07_opensearch_and_the_fork.md.
Qdrant Rust engine, Apache 2.0 Verified 2026-08-18. Filterable HNSW (filters applied during traversal, not post-hoc), named dense+sparse vectors on one point, prefetch + RRF/DBSF fusion in a single query_points call, scalar/binary quantisation with always_ram. Covered in ai_ml/09_rag_embeddings/12_qdrant_in_production.md.
pgvector 0.8.6 Verified 2026-08-12. HNSW (m, ef_construction, query-time hnsw.ef_search) and IVFFlat (lists, ivfflat.probes). Operators <-> L2, <=> cosine, <#> inner product; the index opclass must match the operator or it is silently unused. Also halfvec, binary quantisation and sparsevec. Covered in ai_ml/09_rag_embeddings/10_pgvector_in_production.md.

Infra / platform

Item Current Notes for notes
n8n Community edition under the Sustainable Use License Verified 2026-08-18. Source-available, not OSI open source — same shape as Redis/Valkey and Terraform/OpenTofu. Queue mode (Redis + workers) is in the community edition; multi-main needs Enterprise. Use Postgres, never the default SQLite, and set the execution-data pruning variables or the disk fills. Covered in ai_ml/10_agents_orchestration/20_n8n_and_low_code_automation.md.
Kubernetes 1.3x (verify at edit time) Gateway API is GA and replaces Ingress for new work — 0 mentions in repo.
Docker current Multi-stage + distroless; BuildKit default.
Terraform 1.x; BSL license since 2023 → OpenTofu fork License split is an interview talking point. 0 mentions.
Node.js 24 LTS (22 maintenance) Repo mixes node10/14/16 with 22/24.
OpenTelemetry GA for traces/metrics/logs Also OTel GenAI semantic conventions for LLM spans — near-zero coverage.

Frontend

Item Current Notes for notes
React 19.2.7 (Jun 2026) No React 20 announced. Repo mixes 15/16/17/18/19.
React Compiler 1.0 stable (2025-10-07) Default assumption for new projects. Auto-memoization means useMemo/useCallback advice in the repo is outdated guidance, not just an old version number.
Next.js 15+ (Turbopack, async request APIs) Repo mentions 13 and 15.
TypeScript 5.x
Vue 3.5.41 stable; 3.6.0-rc.2 (2026-07-22) 3.6 = Vapor Mode feature-complete (opt-in, no VDOM, compiles SFCs to direct DOM ops) + @vue/reactivity rewritten on alien-signals. Still RC as of 2026-08 — do not write “3.6 shipped”. Vue 2 EOL since 2023-12-31.
Vue ecosystem Vue Router 5.2, Pinia 3/4, Pinia Colada 1.4, Nuxt 4.5 Nuxt 4.5 ships Vite 8 + Rspack 2; Nuxt 3 EOL during 2026. Radix Vue renamed Reka UI (2025).

AI / LLM

Item Current Notes for notes
Frontier models Claude Opus 5 (2026-07-24), Fable 5, Sonnet 5, Mythos 5; GPT-5.6 “Sol”; Gemini 3 / 3.1 Pro; Grok 4 Repo says GPT-4 (33×), GPT-4o (14×), Llama-2, claude-sonnet-4-5. All stale.
Model strategy Routing across models by task complexity 2026 production norm — cheap model for simple, frontier for hard. This is now a design-interview answer, not a footnote.
MCP spec 2026-07-28 Landmark revision: stateless protocol core, session management removed from transport, multi-round-trip requests, header-based routing, cacheable list results, authz hardening, extensions framework. Tasks moved to an extension. Repo’s MCP note predates all of this.
LangChain / LangGraph LangChain 1.3.15 (2026-08-11), LangGraph 1.3.11 (Jun 2026); both 1.0 GA Oct 2025 Verified 2026-08-12. Requires Python 3.10+. Splitters moved to langchain-text-splitters, integrations to their own packages (langchain-openai, langchain-neo4j). Any from langchain.llms/embeddings/text_splitter import is pre-1.0.
Pydantic AI 2.27.1 (2026-08-11); 1.0 GA Sep 2025 Verified 2026-08-12. API is Agent(model, instructions=, deps_type=, output_type=), tools via @agent.tool with RunContext, result on result.output. Pre-1.0 result_type= / result.data are gone. Requires Python 3.10+.
Agent frameworks Microsoft Agent Framework 1.0 (GA Apr 2026) — AutoGen + Semantic Kernel merged, both now maintenance-only; CrewAI 1.15.15 (2026-08-12, Python 3.10-3.13); OpenAI Agents SDK 0.20.0 (2026-08-11); Google ADK 2.6.3 (2026-08-07); AWS Strands Python 1.42.0 Verified 2026-08-12. Naming AutoGen or Semantic Kernel as separate live projects dates you by a year. Covered in 10_agents_orchestration/18_multi_agent_frameworks.md.
Eval / observability Langfuse 4.14.4 (2026-08-11, MIT, self-hostable, OTel-based); DeepEval 4.1.8 (2026-08-12); Ragas 0.4.3 (2026-01-13); LangSmith, Phoenix, Braintrust, promptfoo Verified 2026-08-12. Covered in 13_evaluation/05_eval_tooling.md. RAGAS’s four metrics split retrieval (context precision/recall) from generation (faithfulness/answer relevancy).
LLM tracing platforms Langfuse (MIT, self-hostable; acquired by ClickHouse 2026-01-16, MIT + self-hosting committed to); LangSmith (LangChain first-party, self-host is Enterprise-only, per-trace pricing); Logfire (Pydantic, OTel-first, SQL over spans) Verified 2026-08-18. All three ingest OpenTelemetry, so instrument with OTel and treat the backend as swappable. Covered in ai_ml/15_mlops_llmops/06_tracing_platforms.md.
Claude Agent SDK claude-agent-sdk / @anthropic-ai/claude-agent-sdk Claude Code packaged as a library — built-in Read/Write/Edit/Bash/Glob/Grep/WebSearch/WebFetch, subagents, skills, hooks. Harness only; you deploy it. Distinct from the API Tool Runner (your tools, no built-ins) and Managed Agents (Anthropic hosts the loop and sandbox).
Serving vLLM 0.27.1 (2026-08-11), TGI; speculative decoding, continuous batching Verified 2026-08-12. Covered in 08_inference_serving/02_batching_and_serving_engines.md — continuous batching, PagedAttention, prefix caching, chunked prefill.
Transformers 5.15.0 (2026-08-10) Verified 2026-08-12. HuggingFace’s model-definition framework.
Embedding models text-embedding-3-small / -large still current — no OpenAI successor as of 2026-08; 1536 / 3072 dims, Matryoshka truncation supported. Cohere Embed and Voyage have shipped newer generations Verified 2026-08-14. ada-002 is the deprecated one. Changing the model means re-embedding the whole corpus — see ai_ml/09_rag_embeddings/02_what_are_embeddings.md.
Classical ML scikit-learn 1.9.0 (2026-06-02, needs Python 3.11+), XGBoost 3.4.0 (2026-08-04), LightGBM/CatBoost Verified 2026-08-12. sklearn is the default answer for structured data; gradient boosting beats deep learning on tabular.
Deep learning PyTorch 2.13.0 (2026-07-08), TensorFlow, JAX Verified 2026-08-12. PyTorch ships wheels for Python 3.10-3.14 including free-threaded 3.14t, which is a good free-threading talking point.
Tuning Optuna 4.9.0 (2026-06-01, Python 3.9-3.14); AutoGluon, PyCaret, FLAML Verified 2026-08-12. Covered in 01_ml_foundations/07_hyperparameter_tuning.md. Optuna is the default answer; its TPE sampler and pruning are the two details worth naming.
MLOps MLflow 3.15.1 (2026-08-03) — safest first answer; now also prompt logging, eval and tracing for GenAI Verified 2026-08-12.

Compliance / security

Item Current Notes for notes
EU AI Act phased obligations in force 0 mentions. Relevant to any AI-facing role.
Passkeys / WebAuthn mainstream 2 mentions.
SBOM / SLSA standard supply-chain asks thin.
Prompt injection OWASP LLM Top 10 2 mentions — far too thin for an AI-focused candidate.

Data engineering

Verified 2026-08-10.

Item Current Notes for notes
Apache Airflow 3.3.0 (2026-07-06) Airflow 3 rearchitected execution with task isolation, new UI, DAG versioning. Do not describe Airflow as 2.x.
dbt dbt Core v2.0 open-sources the Rust Fusion engine (Apache 2.0) State-aware runs skip unchanged models. Big parse-time speedup.
dbt Labs / Fivetran Merger completed 2026-06-01 (all-stock) Fivetran also acquired Census (2025) and Tobiko Data / SQLMesh. Consolidation is the 2025-26 story.
Apache Iceberg v3 GA across major platforms, H1 2026 The interoperable lakehouse table format; Polars can now sink to Iceberg.
Polars 1.42 (2026-07-02) Optimizer improvements in 1.40-1.42 speed queries with no code change.
Data mesh widely partial adoption Data contracts and domain ownership transferred to mainstream; full mesh purity did not. Say that rather than advocating.

Domain: quant / fintech

Verified 2026-08-10.

Item Current Notes for notes
vectorbt actively developed; OSS core + commercial PRO The vectorized screening tool.
Backtrader effectively unmaintained Fine to maintain an existing codebase, wrong choice for a new one. Naming it unqualified dates you.
QuantConnect / LEAN actively developed C# engine, Python API, managed multi-asset point-in-time data, one path to live.
NautilusTrader actively developed Rust core, Python API; the high-fidelity event-driven option.
Zipline original is dead; zipline-reloaded is the maintained fork

Domain: healthcare / regulated

Verified 2026-08-10.

Item Current Notes for notes
FHIR R4 normative and what 95%+ of certified EHRs implement; R5 published with limited adoption; R6 in ballot (v6.0.0-ballot4, May 2026), expected 2026-2027 Build against R4 and say so. Claiming R5/R6 in production is a tell. US Core is being built on R6 next.
HL7 v2 still the hospital interface workhorse MLLP over TCP, ACK/NAK, Z-segments. Not going away.
OMOP CDM the analytics model (OHDSI) Distinct from FHIR: exchange format vs analytics model.
CDISC SDTM/ADaM FDA submission standard Active work on SDTM-to-OMOP conversion.
FDA validation CSA (Computer Software Assurance) is the current risk-based guidance Supersedes the binder-heavy CSV interpretation; accepts automated test evidence.
EU AI Act Art. 50 transparency + GPAI enforcement + penalties in force 2026-08-02; high-risk delayed to Dec 2027 / Aug 2028

AI-assisted development

Verified 2026-08-10.

Item Current Notes for notes
Agentic IDEs Kiro (AWS, spec-driven), Antigravity (Google, agent-first), Codex (OpenAI), Claude Code, Cursor, Windsurf, Copilot, Cline The axis that matters is how much structure the tool imposes, not the vendor.
AI-DLC AWS open-source methodology: Inception / Construction / Operations, in “bolts” (hours-days) replacing sprints Human validation at each step is the load-bearing principle.

How to use this file

  1. Before editing any note, check the technologies it names against this table.
  2. If a claim here is older than ~3 months, re-verify with a web search and update this file in the same commit.
  3. Date every claim that will rot: “As of 2026-08, …”.
  4. When this file changes, the notes that cite the changed row get flagged in PLAN.md.

Sources