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 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 software engineer will be a liaison between the systems group and the application support group. S/He is expected to carry out web programming, scripting processes, develop applications that benefit MARCC staff and the research community.
Responsible for the creation, implementation, maintenance, performance, production support and documentation of various departmental and enterprise-wide application systems. This includes but is not limited to the installation, modification, and testing of new and/or upgraded applications (packages or home grown), operating systems, file structures, hardware, communication devices, and productivity tools. Applies analysis techniques and procedures to gather and then translate business requirements into functional/technical specifications and designs. Using functional specifications and designs, produces all or part of the deliverables. Maintains databases and application system code.
Responsible for full life-cycle of medium to large sized complex projects; strong technical skills; strong ability to understand complex business processes. Develops solutions based on extensive technical knowledge, skills and experience; influences client towards innovative/integrated solutions.
The responsibilities listed below are typical examples of the work performed by this position. Not all duties assigned to this position are included, nor is it expected that everyone in this position will be assigned every job responsibility.
ANALYSIS AND REQUIREMENTS GATHERING
Define complex business/clinical/education problems by meeting with clients to observe and understand current processes and the issues related to those processes. Provide written documentation of findings to share with the client and other IT colleagues.
Gather complex system requirements by meeting with clients and researching existing technology to understand the business requirements and possible solutions for new applications.
DESIGN AND DEVELOPMENT
Develop detailed tasks and project plans by analyzing project scope and milestones for complex projects in order to ensure product is delivered in a timely fashion according to software lifecycle standards.
Write functional/technical specifications from the complex system requirements, putting them into functional and technical descriptions for use by programmers and business analysts to develop technical solutions.
Develop/change data input, files/database structures, data transformation, algorithms, and data output by using appropriate computer language/tools to provide technical solutions for complex application development tasks.
Document code and associated processes by adhering to development methodologies, adding code comments and appropriate documentation to various knowledge-base system(s) to simplify code maintenance and to improve support.
Provide monitoring and guidance in application design and development to more junior staff.
Provide thought leadership in designing and developing innovative integrated solutions.
TESTING AND DOCUMENTATION
Create and document complex test scenarios using the appropriate testing tools to validate and verify application functionality.
Test all changes by using the appropriate complex test scenarios to ensure all delivered solutions work as expected and errors are handling in a meaningful way.
Author and maintain documentation by writing audience-appropriate materials to serve as technical and/or end-user references.
Mentor junior staff in testing tools and technologies by reviewing their work.
IMPLEMENTATION AND MAINTENANCE
Implement changes by adhering to the change management policies and procedures for any given project to communicate to all parties the nature, significance, and risk factors of the solution.
Monitor changes and resolve complex problems by responding as they occur, by reviewing all processing and output of the newly implemented solution, and by proactively ensuring the solution works successfully in order to satisfy the customer requirements and to provide a smooth transition to the new solution.
Provide support by investigating and resolving issues, including complex issues to ensure prompt, effective service.
Describe the Position’s Roles & Interactions:
Identify and debug problems with scientific applications.
Install and maintain scientific applications.
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.
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.
Work closely with the facility’s director, systems and application 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.
Contributed to the Development of 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.
Describe the specific systems, applications, projects for which the position is responsible:
Familiarity with scientific application management packages like Lua modules, Environment modules, spack.
Familiarity with queuing systems like SLURM, PBS, Torque.
Excellent scripting skills, python, perl, shell.
Knowledge of scientific software applications in academic supercomputing environments is desired.
Experience in database programming (mysql, Mariadb).
Proficient in scientific programming languages, C, C++, or Fortran.
Familiarity in parallel programming, MPI and/or OpenMP.
Advanced knowledge of Linux, PHP/Python/Perl technology/toolkits. Proficiency on scientific applications like Matlab, R, others per discipline.
Minimum Qualifications (mandatory):
Bachelor’s degree required.
Five years of related work experience with computer systems and applications.
Additional experience may be substituted for education and/or experience.
Equivalency Formula: 30 undergraduate degree credits or 18 graduate degree credits = 1 year of experience. For jobs where equivalency is permitted, up to two years of non-related college coursework may be applied towards the total minimum education/experience required for the respective job.
Preferred Job Qualifications:
Ms or Ph.D. degree preferred. Formal training in computational science or engineering a big plus.
Six years demonstrated experience in developing scientific applications
Experience leading software development projects
Experience building containers for HPC environments
Minimum 3 years’ experience providing user support on an IT or HPC environment
Knowledge in the assigned application as well as the platform on which it runs.
Knowledge, Skills, & Abilities (KSA’s):
Must demonstrate strong critical thinking and analytical reasoning skills.
Ability to work on multiple priorities effectively.
Ability to prioritize conflicting demands.
Ability to execute assigned project tasks within established schedule.
Ability to work collaboratively in a team environment.
Ability to communicate effectively in the service of users and colleagues.
Writes and communicates clearly and concisely.
Possesses sound documentation skills.
Ability to maintain confidentiality.
Must demonstrate exemplary customer service skills
List Required & Preferred Skills Specific to Position:
Experience designing, developing, debugging and optimizing scientific applications.
Understanding of data architecture.
Ability to maintain confidentiality.
Excellent customer service skills.
Excellent communication skills.
Must demonstrate strong critical thinking and analytical reasoning.
Understanding of 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.
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.
Object oriented design experience
Experience with industry standard software development tools (e.g., subversion, eclipse)
Understanding of software lifecycle, design, implementation, testing
Classified Title: Software Engineer Working Title: HPC Software Engineer Role/Level/Range: ATP/04/PE Starting Salary Range: $69,140 - $95,005 annally Employee group: Full Time Schedule: M-F, 8:30 am - 5:00 pm Exempt Status: Exempt Location: 01-MD:Homewood Campus Department name: 10001373-Physics and Astronomy Personnel area: School of Arts & Sciences
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 email@example.com. For TTY users, call via Maryland Relay or dial 711.
The following additional provisions may apply depending on which campus you will work. Your recruiter will advise accordingly.
During the Influenza ("the flu") season, as a condition of employment, The Johns Hopkins Institutions require all employees who provide ongoing services to patients or work in patient care or clinical care areas to have an annual influenza vaccination or possess an approved medical or religious exception. Failure to meet this requirement may result in termination of employment.
The pre-employment physical for positions in clinical areas, laboratories, working with research subjects, or involving community contact requires documentation of immune status against Rubella (German measles), Rubeola (Measles), Mumps, Varicella (chickenpox), Hepatitis B and documentation of having received the Tdap (Tetanus, diphtheria, pertussis) vaccination. This may include documentation of having two (2) MMR vaccines; two (2) Varicella vaccines; or antibody status to these diseases from laboratory testing. Blood tests for immunities to these diseases are ordinarily included in the pre-employment physical exam except for those employees who provide results of blood tests or immunization documentation from their own health care providers. Any vaccinations required for these diseases will be given at no cost in our Occupational Health office.
Equal Opportunity Employer Note: Job Postings are updated daily and remain online until filled.
Johns Hopkins University remains committed to its founding principle, that education for all students should be grounded in exploration and discovery. Hopkins students are challenged not just to learn but also to advance learning itself. Critical thinking, problem solving, creativity, and entrepreneurship are all encouraged and nourished in this unique educational environment. After more than 130 years, Johns Hopkins remains a world leader in both teaching and research. Faculty members and their research colleagues at the university's Applied Physics Laboratory have each year since 1979 won Johns Hopkins more federal research and development funding than any other university. The university has nine academic divisions and campuses throughout the Baltimore-Washington area. The Krieger School of Arts and Sciences, the Whiting School of Engineering, the School of Education and the Carey Business School are based at the Homewood campus in northern Baltimore. The schools of Medicine, Public Health, and Nursing share a campus in east Baltimore with The Johns Hopkins Hospital. The Peabody Institute, a leading professional school of music, is located on Mount Vernon Place in downtown Bal...timore. The Paul H. Nitze School of Advanced International Studies is located in Washington's Dupont Circle area.