Progress Β· 0/8 phases
- All 120 Days Reference β Storage Engineering Roa
- Phase 8 β System Design & Interview Prep (Days 1
- Phase 7 β Performance Engineering (Days 91β105)
- Phase 6 β C++ Systems Programming (Days 76β90)
- Phase 4 β Distributed Storage Systems (Days 46β6
- Phase 3 β Storage Fundamentals (Days 31β45)
- Phase 2 β Linux Internals & OS (Days 16β30)
- Phase 1 β Go for Infrastructure (Days 1β15)
ποΈ ποΈ Storage Engineering Interview Roadmap β 120 Days
5 min read Β· Notion
From software engineer to storage/distributed-systems engineer. This roadmap is built specifically for roles at companies like Pure Storage, Cohesity, Rubrik, NetApp, Qumulo, VAST Data, WEKA, MinIO, Portworx, and cloud storage teams at AWS/GCP/Azure. DSA alone is not enough β these companies hire for domain depth.
π What makes storage company interviews different
Based on the interview guide:
"For candidates with 2-3+ years of experience, they commonly expect domain-specific exposure in areas like storage systems, Linux internals, distributed systems, storage protocols, Kubernetes storage, performance debugging, C++, or Go infrastructure work."
The expected signal is:
- Linux internals β VFS, page cache, inode, block layer, fsync, iptables
- Storage protocols β NFS, iSCSI, NVMe/TCP, NVMe/RoCE, RDMA, SMB
- Distributed storage design β replication, erasure coding, consistency, Raft, GFS, Dynamo, Ceph
- Kubernetes storage β PV/PVC/StorageClass, CSI drivers, dynamic provisioning, snapshots
- Go systems programming β goroutines, channels, pipelines, pprof, high-throughput patterns
- C++ systems programming β RAII, smart pointers, move semantics, atomics, sanitizers
- Performance debugging β fio, iostat, perf, pprof, USE method, p99 latency, IOPS/throughput analysis
πΊοΈ 120-Day Roadmap at a glance
| Phase | Days | Focus | Project |
|---|---|---|---|
| Phase 1 β Go for Infrastructure | 1β15 | Go concurrency, I/O, pipelines, profiling | High-throughput file processor in Go |
| Phase 2 β Linux Internals & OS | 16β30 | Virtual memory, VFS, inodes, block layer, iptables | Linux I/O tracer + iptables lab |
| Phase 3 β Storage Fundamentals | 31β45 | Block/file/object storage, IOPS/latency/throughput, storage protocols | fio benchmark suite + protocol lab |
| Phase 4 β Distributed Storage Systems | 46β60 | Raft, GFS, Dynamo, Ceph, erasure coding, replication, consistency | Mini distributed object store in Go |
| Phase 5 β Kubernetes Storage | 61β75 | PV/PVC/StorageClass, CSI drivers, NFS/iSCSI/SMB with K8s, Helm | Deploy a CSI driver + Helm chart |
| Phase 6 β C++ Systems Programming | 76β90 | RAII, smart pointers, threads, atomics, memory layout, sanitizers | C++ storage buffer manager |
| Phase 7 β Performance Engineering | 91β105 | fio, pprof, perf, iostat, strace, USE method, debugging stories | Performance audit of a real workload |
| Phase 8 β System Design & Interview Prep | 106β120 | Design distributed object store, backup system, CSI driver; mock interviews | Full design docs + 2 debugging stories |
π’ Target companies by tier
| Tier | Companies |
|---|---|
| Cloud NAS / Global File Systems | Nasuni, NetApp, Qumulo, VAST Data, WEKA, DDN, CTERA, Panzura |
| Data Protection / Backup | Cohesity, Rubrik, Commvault, Veeam, Druva, HYCU, Acronis |
| Enterprise Primary Storage | Pure Storage, Dell, HPE, IBM Storage, Hitachi Vantara, Infinidat |
| Object Storage | MinIO, Cloudian, Scality, Red Hat Ceph, Wasabi, Cloudflare R2 |
| Kubernetes / Cloud-Native Storage | Portworx, OpenEBS, Longhorn, Rook/Ceph, DataCore, Ondat |
| Cloud Provider Storage Teams | AWS S3/EBS/EFS/FSx, GCS, Azure Storage, Oracle OCI |
| Storage Networking | NVIDIA/Mellanox, Lightbits Labs, Excelero |
π My progress
- Current phase: Phase 1
- Current day: Day 1 of 120
- Projects shipped: 0 / 8
- Papers read: 0
- Mock interviews done: 0
π Phase pages
- πΉ Phase 1 β Go for Infrastructure (Days 1β15)
- π§ Phase 2 β Linux Internals & OS (Days 16β30)
- πΎ Phase 3 β Storage Fundamentals (Days 31β45)
- π Phase 4 β Distributed Storage Systems (Days 46β60)
- βοΈ Phase 5 β Kubernetes Storage (Days 61β75)
- βοΈ Phase 6 β C++ Systems Programming (Days 76β90)
- β‘ Phase 7 β Performance Engineering (Days 91β105)
- π― Phase 8 β System Design & Interview Prep (Days 106β120)
π Core reading list (from your guide)
| Domain | Resource |
|---|---|
| OS Foundations | OSTEP β chapters on Virtual Memory, File Systems, I/O |
| Go Concurrency | Go Pipelines, Effective Go, Go Memory Model |
| Go Performance | Go pprof, Go GC Guide, Go Diagnostics |
| Go Real World | Processing 1M transactions β Part 1 β’ Part 2 |
| Storage Performance | IOPS, Throughput, Latency Explained, Art of Storage Performance Optimization |
| Storage Protocols | NVMe/TCP vs NVMe/RoCE, What is RDMA? |
| Erasure Coding | What is Erasure Coding? |
| Distributed Storage | GFS Paper, Dynamo Paper, Raft Paper, Ceph Architecture |
| Kubernetes Storage | PersistentVolumes, CSI Spec, StorageClasses |
| K8s NAS | NFS/SMB/iSCSI with K8s |
| Linux | Linux VFS docs, Linux Block docs, man7 |
| Performance | Brendan Gregg Linux Perf, USE Method, fio docs |
| C++ | C++ Core Guidelines, AddressSanitizer, ThreadSanitizer |
β Final prep checklist (from the guide)
- Explain block vs file vs object storage with examples
- Explain IOPS, throughput, latency, p99, queue depth
- Explain Linux page cache, inode, VFS, and fsync()
- Compare NFS, iSCSI, NVMe/TCP, NVMe/RoCE, S3
- Design a distributed object store
- Explain replication vs erasure coding
- Debug a PVC stuck in Pending
- Explain CSI controller vs node plugin
- Build one Go concurrency project and profile it
- Build one C++ systems project with RAII, buffers, and sanitizer runs
- Explain C++ ownership, move semantics, atomics, and memory-layout tradeoffs
- Run fio and explain the results
- Prepare two real debugging stories from past work/projects
- Prepare one storage architecture deep dive for interviews
π Daily Tracker