About the role
Oracle Cloud Infrastructure (OCI) is seeking a Principal Software Engineer to build a new Data Processing Unit (DPU) platform spanning networking and storage. You will solve problems involving packet processing, host-to-DPU data movement, concurrency, and predictable performance under congestion and resource pressure.
You will be the technical owner of a substantial component: its architecture, interfaces, implementation, performance, and operational readiness. Starting from broad requirements, you will resolve design choices and drive delivery with partner engineers. You will propose changes that cross component boundaries and align them with subsystem owners. Deep networking expertise is essential; storage familiarity is required and substantial storage experience is especially valuable.
What you will do
-
Own component architecture and delivery. Translate broad requirements into a component design and executable milestones. Make architectural and implementation decisions within agreed subsystem boundaries and carry the work through production.
-
Design high-performance data paths. Build packet processing, network virtualization, forwarding, policy, or acceleration capabilities. Make deliberate choices about concurrency, buffering, memory ownership, and hardware interfaces.
-
Define and coordinate interfaces. Establish component contracts with networking, storage, firmware, and hardware partners. Resolve dependencies and drive integration; escalate tradeoffs that require subsystem-wide decisions.
-
Own component performance. Define representative benchmarks and performance targets. Investigate throughput, tail latency, CPU utilization, and memory efficiency, validating improvements under load and resource pressure.
-
Evaluate storage interactions. Assess how component choices affect storage I/O performance, backpressure, and failure handling. Work with storage engineers to preserve correctness and reliable recovery.
-
Deliver production readiness. Own component instrumentation, fault handling, compatibility, and upgrade behavior. Drive qualification and operational improvements, including difficult cross-layer debugging and production support.
-
Guide engineers and engineering quality. Mentor engineers, lead component design reviews, and establish useful tests and performance regression checks. Help feature owners make independent decisions within the architecture.
-
Improve responsible AI practices. Validate AI-assisted work and help the team adopt effective coding, testing, debugging, and documentation practices. Reduce repetitive work while preserving quality, accountability, and a sustainable engineering experience.
Internal Responsibilities
Required qualifications
8+ years of professional software engineering experience in systems or infrastructure software, including substantial hands-on experience building high-performance networking data planes.
Demonstrated ownership of substantial component architecture and delivery from broad requirements through production.
Deep experience implementing or optimizing packet processing systems, with strong knowledge of network virtualization, forwarding, encapsulation, and traffic management.
Strong C or C++ proficiency and Linux systems knowledge, including concurrency, memory management, multicore processing, and performance profiling.
Familiarity with storage architectures and data paths, and ability to evaluate how component choices affect storage performance and failure handling.
Ability to diagnose complex correctness or performance issues across software layers using measurements and repeatable experiments.
Experience defining interfaces, coordinating technical dependencies, and owning component performance and operational readiness.
Clear design communication and experience mentoring engineers through reviews, implementation, and debugging.
A bachelor’s degree in Computer Science, Computer Engineering, or a related discipline, or equivalent practical experience.
Preferred qualifications
Experience in one or more of the following areas is valuable. Experience with every listed technology is not required.
Packet processing. DPDK or comparable user-space frameworks; virtual switching, connection tracking, policy enforcement, or offload implementation.
DPU acceleration. DPUs, SmartNICs, AMD Pensando, NVIDIA BlueField/DOCA, P4, or comparable technologies.
Storage. Substantial storage development experience; block storage, NVMe, NVMe over Fabrics, RDMA, or storage virtualization.
Hardware and production. PCIe, DMA, SR-IOV, IOMMU, zero-copy techniques, hardware co-design, staged deployments, fault injection, or upgrade compatibility.
What success looks like
You will deliver a critical component with a clear architecture, stable interfaces, and demonstrated performance and reliability. You will independently resolve component-level decisions, coordinate integration, and help engineers deliver within that architecture.
Why join us
Shape a new platform through architectural ownership of a critical component. You will make consequential software and hardware tradeoffs, partner with experienced networking and storage engineers, and carry your designs from exploration into production.
External Responsibilities
Required qualifications
8+ years of professional software engineering experience in systems or infrastructure software, including substantial hands-on experience building high-performance networking data planes.
Demonstrated ownership of substantial component architecture and delivery from broad requirements through production.
Deep experience implementing or optimizing packet processing systems, with strong knowledge of network virtualization, forwarding, encapsulation, and traffic management.
Strong C or C++ proficiency and Linux systems knowledge, including concurrency, memory management, multicore processing, and performance profiling.
Familiarity with storage architectures and data paths, and ability to evaluate how component choices affect storage performance and failure handling.
Ability to diagnose complex correctness or performance issues across software layers using measurements and repeatable experiments.
Experience defining interfaces, coordinating technical dependencies, and owning component performance and operational readiness.
Clear design communication and experience mentoring engineers through reviews, implementation, and debugging.
A bachelor’s degree in Computer Science, Computer Engineering, or a related discipline, or equivalent practical experience.
Preferred qualifications
Experience in one or more of the following areas is valuable. Experience with every listed technology is not required.
Packet processing. DPDK or comparable user-space frameworks; virtual switching, connection tracking, policy enforcement, or offload implementation.
DPU acceleration. DPUs, SmartNICs, AMD Pensando, NVIDIA BlueField/DOCA, P4, or comparable technologies.
Storage. Substantial storage development experience; block storage, NVMe, NVMe over Fabrics, RDMA, or storage virtualization.
Hardware and production. PCIe, DMA, SR-IOV, IOMMU, zero-copy techniques, hardware co-design, staged deployments, fault injection, or upgrade compatibility.
What success looks like
You will deliver a critical component with a clear architecture, stable interfaces, and demonstrated performance and reliability. You will independently resolve component-level decisions, coordinate integration, and help engineers deliver within that architecture.
Why join us
Shape a new platform through architectural ownership of a critical component. You will make consequential software and hardware tradeoffs, partner with experienced networking and storage engineers, and carry your designs from exploration into production.