Senior Software and Programming Analyst

Requisition # 2024-18307
Date Posted 1 month ago(3/25/2024 10:05 AM)
Department
Geosciences
Category
Information Technology
Job Type
Full-Time

Overview

The Senior Software and Programming Analyst divides effort equally among supporting computational climate research in the Department of Geosciences and Princeton Research Computing group led by the Princeton Institute for Computational Science & Engineering (PICSciE) and Research Computing.

 

The incumbent collaborates closely with faculty in the Department of Geosciences to design and develop software solutions to run, configure, and extend complex numerical climate models. The Senior Analyst is involved in research, grant writing, and publication of results in scientific journals, and also interacts closely with postdoctoral, doctoral, and undergraduate students in the field of computational climate sciences. In addition, the Senior Analyst is involved in training and presenting results to groups on campus and at conferences.

 

Within PICSciE and Research Computing, the incumbent guides, advises, and mentors other members of the researcher engagement staff on all aspects of software development in addition to responding to routine help requests (via our ticketing system), managing open help sessions, managing continuous integration systems, providing expert guidance on distributed version control systems and provide education, training, and outreach.

Responsibilities

Software Development and Programming

  • Design and develop software solutions to run, configure, and extend complex numerical climate models in close collaboration with faculty.
  • Provide guidance and support in response to help requests in-person and through our ticketing system for faculty, staff, and students from all disciplines.
  • Provide guidance and support for modern programming techniques, including Agile software development, particularly continuous integration, pair programming, refactoring, Scrum and test-driven development.
  • Manage and support the University’s GitHub Enterprise account as well as GitHub usage for Princeton University-affiliated researchers.
  • Manage and support the Research Computing Jenkins installation as well as Jenkins usage for Princeton University-affiliated researchers.

Operations

  • Manage the research computing continuous integration system, including installation, operation, monitoring, and future planning.
  • Provide expert support for distributed version control systems (DVCS), including training, problem diagnosis and resolution, and interactions with cloud DVCS such as GitHub.

Education, Training, Outreach, and Professional Development

  • Assist with the management of research computing help sessions, including scheduling, resource allocation, recruiting student workers, and future planning.
  • Interact with faculty, staff, and students across all disciplines, with emphasis on geosciences, to provide expertise and support their research.
  • Provide education, training, and outreach services (e.g., running workshops) and present results to groups on campus as well as at conferences.
  • Contribute to the publication and communication of results from research and scholarship.

Leadership

  • Advise and mentor other members of the researcher engagement staff on software development best practices.
  • Engage with other analysts to enhance software technologies and integration systems in different departments of the University to bring value to those populations served.
  • Provide expert guidance on version control systems and the use of artificial intelligence tools.

 

Qualifications

Essential Qualifications

  • At least 5 years of experience programming in Bash, Perl, and/or Python, in at least one compiled language such as C/C++ and/or Fortran, with porting, tuning, debugging, and parallelizing scientific and engineering codes with MPI and OpenMP.
  • At least 5 years of experience working with high-performance computing and Linux clusters.
  • Deep familiarity with Git, particularly in relation to usage of GitHub.
  • Extensive experience with the Jenkins continuous integration system.
  • Experience with modern programming methods and best practices.
  • Expertise in computer architectures, storage and networks, as well as resource schedulers.
  • Strong analytical, problem-solving skills and attention to detail.
  • Excellent communication and interpersonal skills, including the ability to build working relationships with people of diverse backgrounds, with a strong focus on customer service.
  • Ability to prioritize, meet deadlines, and anticipate and address problems and delays.
  • Flexibility in adjusting work schedule to accommodate priority needs for planned and unplanned downtime and system emergencies.
  • Ability to work completely independently and self-motivate while managing multiple priorities.
  • Ability to teach and mentor individuals and groups.
  •  Excellent writing and verbal communication skills.
  • Master's or professional degree

 

Preferred Qualifications

  • Previous experience with numerical climate models.
  • Experience with Red Hat Enterprise Linux systems. Experience with the SLURM scheduler.
  • Long-term experience with Agile.
  • Experience working in an academic research environment.

 

 

 

Princeton University is an Equal Opportunity/Affirmative Action Employer and all qualified applicants will receive consideration for employment without regard to age, race, color, religion, sex, sexual orientation, gender identity or expression, national origin, disability status, protected veteran status, or any other characteristic protected by law. KNOW YOUR RIGHTS

Standard Weekly Hours

36.25

Eligible for Overtime

No

Benefits Eligible

Yes

Probationary Period

180 days

Essential Services Personnel (see policy for detail)

No

Physical Capacity Exam Required

No

Valid Driver’s License Required

No

Experience Level

Mid-Senior Level

#Ll-DP1

Options

Sorry the Share function is not working properly at this moment. Please refresh the page and try again later.
Share on your newsfeed

Connect With Us!

Join our Talent Network to receive updates about working at Princeton.

Princeton University job offers are contingent upon the candidate’s successful completion of a background check, reference checks, and pre-employment screening, as applicable.


If you have questions or comments regarding the iCIMS Privacy Policy or iCIMS FAQs, please contact accounts@icims.com.


Go to our careers site.