Arc 4 of /root. The platform gets its data brain. ~8 phases that stand crag (data tier + ML serving). Exit ramp: Senior Data / ML Engineer

Years 1-3 built the engineer and the substrate. Arc 4 stands the data tier and the ML foundations on that substrate, K8s-native throughout. Iceberg tables on MinIO via Helm-deployed operators. Kafka via Strimzi (operator + CRDs). Spark via Spark Operator. Python ML stack from numpy through PyTorch. Classical ML through deep learning. Distributed training via KubeRay (Ray’s K8s-native operator). Model serving via KServe (InferenceService CRDs).

By end of Arc 4 basecamp has a working lakehouse, working stream + batch pipelines, working ML training and serving infrastructure, and it’s all operator-managed, fitting the same CRD-driven controller pattern Arc 3 established for the substrate + forge + ascent.


What you’ll know at the end of Arc 4

You’ll be operating an ML platform end-to-end at homelab scale, K8s-native end to end. The bar for Senior Data / ML Engineer is hit; the bar for Arc 5’s ML Platform / AI Infrastructure is in sight.


Phase map

PhaseTitleWeeksHoursK8s-native componentsCapstone output
31Data Lakehouse (Iceberg)7-980-100MinIO operator + Iceberg + Nessie catalog + Trino + Flux HelmReleasescrag v0 entry: lakehouse alive
32Stream Processing (Strimzi + Flink)7-980-100Strimzi (Kafka, KafkaConnect, KafkaTopic CRDs) + Flink Operator (FlinkDeployment CRD) + Debeziumcrag streaming alive
33Batch + Orchestration (Spark Operator)6-870-90Spark Operator (SparkApplication CRD) + Argo Workflows (Workflow CRD) + Dagstercrag complete: batch + orchestration
34Python ML Stack5-760-80(local dev; ML platform integration in Phase 38)ML practice notebooks
35Classical ML Engineering6-870-90(local + Ray for training distribution in Phase 37)First model trained-registered
36Deep Learning Fundamentals (PyTorch)7-980-100(local GPU + Ray in Phase 37)First DL model end-to-end
37Distributed Training (KubeRay)7-980-100KubeRay (RayJob, RayCluster, RayService CRDs)Ray cluster alive on the substrate
38Model Serving Infrastructure (KServe)6-870-90KServe (InferenceService CRD) + Keda for scale-to-zero + Flagger for canaryKServe serving alive on the substrate
Arc 4 Final Exam2-320-30
Total~53-70 weeks~610-790 hrsAll data + ML infra as CRD-driven operatorscrag alive

Pace is yours.


The K8s-native ecosystem for data + ML

Arc 4 continues the K8s-native ecosystem pattern from Arc 3. Every component is a CRD-driven operator:

ConcernK8s-native operatorCRD(s)
KafkaStrimziKafka, KafkaConnect, KafkaTopic, KafkaUser, KafkaConnector
FlinkFlink Kubernetes OperatorFlinkDeployment, FlinkSessionJob
SparkSpark OperatorSparkApplication, ScheduledSparkApplication
WorkflowsArgo WorkflowsWorkflow, CronWorkflow, WorkflowTemplate
Iceberg catalogNessie (via Helm)(REST catalog, ConfigMap-driven)
Object storageMinIO Operator (or Rook for Ceph alternative)Tenant (MinIO), Bucket
RayKubeRayRayCluster, RayJob, RayService
Model servingKServeInferenceService, TrainedModel
Canary deploysFlaggerCanary
Pipelines(Arc 5: Kubeflow Pipelines or use Argo Workflows already in Arc 4)

Same composition pattern as Arc 3: kubectl apply triggers a controller to reconcile, and the underlying resources materialize. Same operational interface (kubectl get, RBAC, observability) across the whole stack.


What ships publicly during Arc 4

ProjectPhaseRoleLaunch energy
crag (umbrella)31-33Iceberg helpers + Spark utilities + Flink job templates + Argo workflow templatesQuiet ship: components live in basecamp; standalone helper repos for the most reusable bits
ML infra helpers37-38Helm charts + Python utilities for KubeRay + KServe operationsQuiet ship
First trained model35-37Public on Hugging Face Hub or GitHub (a small classification or recommendation model)Quiet ship: README + model card

No loud launches in Arc 4; forge (Arc 3) and prism + vantage (Arc 5) are the loud-launch years. Arc 4 is the year you build the infrastructure that ML runs on, not the year you ship a flashy artifact.


Patterns deepened in Arc 4

Data engineering (new category)

ML systems (new category)

Reinforced from prior years

~12-15 new patterns plus heavy reinforcement.


Hardware requirements

Arc 4 needs more RAM than Arc 3 endpoint. Before Phase 31 (~Arc 4 start), upgrade to 64GB DDR5. Add a second 1TB NVMe for Spark intermediate storage. Total Arc 4 hardware upgrade: ~$150-200.

Phase 36+ benefits from GPU for deep learning: same hardware as Arc 5’s main GPU need (RTX 4060/4070 or used 3090). You can defer GPU purchase to Arc 5 if Arc 4 PyTorch work is small enough to fit on CPU + Apple Silicon MPS.

Full breakdown: homelab/hardware.


Arc 4 Final Exam

Scenario-based final exam. Three parts:

  1. Build (180 min): ship a small ML pipeline end-to-end via operator-managed components: ingest from Kafka, land in Iceberg via Flink/Spark, train a model on KubeRay, serve via KServe, measure latency
  2. Debug (180 min): three parallel scenarios from Phases 31, 32, 37 catalogs
  3. Articulate (90 min): ~1500 words: walk an event from Kafka through the data tier to the model and back; cite K8s-native patterns at each step

See the full Arc 4 Final Exam spec.


Arc 4 graduation

You can:
- Operate a lakehouse (Iceberg) on K8s with proper schema evolution + time travel
- Operate Kafka via Strimzi at small scale with CRD-driven topic management
- Run batch jobs via Spark Operator and orchestrate them via Argo Workflows
- Apply classical ML (regression, ensembles, XGBoost, recommendations) deliberately
- Train deep learning models in PyTorch (MLP, CNN, basic attention)
- Distribute training via KubeRay (RayJob + Ray Train + DDP/FSDP)
- Serve models via KServe with canary + scale-to-zero

Exit ramp: Senior Data / ML Engineer
Confidence: real, with `crag` (data tier + ML serving) K8s-native and operator-managed

→ Continue to Arc 5: AI Infrastructure.