We have an opening for an
Optics Inspection Analysis Software Developer, on the Optics Inspection Analysis team at the National Ignition Facility (NIF). In this role you will support our research by contributing to the modernization and maintenance of the Optics Inspection image processing and analysis codebase. Your efforts will establish a modern, maintainable foundation and will enable development of enhanced analysis capabilities and innovation. This position is in the NIF Computing (NIFC) Division within the Computing Directorate, and in support of NIF and Photon Science.
This position offers a hybrid schedule, blending in-person and virtual presence. You will have the flexibility to work from home one or more days per week.
This position will be filled at either the SES.3 or SES.4 level based on knowledge and related experience as assessed by the hiring team. Additional job responsibilities (outlined below) will be assigned if hired at the higher level.
You will
- Analyze existing image processing and analysis code (written primarily in MATLAB, Perl, and Java), document functionality and requirements, and create specifications to guide code reimplementation.
- Reimplement/reengineer MATLAB image processing routines in Python using appropriate libraries (OpenCV, scikit-image, etc.) while maintaining accuracy and functionality.
- Implement comprehensive unit tests, integration tests, and performance benchmarking to ensure code correctness, robustness, and performance.
- Maintain and enhance the modernized code base according to customer needs and project priorities, and document it (including code, processes, procedures, and system architecture).
- Contribute to the development, implementation, and documentation of coding standards, testing frameworks, version control workflows, and CI/CD practices.
- Research, evaluate and recommend tools, utilities, and libraries to improve development processes and workflows, and enhance software capabilities.
- Actively collaborate with team members, participate in code reviews, and collaborate with NIF scientists, stakeholders, and customers to identify and clarify requirements, and validate implementations.
- Mentor team members in Python, software development best practices and modern software engineering techniques.
- Perform other duties as assigned.
Additional Responsibilities at SES.4 Level
- Provide technical direction and leadership in image processing through researching, identifying, developing, and implementing innovative and highly advanced image processing and analysis methods and techniques while collaborating closely and mentor colleagues within and beyond NIF & PS.
- Provide technical leadership and mentoring in Python and software development and engineering to team members and collaborators. Promote and establish modern software development and engineering techniques and best practices both within and beyond NIFC.
- Shape the architecture, technical strategies and lead the evolution of the analysis software code base, analysis methods, and software engineering practices by anticipating future needs and proactively researching, identifying, and evaluating appropriate libraries, tools, and techniques, and championing their use.
Qualifications
- Ability to obtain and maintain a U.S. DOE Q-level security clearance which requires U.S. citizenship.
- Bachelor's degree in Computer Science, Computer Engineering, Applied Mathematics, or related field, or equivalent combination of education and related experience.
- Significant software development experience using Python 3 as the primary development language and advanced knowledge of Python's fundamental concepts, constructs, and idiomatic practices.
- Significant experience with image processing or signal processing in Python, using image processing libraries such as OpenCV and scikit-image, and scientific computing libraries such as NumPy, SciPy, and Pandas.
- Advanced knowledge of MATLAB code and programming, including the ability to understand MATLAB code and write descriptions of its functionality. Advanced experience implementing automated testing (unit tests, integration tests) to ensure code quality.
- Significant experience with code profiling and performance optimization.
- Advanced verbal and written communication skills necessary to effectively collaborate in a team environment and present and explain technical information to both technical and non-technical audiences.
Additional Qualifications at SES.4 Level
- Highly advanced software development experience using Python 3 as the primary development language, with demonstrated ability to architect, implement, and maintain large and complex software systems or applications, coupled with subject matter expert knowledge of Python development and software engineering best practices and technologies.
- Expert level experience establishing technical direction, coding standards, and development workflows for software projects, with demonstrated ability to make strategic technical decisions and evaluate and integrate new technologies and approaches to solve complex problems.
- Expert communication, facilitation, and collaboration skills necessary to collaborate with, present, explain, and advise management and/or external stakeholders.
Desired Qualifications
- Master's degree in Computer Science, Computer Engineering, Applied Mathematics, or related field.
- Prior experience reengineering and reimplementing a large software project into a new
- language and architecture.
- Experience with one or more of the following: using SQL to interact with Oracle databases, using a modern Git-based software forge such as GitLab, GitHub, or Bitbucket, developing and maintaining CI/CD pipelines for project testing and deployment, or creating and deploying containers with Docker.
Pay Range
$175,530 - $267,060 Annually
$175,530 - $222,564 Annually for the SES.3 level
$210,630 - $267,060 Annually for the SES.4 level
This is the lowest to highest salary we in good faith believe we would pay for this role at the time of this posting; pay will not be below any applicable local minimum wage. An employee's position within the salary range will be based on several factors including, but not limited to, specific competencies, relevant education, qualifications, certifications, experience, skills, seniority, geographic location, performance, and business or organizational needs.
Additional Information
#LI-Hybrid
Position Information
This is a Career Indefinite position, open to Lab employees and external candidates.
Videos To Watch
https://www.youtube.com/watch?v=ITnv867DReU