Software Engineer — Rack Management (Senior / Staff) — Complete Apprenticeship Curriculum
Target Roles:
- Senior / Staff Software Engineer — Rack & Data Center Management Software (Qualcomm, NVIDIA, AMD, Microsoft Azure, Meta, Google, ODMs)
- Infrastructure Software Engineer — AI accelerator racks, bare-metal fleets, BMC/Redfish control planes
- Platform Engineer — provisioning, lifecycle, and observability for rack-scale AI systems
- Data Center Software Engineer — out-of-band management, firmware orchestration, telemetry pipelines
- SRE / Reliability Engineer — close-to-hardware infrastructure software in production
Duration: 26–34 weeks core — extendable to 12 months for full Staff-level readiness Goal: Build the rare profile this JD demands — the ability to write high-quality, secure, close-to-hardware infrastructure software that provisions, monitors, orchestrates, and maintains rack-scale AI accelerator systems; to speak the management protocols (Redfish/IPMI/SNMP) and hardware (BMC/PDU/CDU/PCIe) fluently; to integrate with Kubernetes/Terraform/Foreman and ship Prometheus/Grafana telemetry; and to debug and root-cause complex failures in deployed production data centers — then to lead that work and mentor others at the Staff level.
Why This Curriculum Exists
The "Rack Management Software Engineer" role at a hyperscale AI accelerator program is deceptively broad. The JD reads like five jobs:
- Systems software engineering — production Python, C++, and shell that runs close to hardware: daemons, agents, drivers-adjacent code, written to be secure, testable, and maintainable.
- Hardware/firmware interfacing — talking to BMCs, PDUs, CDUs, and PCIe switches over Redfish, IPMI, and SNMP; firmware updates; crash-dump parsing; remote diagnostics; RAS.
- Infrastructure automation — bare-metal provisioning (Foreman/PXE), configuration management (Ansible/Chef/Puppet), infrastructure-as-code (Terraform), and orchestration (Kubernetes/RKE2).
- Observability & operations — unified telemetry pipelines (Prometheus/Grafana), logging, metrics, tracing, runbooks, and SLOs across heterogeneous rack components.
- Production debugging & ownership — root-cause analysis of complex issues in deployed systems, secure multi-tenant operation (secure boot, VLAN separation, QoS), and — at Staff — driving implementation, reviewing designs, and mentoring.
Most engineers know one or two of these. This curriculum is built backward from the JD so that every "required" and "preferred" line maps to phases and hands-on labs. The whole thing runs on a single laptop — every BMC, PDU, CDU, PCIe switch, and firmware flow is reproduced with open emulators and simulators, so you learn the mechanism without a data center.
| JD Requirement | Where It's Trained |
|---|---|
| Implement/test/maintain rack provisioning, monitoring, workload deployment | Phases 05, 06, 13 |
| Interface with BMC, PDU, CDU, PCIe switches via Redfish, SNMP, IPMI | Phases 03, 04 |
| Integrate with Kubernetes, Terraform, Foreman | Phases 05, 06 |
| Collaborate with ODMs/ISVs; software EBOM & protocol docs (Pegatron) | Phase 12 |
| Dashboards & unified telemetry with Prometheus & Grafana | Phase 07 |
| Firmware updates, crash-dump parsing, remote diagnostics | Phase 08 |
| Secure boot, VLAN separation, QoS for multi-tenant | Phase 09 |
| High-quality, secure, maintainable code; coding standards | Phases 02, 11, 12 |
| Design discussions/reviews; feasibility/performance/reliability feedback | Phases 10, 12 |
| Debugging & root-cause analysis across dev/integration/production | Phase 10 |
| Observability: logging, metrics, tracing | Phase 07 |
| Runbooks, operational procedures | Phases 10, 12 |
| Code reviews, testing, CI/CD build/test/deploy pipelines | Phase 11 |
| Python, C++, shell (required); Node.js (plus) | Phase 02; labs span all four |
| Redfish APIs & DCIM tools | Phases 03, 04, 07 |
| Server hardware, networking, storage understanding | Phases 01, 04, 09 |
| K8s/RKE2; Prometheus/Grafana; Foreman/Ansible/Chef/Puppet; rack lifecycle | Phases 05, 06, 07, 08 |
| Staff: drive implementation, mentor, own delivery | Phase 12 + capstone |
Going beyond the JD (because interviews and the job do)
Real interviews and real on-call shifts go past the bullet list. This track deliberately adds:
- RAS depth — PCIe AER, MCE/MCA, ACPI/APEI, Xid-style error decoding (Phase 08) — because "crash-dump parsing" in practice means decoding hardware error logs.
- Systematic debugging & RCA as a first-class discipline with
gdb/strace/perf/eBPF and written postmortems (Phase 10) — the JD's most-repeated theme. - Reliability patterns — reconciliation loops, idempotency, circuit breakers, chaos/fault injection (Phase 10).
- Hardware-in-the-loop testing and emulator-based CI so infra code is actually testable (Phase 11).
- Staff-level leadership — design reviews, ADRs, EBOM, protocol specs, mentorship, and distributed-team communication (Phase 12).
- Fleet-scale system design — what changes when one rack becomes ten thousand (the entire
system-design/section).
What You Will Build
By the end you will have produced, with your own hands, a portfolio that is the job:
- A rack data model + inventory engine (Python) representing compute trays, accelerators, NICs, switches, PDUs, CDUs, and BMCs — with a power & thermal budget calculator that catches over-subscription before it trips a breaker (Phase 01)
- A C++ sensor-polling daemon (RAII, error handling, unit tests, systemd-ready) and a production-grade Python rack CLI (typed, packaged, retried, structured-logged) — the JD's language matrix, done right (Phase 02)
- A Redfish client that walks Chassis→Power→Thermal, performs resets, and subscribes to events against a real Redfish emulator — plus SNMP poller/trap receiver and IPMI sensor reader (Phase 03)
- A BMC interaction toolkit (power-cycle, sensor read, virtual media) and a PDU/CDU telemetry simulator + PCIe topology mapper that turns
lspciinto a fabric graph (Phase 04) - A bare-metal provisioning flow (PXE/iPXE → kickstart → Ansible) and a Foreman/Terraform onboarding state machine that takes a rack from "powered on" to "ready" (Phase 05)
- A Kubernetes operator (a
RackNodeCRD with a reconciliation loop) and an accelerator device-plugin + scheduling walkthrough on RKE2 (Phase 06) - A Redfish→Prometheus exporter, PromQL alert rules, and a Grafana dashboard for a rack — plus OpenTelemetry tracing across a provisioning workflow (Phase 07)
- A firmware-update orchestrator with staging, signature verification, A/B rollback — and a crash-dump / RAS log parser that classifies PCIe AER and MCE errors into an actionable diagnostics report (Phase 08)
- A VLAN + QoS tenant-isolation lab (network namespaces,
tc) and a secure-boot / measured-boot + attestation simulator (TPM PCRs, signed firmware) (Phase 09) - A debugging dojo: a planted bug in a rack daemon you find with
gdb/strace/eBPF and write up — plus a chaos/fault-injection harness that hardens a reconciliation loop (Phase 10) - A CI pipeline with emulated hardware (Redfish mock in CI, full test pyramid) and a fleet canary + rollback release system (Phase 11)
- A complete Staff deliverable pack — a protocol spec, a software EBOM, an ADR, a design-review checklist, a runbook, and a mentorship plan (Phase 12)
- A capstone: mini rack-management platform — discovery/inventory + Redfish/IPMI/SNMP drivers behind an abstraction + provisioning state machine + telemetry + firmware orchestration + secure multi-tenant config, with a design doc and a release cycle (Phase 13)
Folder Structure
Software Engineer Rack Management - Senior and Staff Engineer level/
├── README.md ← You are here
├── jd.md ← Target role profile
├── phase-01-rack-scale-systems-foundations/ ← What an AI rack IS: trays, accel, BMC, PDU, CDU, power/thermal
├── phase-02-production-systems-programming/ ← Python, C++, shell, Node.js — secure, testable, maintainable
├── phase-03-management-protocols-redfish-ipmi-snmp/ ← The out-of-band control plane: Redfish, IPMI, SNMP
├── phase-04-hardware-interfacing-bmc-pdu-cdu-pcie/ ← BMC, PDU, CDU (liquid cooling), PCIe switch fabric
├── phase-05-provisioning-config-management/ ← PXE/Foreman, Ansible/Chef/Puppet, Terraform — bare metal to ready
├── phase-06-orchestration-kubernetes-rke2/ ← K8s/RKE2, the operator pattern, device plugins, scheduling
├── phase-07-telemetry-observability/ ← Prometheus, Grafana, logging, metrics, tracing, unified pipelines
├── phase-08-firmware-diagnostics-ras/ ← Firmware update, crash dumps, RAS (PCIe AER/MCE/APEI), remote diag
├── phase-09-networking-secureboot-multitenancy/← Mgmt vs data plane, VLAN isolation, QoS, secure/measured boot, TPM
├── phase-10-reliability-debugging-rca/ ← Systematic debugging, gdb/strace/perf/eBPF, RCA, chaos, reconciliation
├── phase-11-cicd-testing-release-engineering/ ← Test pyramid + HIL, emulated-hardware CI, canary, rollback
├── phase-12-collaboration-ebom-leadership/ ← EBOM, protocol docs, ADRs, design reviews, Staff mentorship
├── phase-13-capstone-rack-management-platform/ ← Integrate everything into a mini rack manager + release cycle
├── interview-prep/ ← Concepts, coding, protocols, debugging, behavioral/Staff
└── system-design/ ← Control plane, telemetry, firmware-at-fleet, tenancy, provisioning
26-Week Core Schedule
| Week | Phase | Focus |
|---|---|---|
| 1 | 01 | Anatomy of an AI rack: trays, accelerators, NICs, ToR, BMC, PDU, CDU; build the rack inventory model |
| 2 | 01 | Power & thermal budgets, failure domains, OCP/MGX/NVL; build the power/thermal budget calculator |
| 3 | 02 | Production Python: typing, packaging, logging, retries, security; build the rack CLI |
| 4 | 02 | Production C++: RAII, error handling, concurrency, testing; build the sensor daemon (+ Node.js tooling) |
| 5 | 03 | Redfish data model: ServiceRoot, Systems, Chassis, Managers, tasks, events; build the Redfish client |
| 6 | 03 | IPMI (sensors/SEL/chassis) and SNMP (MIBs/OIDs/traps); build the poller + trap receiver |
| 7 | 04 | BMC/OpenBMC architecture; power control, sensors, virtual media; the BMC toolkit |
| 8 | 04 | PDU metering, CDU liquid-cooling telemetry, PCIe switch fabric/topology; the topology mapper |
| 9 | 05 | Bare-metal provisioning: PXE/iPXE/DHCP/TFTP, kickstart/cloud-init; the provisioning flow |
| 10 | 05 | Foreman, Ansible/Chef/Puppet, Terraform; the rack onboarding state machine |
| 11 | 06 | Kubernetes for AI workloads; RKE2; the operator/reconciliation pattern; build the RackNode operator |
| 12 | 06 | Device plugins, node-feature-discovery, scheduling, taints/tolerations, multi-tenancy |
| 13 | 07 | Metrics & Prometheus: exposition format, PromQL, exporters; build the Redfish→Prometheus exporter |
| 14 | 07 | Grafana dashboards, alerting rules; logging & OpenTelemetry tracing across a workflow |
| 15 | 08 | Firmware update mechanisms (Redfish UpdateService), staging, A/B, rollback, signing; the orchestrator |
| 16 | 08 | RAS: PCIe AER, MCE/MCA, ACPI/APEI, crash dumps, SoL; build the RAS/crash-dump parser |
| 17 | 09 | Mgmt vs data plane, VLANs, fabric; tenant isolation; build the VLAN/QoS lab |
| 18 | 09 | Secure boot chain, measured boot, TPM/PCRs, attestation; build the attestation simulator |
| 19 | 10 | Systematic debugging methodology; gdb/strace/ltrace/perf/ftrace/eBPF; the debugging dojo |
| 20 | 10 | Reliability patterns; chaos/fault injection; reconciliation hardening; write the RCA/postmortem |
| 21 | 11 | Test pyramid for hardware-adjacent code; emulator-based CI; build the CI-with-emulated-hardware pipeline |
| 22 | 11 | Release engineering: versioning, canary, progressive rollout, rollback; the fleet rollout system |
| 23 | 12 | EBOM, protocol documentation, ADRs, design-review practice (ODM/ISV collaboration) |
| 24 | 12 | Runbooks, operational procedures, Staff mentorship & distributed-team communication |
| 25 | 13 | Capstone build: integrate inventory + drivers + provisioning + telemetry + firmware + tenancy |
| 26 | 13 | Capstone release cycle: design doc, runbook, demo, retrospective; interview-prep & system-design review |
Phase Structure
Every phase follows a consistent format:
| File | Purpose |
|---|---|
README.md | Why the phase exists, concepts list, lab tables (goal/steps/output/testing/talking points/resume bullet/extensions), deliverables checklist, interview relevance |
WARMUP.md | Zero-to-expert primer: every concept from first principles, lab walkthrough guidance, success criteria, interview Q&A, references |
HITCHHIKERS-GUIDE.md | The practitioner's deep-dive: mental models, production numbers, the things people actually get asked and paged about |
lab-XX-*/ | Hands-on labs: README walkthrough + working reference code you run, break, and extend |
Labs deliberately span the JD's language matrix: Python (clients, exporters, simulators, operators, parsers), C++ (the sensor daemon, close-to-hardware code), shell (provisioning glue, CI), and Node.js (a telemetry/tooling service — the JD's "plus"). Where the JD names a tool (Redfish, IPMI, SNMP, Foreman, Ansible, Terraform, Kubernetes, RKE2, Prometheus, Grafana), you use a real, open implementation of it.
No data center? You can still do 100% of this track
Every lab runs on a single Linux/macOS laptop using open emulators:
- Redfish — DMTF's
Redfish-Mockup-Serverand the OpenBMCsushy-emulatorgive you a real Redfish service. - IPMI/BMC — a software BMC simulator (or
ipmi_simfrom OpenIPMI) plus a provided mock. - SNMP —
snmpsimserves real MIBs; a local trap receiver completes the loop. - Kubernetes/RKE2 —
kind/k3dlocally; RKE2 differences are explained in the WARMUP. - Provisioning — PXE/iPXE flows run against local VMs/QEMU; the rest is simulated with the same data model.
- PDU/CDU/PCIe — provided simulators emit realistic telemetry;
lspcitopology mapping uses your own machine.
The WARMUPs always explain what changes at real rack and fleet scale so you're not surprised on the job.
Prerequisites
- Solid Python; working C or C++ (you can read pointers, structs, headers, and a Makefile)
- Comfort in a Linux shell (you'll write scripts and use
systemctl,journalctl,ip,lspci,gdb,strace) - Basic networking literacy (IP, VLAN, DNS/DHCP) and willingness to go deeper — Phase 09 starts from fundamentals
- Git, Docker basics; a Linux VM or WSL2 if you're on Windows
- No prior BMC/Redfish/firmware experience required — Phases 01 and 03 start at the hardware and the protocol
Related Tracks in This Repo
- Head of Software Engineering — GPU — the silicon/CUDA/driver side of the same racks; its Phases 04/06 pair with our 04/06
- Security Engineer — deeper offensive/defensive security; pairs with our Phase 09 (secure boot, tenancy)
- AI Specialist — inference/accelerator workloads that run on the racks you manage
- LLM Inference Engineer — what the accelerators actually run, for context on workload behavior