Senior Software Engineer, C++ / HPC System

Menlo Park, CA, United States
Apr 30, 2021
Biotech Bay
Required Education
Bachelors Degree
Position Type
Full time
At Pacific Biosciences, our R&D team is committed to developing innovative products that enable scientists to excel in a wide variety of life science research fields, including human biomedical, plant and animal sciences, and microbiology and infectious disease. Our unique Single Molecule, Real-Time (SMRT) sequencing platforms generate true high-quality long reads, giving researchers a more comprehensive view of genomes, transcriptomes, and epigenomes from any organism.

The Primary Analysis team operates in a dynamic and interdisciplinary environment to develop the algorithms and High Performance Computing (HPC) solutions for decoding the raw data streams that are generated through high-speed optical detection of the SMRT sequencing reactions into biological sequence and metadata. Our roles include analysis and algorithm development in coordination with chemistry and systems R&D; the development of on-instrument, real-time basecalling software; and the development of validation and support infrastructure geared towards product system reliability and internal R&D support. We are seeking a talented C++ programmer, with a passion for innovation in performance-critical applications, to work on the development of our next-generation acquisition and analysis pipelines.

  • Collaborate with software and hardware engineering teams to solve challenging problems in data-oriented programming, architecture and design.
  • Develop and test acquisition and analysis pipeline solutions to meet demanding real-time constraints and scalability needs of our next-generation platforms.
  • Work cross-functionally with R&D scientists and algorithm engineers to implement correct and efficient parameter estimation and basecalling algorithms.
  • Build and test performance-optimized versions of signal-processing and sequence-analysis algorithm modules using modern C++ and CUDA.

  • Bachelors degree or equivalent in physical science, engineering, CS or related discipline.
  • 3+ years professional experience developing and shipping product software.
  • Strong systems programming experience in a Linux environment, with a deep understanding of how OS, toolchain and hardware constraints impact performance and scalability in data-centric, high-throughput processing pipelines.
  • Strong design and programming skills using modern C++.
  • Experience designing and working with high-level abstractions that map efficiently to hardware architectures.
  • Professional development experience using modern software engineering practices and tools (e.g., git, CMake, gtest, Jira).
  • Excellent verbal and written technical communication abilities; a desire and the interpersonal skills to engage in a collaborative and efficient software design process.

Preferred Qualifications
  • Experience developing code for HPC applications.
  • Experience with signal processing problems and/or software engineering for real-time systems.
  • Experience in code design, programming and performance optimization for GPGPU.
  • Strong general knowledge of Nvidia, Intel and AMD hardware architectures.

All listed tasks and responsibilities are deemed as essential functions to this position; however, business conditions may require reasonable accommodations for additional tasks and responsibilities.

All qualified applicants will receive consideration for employment without regard to race, sex, color, religion, national origin, protected veteran status, or on the basis of disability, gender identity, and sexual orientation.