
Senior Systems Software Engineer – Accelerator-Integrated I/O
Samsung Cambridge Solution Centre
Posted 2 days ago
About this role
Senior Systems Software Engineer – Accelerator-Integrated I/O
Department: Memory Business
Employment Type: Permanent - Full Time
Location: Copenhagen, Denmark
Description
About the RoleWe are looking for a Senior Systems Software Engineer to build accelerator-integrated I/O and data movement systems on Linux.
In this role, you will work on real, performance-critical systems that integrate accelerators into storage and memory data paths, including GPU- and accelerator-initiated I/O, peer-to-peer DMA, and multipath I/O architectures. The focus is on system-level design and implementation, spanning kernel interfaces, user-space drivers, and device-accessible execution paths.
This is a hands-on engineering role. You will design, implement, measure, and upstream working code that runs on real hardware. The work emphasizes Linux systems software, open ecosystems, and upstream collaboration.
Company Description
Samsung Semiconductor Denmark Research (SSDR) is part of Samsung’s Memory Division, the global leader in NAND flash and DRAM technologies. SSDR is a founding member of Samsung’s Global Open EcoSystem Team (GOST), a global initiative focused on open-source development, standards, and ecosystem collaboration.
Our mission is to advance memory and storage innovation by shaping the system software and platforms that enable next-generation hardware. We work to ensure that emerging system requirements, from accelerators to fabrics, are reflected in future software stacks and silicon.
Our team specializes in systems software and open-source development, contributing to Linux subsystems, user-space I/O frameworks, and industry standards such as NVMe and SNIA. We collaborate closely with hyperscalers, research institutions, and industry partners to bring new architectures into practice.
What You Will Work On
Depending on background and interests, you will work across several of the following areas:Accelerator-Integrated I/O and Data Paths
- Accelerator-initiated and accelerator-assisted I/O
- Peer-to-peer DMA between accelerators, storage, and network devices
- Queue-based I/O models and command submission from non-CPU initiators
- Control-plane vs data-path separation in heterogeneous systems
- User-space NVMe drivers and frameworks such as SPDK
- Cooperative and multipath I/O using ublk, io_uring, and related mechanisms
- NVMe command construction, queue provisioning, and polling-based execution
- Abstractions for routing I/O across kernel, user space, and device-resident drivers (for example via frameworks such as xNVMe)
- DMA reachability, IOMMU, ATS, and address translation
- Accelerator-accessible memory and zero-copy data movement
- PCIe topology, peer routing, and resource partitioning (including SR-IOV)
- NVMe over PCIe and over fabrics
- High-performance Ethernet and RDMA (RoCE, InfiniBand)
- Interaction between storage, networking, and accelerator data paths
- End-to-end data movement across storage, memory, and network tiers
- Preserving Linux file-system semantics and OS-managed storage guarantees
- Integrating accelerators without custom on-disk formats or closed stacks
- Upstream contributions to open-source projects
- Technical collaboration with platform vendors and standards bodies
Key Responsibilities & Qualifications
Responsibilities- Design and implement system software that integrates accelerators into storage, memory, and network I/O paths
- Prototype and evaluate new mechanisms on real hardware
- Contribute code upstream to Linux and related open-source projects
- Analyze and optimize performance across CPU, accelerator, memory, storage, and network
- Collaborate with internal teams and external ecosystem partners
- Communicate designs and results clearly through code, documentation, and technical discussion
We do not expect candidates to match everything below. Strong candidates typically have depth in one or two of these areas and curiosity about the rest.
Required Experience
- Strong background in Linux systems programming, either in the kernel or in performance-critical user space
- Experience with low-level I/O, data movement, or resource management
- Ability to reason across hardware and software boundaries
- Storage and I/O stacks, including NVMe, block devices, or user-space drivers such as SPDK
- Networking and data-plane technologies, including Ethernet and RDMA
- DMA, PCIe, memory management, and queue-based device interfaces
- Performance analysis, benchmarking, and systems-level debugging
Helpful but Not Required
- Experience with accelerator runtimes or device-accessible execution models
- Familiarity with frameworks that expose NVMe at the command level (for example SPDK or xNVMe)
- Open-source development and upstream collaboration
- Exposure to industry standards or ecosystem work (NVMe, SNIA, PCIe, etc.)
What This Role Is Not
- This role is not focused on firmware-only, RTOS-only, or deeply embedded development
- This role is not primarily about application-level programming or high-level frameworks
How We Work
- Upstream-first development
- Open collaboration with maintainers, vendors, and ecosystem partners
- Real hardware, real measurements, and evidence-based decisions
- Clear separation of control-plane and data-path responsibilities
Culture
We are a group of builders who care deeply about systems. We value depth, curiosity, and technical ownership. You will have autonomy to explore ideas, but also responsibility to make them real and measurable. We work with trust, openness, and a shared sense of purpose.