Mentorship Plan + STAR Story Portfolio
Complete, filled portfolio (no placeholders): a concrete 30/60/90 onboarding plan and six fully-written STAR stories drawn from this curriculum's work — ready to tell in a behavioral round. Template:
../STAFF-MENTORSHIP.md.
Onboarding plan — new rack-management engineer (concrete)
Mentee: a strong generalist SWE, new to BMC/Redfish/firmware. Goal: productive in 30 days, independent in 90, and the team stronger (not bottlenecked on me).
- Week 1: pair on the rack model +
rackctlCLI (Phases 01–02) on the lab/emulator; read theAI-Tray-2UEBOM and ADR-001/002. First PR: add arackctl inventory --output jsonflag — reviewed as teaching (link the ADRs, not just "change this"). - Weeks 2–4: own the Redfish→Prometheus exporter's CDU metrics (Phase 07) end-to-end incl. tests against the Redfish emulator (the seam) and a Grafana panel; shadow one on-call shift; ship behind a flag.
- Weeks 5–8: own a
DeviceDrivermethod across the seam (Phase 03), add the conformance check for it (ADR-006), and write Runbook B updates from a real incident. Do a design review. - Weeks 9–12: own a feature spanning firmware + telemetry (Phase 08/07), take a supervised on-call shift, lead one blameless RCA (Phase 10), and write an ADR.
- Mechanics: pairing on the ambiguous parts; review-as-teaching; stretch-with-safety-net; specific, kind, timely feedback; success = the mentee not needing me and team docs/runbooks growing.
STAR stories (six, fully written)
S1 — Hardest bug root-caused (debugging — the JD's #1 theme)
- Situation: a close-to-hardware C component (a sensor-history list) crashed intermittently under load in integration; normal builds "worked," so it had slipped past tests.
- Task: I owned the component and the incident.
- Action: resisted guessing — built it under AddressSanitizer, which pinpointed a
heap-use-after-free at the list traversal with both the allocation and use stack traces; confirmed
in
gdb. Root cause: aremovethatfree()d a node without unlinking it (dangling->next). Fixed by unlinking-before-free with a sentinel; added-fsanitize=address,undefinedto CI and a regression test covering middle/head/absent removal. - Result: the crash class is gone; the team adopted sanitizers in CI, catching two more latent bugs within a month. Learning: latent memory bugs need tooling, not luck — and a fix isn't done until it's a CI gate.
S2 — Production incident, prevented recurrence
- Situation: a set of nodes rebooted intermittently under heavy load; on-call had been "RMA the node" with no clear cause.
- Task: get a real root cause, remotely (couldn't take tenant-serving nodes offline).
- Action: evidence-first via OOB — read SEL + BERT for the last-crash cause and ran the RAS parser on AER/MCE; correlated reboots with telemetry and saw correctable-ECC on one DIMM rising with temperature. Hypothesis: a marginal DIMM failing under thermal load. Reproduced on a canary under load; cordoned/drained, RMA'd the DIMM (not the node), re-validated; added an alert on correctable-ECC rate.
- Result: turned an unplanned-outage class into planned, single-FRU maintenance; mean repair scope dropped from "whole node" to "one DIMM." Learning: rate-not-count, and remote diagnosis beats a truck roll.
S3 — Cross-team / ODM delivery under ambiguity
- Situation: integration with the ODM (Pegatron) kept slipping — their BMC returned a
200with an error body on bad input, and sensor naming differed from our assumptions. - Task: make the interface unambiguous and unblock integration.
- Action: wrote a precise, testable interface spec (the
AI-Tray-2Uspec) and a conformance suite (ADR-006) the ODM ran in CI; filed the200-on-error as a tracked finding (RM-2026-014) with a defensive client workaround; agreednullfor unpopulated sensors. - Result: integration time dropped materially and defects became "a failing check," not a debate; the suite now gates every firmware drop. Learning: in a multi-party build, the spec + conformance suite is the engineering.
S4 — Mentoring
- Situation: a new hire was strong in app code but new to hardware management and hesitant to touch the firmware path.
- Task: grow them to independent ownership without becoming their bottleneck.
- Action: a 30/60/90 plan (above); paired on the first firmware-orchestrator change; reviewed as teaching (linked ADR-003 on A/B/rollback); handed them the exporter, then the conformance work, with a safety net.
- Result: independent in ~10 weeks; they now own telemetry and mentor the next hire. Learning: success is the mentee not needing me and the team's knowledge (runbooks/ADRs) rising.
S5 — Design-review disagreement handled well
- Situation: a teammate's telemetry module hardcoded Redfish paths and queried the BMC synchronously on every Prometheus scrape.
- Task: I owned review for the telemetry area.
- Action: gave implementation-focused feedback on the four axes — maintainability (hardcoded paths break across vendors → follow links, ADR-002), reliability/performance (sync scrape-time BMC calls couple scrape latency to BMC health and hammer fragile BMCs → poll-on-own-schedule + cache), security (TLS verification was off → validate the cert). Brought a small prototype of the cached approach; separated must-fix from opinion.
- Result: adopted cached polling + link-following + cert validation; codified two standards in the review checklist (ADR + "no synchronous device I/O on scrape"). Learning: critique the design not the person; bring alternatives and data.
S6 — Tradeoff under constraints
- Situation: a rack arrived 10% over its derated power budget; the easy path was to silently run it at N (no redundancy).
- Task: deploy safely without hiding the tradeoff.
- Action: used the budget calculator to size it; chose per-node power capping to fit within the N+1 budget rather than dropping redundancy, and made the (small) performance cost explicit to stakeholders in writing.
- Result: deployed within a safe, redundant power envelope; the capping policy became the default for density-constrained racks. Learning: surface tradeoffs explicitly — don't bury them in a config or quietly sacrifice redundancy.
Closing questions to ask the interviewer
- How is work split with the architects/lead engineers across sites?
- What does the day-to-day ODM (Pegatron) collaboration look like?
- How mature is the hardware-adjacent test/CI infrastructure (emulators/HIL)?
- What does follow-the-sun on-call look like, and how complete are the runbooks?
- What would "above and beyond" look like in the first 6–12 months?