Berkeley Lab’s Joint Genome Institute Division has an opening for a Software Developer 3. This role will be responsible for designing, developing and maintaining a collection of scientific and analytics software, including pipelines for nanopore, RNA-seq, and resequencing analysis including tools such as MetaBAT and MetaHipMer. You will work within a team to develop new scientific applications and pipelines aligned with the overall JGI mission. This position will be responsible for the detailed management and tracking of software development in support of internal JGI scientific collaborators. You will work on problems of a diverse scope; exercise independent judgment and recommend solutions. The incumbent must demonstrate detailed knowledge and strong technical ability in full lifecycle software development.
What You Will Do:
Gather data analysis and software performance requirements by collaborating with JGI scientists.
Evaluate 3rd party software to the requirements of users.
Independently design and implement software prototypes to the requirements of users.
Provide custom analyses to solve scientific questions identified by JGI scientists.
Identify sub-tasks within a complex pipeline. Analyze individual sub-task requirements, experiment as necessary, and select the best solution/protocol based on criteria such as runtime, resource requirement, and reproducibility.
Communicate frequently with JGI scientist collaborators to ensure that the developed software matches their needs.
Work independently to design systems, and troubleshoot, diagnose and solve problems with minimal supervision.
Productionize software prototypes to a more robust standard with documentation, testing, continuous integration, error logging, code optimization, code parallelization, and checkpoint features.
Additional Responsibilities as needed:
Troubleshoot and maintain legacy software.
Maintain and develop relevant knowledge, skills and abilities in domain and related fields.
Other duties and responsibilities as assigned.
What is Required:
B.S degree in Computer Science, a computer-related discipline, and a minimum of five years of relevant Informatics experience; or an equivalent combination of education and experience.
Proficient in programming languages C/C++ (or Java), Python (or PERL).
Proven experience in developing efficient and robust software.
Demonstrated ability to understand and optimize open-source programs.
Experience with UNIX/Linux (bash shell, pipes, awk), and build environments (make, CMake, etc)
Familiar with parallel programming environments (threads, MPI) and cluster schedulers (SLURM, GridEngine)
Experience working on a project in a diverse team environment.
Effective verbal and written communication skills.
Demonstrated analytical, organizational, and interpersonal skills including: excellent problem solving, planning, prioritizing, sound judgment and flexibility.
Additional Desired Qualifications:
Scientific background, especially in Genomics or Biology. Or analytics background (math, stats, physics, etc)
Experience with analytics software. (R, matlab, etc)
Detailed understanding and experience working with sequence analysis, including alignment and assembly.
Familiar with open-source biological software ( e.g., blast, biopython, BioPERL)
Actively uses source code controls.
Experience in next-gen sequence analysis.