Join the Team

Senior Software Engineer – Distributed Systems/Memory Management/Operating Systems

 

We are searching for expert software developers that are specialized in distributed systems, memory management or operating systems to join our fast-growing engineering team that is building disruptive data infrastructure based on persistent memory technology. This role focuses on architecting and developing the core of our Big Memory platform, which provides both persistence and memory-speed access to the in-memory data.

An ideal candidate embraces the fast-paced development of startups, can design and implement novel and high-quality solutions to address new performance and reliability challenges of managing large amounts of persistent memory.

Location: Milpitas, CA

Responsibilities:

    • Design and develop core data path components for a memory-centric platform.
    • Develop and perform related unit, functional, and integration tests.
    • Debug and resolve performance and reliability issues.
    • Effectively communicate design and results to development teams.
    • Collaborate with the customer-facing team to support customer requirements.
    • Collaborate with the solution engineering team to create novel solutions and architectures.

Requirements:

    • Bachelor’s degree in computer science, computer engineering, electrical engineering, or other related areas.
    • Significant professional experience with C and C++ programming.
    • Minimal 5 years of software development experience in one or more of the following areas: memory management systems, storage systems, distributed systems, low latency networking, Linux kernel, and other operating system kernels.
    • Proficient using Linux as a primary development environment.
    • Proficient using version-control systems such as git.
    • Proficient using debugging tools and performance tuning tools such as gdb and perf.
    • Strong analytical abilities, willingness to learn, commitment to quality, and integrity.