Offer summary
Qualifications:
Degree in CS/Eng/Mathematics or related, Extensive experience with C++, multi-threading.Key responsabilities:
- Design, develop and integrate software on Linux
- Interact with FPGA design team
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.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 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.
Go Premium: Access the World's Largest Selection of Remote Jobs!