Sr. Software Engineer, C++ / Systems Programming

Menlo Park, CA, United States
May 26, 2021
Biotech Bay
Required Education
Bachelors Degree
Position Type
Full time
Pacific Biosciences (NASDAQ: PACB) is seeking a Senior Software Engineer with experience in modern C++ and linux systems programming to join our Primary Analysis team in the sequencing platform development group.

In this role, you'll work closely with hardware, systems, and other software engineers to develop and test the software components that support high-speed sensor acquisition, data-path routing, image and signal processing steps, and integration/process control of the primary analysis subsystem, for our Single Molecule Real Time (SMRT) sequencing platforms.

You will join a team of talented engineers who are committed to developing the acquisition and real-time analysis services for these systems—enabling 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 instruments generate true high-quality long reads, giving researchers a more comprehensive view of genomes, transcriptomes, and epigenomes from any organism.

  • Develop and test performance-critical software components that control the acquisition process and marshal data from camera frame-capture hardware to the HPC analysis pipeline.
  • Develop and test software components to perform sensor and acquisition calibration steps.
  • Develop software to integrate the primary analysis services with instrument control.
  • Implement test harnesses to drive end-to-end simulation of real-time acquisition and analysis at scale.
  • Conduct performance analysis and troubleshooting of the real-time data acquisition path.
  • Develop and test core software and analysis modules for the full primary analysis software stack, using both modern C++ and CUDA.

  • Strong design and programming skills using modern C++.
  • Strong CS and software engineering fundamentals, including experience with multi-threading and SIMD parallelism, and performance effects of the OS, memory subsystem, filesystem, and network stack.
  • Linux-based systems programming experience with focus on performance and scalability of applications that support high-throughput data pathways.
  • Software engineering skills of a generalist, including fluency with languages appropriate for prototyping, scripting, and test automation.
  • Professional development experience using modern software engineering practices and tools (e.g., git, CMake, gtest, Jira)
  • Team player, with strong communication skills, and comfortable as a self-starter in a fast-paced development environment.
  • Bachelors in CS, Engineering, Physical Science or equivalent experience.
  • 3+ years professional experience developing and shipping product software for data-oriented systems.

Preferred Qualifications
  • Experience with concurrent applications and frameworks for IPC, e.g., ZeroMQ, RESTful APIs.
  • Knowledge of hardware/software interfaces for data capture, e.g. FPGA, camera interface.
  • Developing code for HPC applications, including CUDA for GPGPU.
  • Signal processing and software engineering for real-time systems.

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.