What if the work you did every day could impact the lives of people you know? Or all of humanity?
At Illumina, we are expanding access to genomic technology to realize health equity for billions of people around the world. Our efforts enable life-changing discoveries that are transforming human health through the early detection and diagnosis of diseases and new treatment options for patients.
Working at Illumina means being part of something bigger than yourself. Every person, in every role, has the opportunity to make a difference. Surrounded by extraordinary people, inspiring leaders, and world changing projects, you will do more and become more than you ever thought possible.
DNA sequencing is transforming the world of healthcare, biology, and agriculture, and Illumina dominates the industry. The overwhelming majority of DNA is sequenced on our systems, and the sheer volume of the data is growing exponentially. Turning that raw data into actionable insights requires massive scale number crunching, and our DRAGEN software is the heart of this analysis system.
On the DRAGEN team we do whatever it takes – FPGA acceleration, multithreading, optimized C++ -- to make a world-class system to diagnose rare diseases and fight cancer. We develop novel biological algorithms, integrate them into our highly efficient analysis system, and prove over and over that we can deliver reliable software that researchers and clinicians worldwide rely on every day.
We are searching for software engineers to do hard-core, high-performance work at the core of this system. For each patient/subject we analyze billions of records, and discover the unique variants – mutations – that distinguish this person from everybody else. When we do this well, we enable discoveries that save lives.
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:
- Develop optimized multi-threaded C++ software on Linux for data intensive applications.
- Design solutions for complex software engineering problems.
- Work closely with bioinformatics team, FPGA design team, test and QA teams.
- Build expert knowledge on software development techniques.
- Provide technical leadership where desired.
Requirements:
- Degree in Computer Science/Engineering/Bioinformatics/Mathematics or related field
- Extensive knowledge and experience with C++, multi-threading, and memory management techniques.
- Proficient with tools for Linux software debugging and troubleshooting (GDB, Sanitizers, etc.)
- Proficient with git.
- 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 agile environment.
Experience/Education:
- Typically requires a minimum of 5 years of related experience with a Bachelor’s degree; or 3 years and a Master’s degree; or a PhD without experience; or equivalent work experience.
Desired:
- Knowledge and experience in developing software to interface with custom hardware
- Experience with tools for software performance analysis and optimization (perf, etc.) is a plus.
- Experience with Linux APIs, including familiarity with system calls, library functions, and kernel interfaces.
- 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 verbal and written communication skills
Listed responsibilities are an essential, but not exhaustive, list of the usual duties associated with the position. Changes to individual responsibilities may occur due to business needs.