Principal Software Engineer 2
IlluminaAbout the role
Our engineering team specializes in developing a fast and accurate FPGA-accelerated platform called DRAGEN, for the secondary analysis of Next Generation Sequencing (NGS) data.
The platform supports a wide range of pipelines, including whole genome and targeted (enriched/amplicon) analysis for germline and somatic (tumor/normal and tumor-only) samples, DNA/RNA, small variants, CNV and structural variants. These software/hardware solutions provide complete results in world record time with high reliability. That's why researchers and clinicians worldwide rely on DRAGEN for a wide variety of applications, including rare and undiagnosed inherited diseases, population-scale genetics, infectious disease, and cancer in settings ranging from early access R&D to research applications to IVD certified clinical settings.
Our team does the core engineering to support all of these features and algorithms, thus enabling the broader team that designs novel analysis methods and algorithms for variant discovery and FPGA implementation. Our fast and accurate implementations enable new life-saving applications of genetics, and can actually save lives.
We are searching for software engineers who are ready to join us in this important mission. Are you ready to work on a big, important production codebase and lay down some fast C++? If so, we'd love to see your application.
This role can be performed at the San Diego, CA headquarters (ideal), or for the right candidate may be remote in the United States.
Responsibilities:
Design, develop and integrate optimized C/C++ software on Linux.
Work on FPGA PCIe boards in a Linux environment.
Bring up and debug devices and accelerators running on FPGA.
Closely interact with FPGA design team, genomic SW team, test and QA teams.
Work with software teams to ensure alignment of architecture to user requirements
Occasionally provide technical assistance to escalated production issues
Maintain awareness of industry trends and evaluate applicability of new software technologies to platform development efforts
Requirements:
Degree in Computer Science/Engineering/Bioinformatics/Mathematics or related field
Expert in computer architecture and developing low-level software to interface with custom hardware including pre- and post-silicon targets.
Proficiency with debugging low-level software, embedded or Linux driver
Extensive knowledge and experience with C++, multi-threading, and memory management techniques.
Proficient with tools for Linux software debugging (GDB, Sanitizers, etc) and performance analysis (perf, etc).
Experience with SDLC process (in git preferably).
Proficient with source control management repositories (such as git, SVN, etc.) and CM practices
Extensive experience writing high quality unit tests against mock objects
Good understanding of object-oriented analysis and design
Demonstrated success in collaborating in a fast-paced team environment and delivering high-quality software products using established agile development methodologies (such as Scrum, Kanban, etc.) against formal schedules
Experience / Education:
Typically requires a minimum of 15 years of related experience with a Bachelor’s or Master’s degree; or 10 years and a PhD.
Desired:
Expertise in developing software for Embedded Devices
Experience with Linux APIs, including familiarity with system calls, library functions, and kernel interfaces.
Experience in C++11 or higher
Possess proven troubleshooting skills
Be curious, detail oriented, and analytical, with a proven ability to learn quickly
Be customer-focused, team-oriented, and motivated, taking ownership of assigned tasks
Have proven ability to self-manage, as well as manage interdisciplinary relationships
Have proven ve
Apply for this role
Generate a tailored application kit with a matched cover letter, interview prep, and CV highlights — in under 60 seconds.
Apply Now →Generate Application KitFree account required — sign up in 30s