Sr. Software Engineer
Sr. Software Engineer
Requisition #: 313472
Salary: Commensurate with Experience
Status: Full Time
School: Krieger School of Arts and Sciences
Location: Homewood Campus
Location City: Baltimore
Location State: MD
Resume Required for Application: Yes
Area of Interest: Technical
Contact: Central Talent Acquisition Office 443-997-5100
The Maryland Advanced Research Computing Center (MARCC) is a state of the art High Performance Computing (HPC) facility that provides resources (HPC, storage and analytics) for researchers at Johns Hopkins University, The University of Maryland at College Park and eventually to all other schools in the state of Maryland. The Sr. software engineer will serve as technical resource to all users on highly complex code development, architecture, debugging, profiling, optimization, documentation, installation and maintenance of open source scientific applications; data mining and best practices to utilize HPC resources. The incumbent will enable faculty to advance research-computing agendas by interacting directly with researchers, providing feedback on how to improve application performance, and actively participating in application development. There will be also many opportunities to establish scientific collaborations and partnerships with research groups. This position will serve as lead on moderate to large IT architecture and applications development projects. The position will be expected to influence research groups towards innovative solutions and provide oversight to lower level staff. As a project lead, the incumbent is expected to interact with various departments and external constituents outside of JHU.
Internal and External Contacts:
This position will interact with an array of departmental and central administrative offices, faculty, staff, researchers, and students, and with numerous external constituents (i.e. other college administrators and faculty, private businesses, industry partners, officials of federal and local agencies and research foundations) for the purpose of accomplishing HPC technology goals. This includes providing instruction on protocol, regulations and guidelines pertinent to the agency and/or University. Works routinely with University faculty, administrators, students, and researchers. Collaborates regularly with professional colleagues from the central IT@JHU organization, and from other academic departments. Collaborates regularly with colleagues in industry and at other peer institutions.
Essential Duties & Responsibilities
Establish collaborations with research groups
Collaborate with research groups in application development, optimization
Develop common tools that benefit application optimization and performance
Provide software architecture expertise to procure external funding
Ensure solutions released to the community are stable and usable.
Ensure resources meet the community’s needs and are highly available to the group with limited interruption.
Perform thorough and complex programming including designing architectural protocols to address research needs of faculty and students in a comprehensive manner.
Install and maintain scientific applications
Identify and debug problems with scientific applications
General HPC Support
Extensively document processes so that users can easily find useful information and other IT staff can perform routine tasks and provide backup.
Conduct extensive research to resolve HPC challenges
Perform highly complex data analysis, data mining and visualization of results
Work closely with the facility’s director and oversight groups to successfully implement policies and procedures
Continuously evaluate new tools and technologies for use in existing and future clusters
Recommend solutions and new technologies
Provide required facility activity data for University and government reports.
Documentation resources and availability
Methodology and techniques to evaluate new applications and tools
Provides regular workshops on HPC related topics to ensure the effective utilization of resources
Develops materials and workshops describing best practices on application development
Attend department and University-sponsored training to increase knowledge, improve skills, and learn new skills. May substitute University training for supervisor approved commercial job related course offerings.
Attends at least three full-day in-class or on-line training programs per year, and department training pertinent to their job.
Ability to utilize web resources to complement local resources
Provide basic and intermediate workshops on scientific topics
Other duties as assigned by supervisor
Bachelor’s degree. Six years related experience. Additional education may substitute for required experience and additional related experience may substitute for required education, to the extent permitted by the JHU equivalency.
JHU Equivalency Formula: 30 undergraduate degree credits (semester hours) or 18 graduate degree credits may substitute for one year of experience. Additional related experience may substitute for required education on the same basis. For jobs where equivalency is permitted, up to two years of non-related college course work may be applied towards the total minimum education/experience required for the respective job.
Related work experience:
Minimum 6 years of demonstrated experience in developing scientific applications
Experience leading software development projects
Proficiency in configuration of the HPC software stack, including MPI, OpenMP, Intel, and GNU compilers, Math libraries.
Experience with scientific application management packages like pymodules, Environment modules
Experience with queuing systems like SLURM, PBS, Torque
Excellent scripting skills, python, perl, shell
Knowledge of database processes and interfaces with web portals
Knowledge of scientific software applications in academic supercomputing environments is desired.
Ability to maintain confidentiality
Excellent customer service skills
Excellent communication skills
Must demonstrate strong critical thinking and analytical reasoning.
Knowledge and Skill:
Proven expertise in scientific programming languages, C, C++, or Fortran
Object oriented design experience
Experience with industry standard software development tools (e.g., subversion, eclipse)
Understanding of software lifecycle, design, implementation, testing
Extensive experience in parallel programming, MPI and/or OpenMP
In-depth knowledge in the design, organization of cutting-edge technology in HPC environments.
Advanced knowledge of Linux, PHP/Python/Perl technology/toolkits.
Understanding of HPC Cluster management software.
Familiarity with massive high performance parallel storage and methodologies.
Understand, implement, troubleshoot, and support batch and workload management systems, including diagnosis of failed jobs, implementation of policies, and investigations of new features and services.
Install and configure infrastructure applications by following industry best practices to deliver effective solutions.
Proficiency on scientific applications like Matlab, R, others per discipline.
GPU and Cuda programming would be a plus.
Proficiency with visualization packages, Visit, Paraview and graphics programming.
Must have the ability to multi-task and prioritize.
Must be adaptable and able to meet conflicting deadlines.
Exceptional organizational skills.
The ability to interact with peer institutions to support HPC directives effectively; furthering the goals of the MARCC facility.
Excellent oral and written interpersonal skills in terms of customer service, training, and evangelism of new technologies, negotiation, and persuasion.
Produce effective and thorough technical documentation.
Provide outstanding direct and indirect user support.
Research, recommend, and implement new technologies based on the value to the research facility.
In-depth understanding of data management best practices.
Understanding of data architecture.
Experience, Licensure, Certification: Identify the level required/preferred to perform this job.
Master’s Degree or PH.D. strongly preferred
NOTE: The successful candidate(s) for this position will be subject to a pre-employment background check.
If you are interested in applying for employment with The Johns Hopkins University and require special assistance or accommodation during any part of the pre-employment process, please contact the HR Business Services Office at 443-997-5100. For TTY users, call via Maryland Relay or dial 711.