Apply Now Clicking "Apply Now" opens the link in a new window.

How to Apply

A cover letter is required for consideration for this position and should be attached as the first page of your resume. The cover letter should address your specific interest in the position and outline skills and experience that directly relate to this position.


Job Summary

The University of Michigan Library is seeking a skilled programmer to help create and maintain large scale digital library systems. The successful candidate will work as part of a team of programmers, librarians, and designers on major initiatives including development of a system architecture to serve the U-M Library and campus based on Hydra and Fedora. The system makes use of recent developments in the open source community and will handle a wide array of materials: research data sets, historical records, electronic journals, audio, video and more. This is an opportunity to join a skilled and forward-thinking group and to gain experience with modern technologies that support research, digital preservation, publishing, archives and broad public access. We value intellectual curiosity and a desire to discuss why we develop what we develop, along with a positive outlook and willingness to learn.


The University of Michigan Library is one of the world's largest academic research libraries and serves a vibrant university community that is home to 19 schools and colleges, 100 top ten graduate programs, and annual research expenditures approaching $1.5 billion a year. To enable the university's world­changing work and to serve the public good, the library collects, preserves, and shares the scholarly and cultural record in all existing and emerging forms, and leads the reinvention of the academic research library in the digital age.


The library is committed to recruiting and retaining a diverse workforce and encourages all employees to fully incorporate their diverse backgrounds, skills, and life experiences into their work and towards the fulfillment of the library's mission.


This position may be filled at the Applications Programmer/Analyst Senior level or at the Applications Programmer/Analyst Lead level.



-Develop, debug, modify and maintain complex software systems, including the full stack of components behind data-driven web applications and APIs (Application Programming Interfaces).

-Become a specialist in the design and development of systems that support scalable adaptable workflows and business logic for the full portfolio of repositories, applications and services we support.

-Work collaboratively in cross-functional teams comprised of members from across the division, library, university, or other institutions to achieve common goals.

-Collaborate with user interface, usability, and accessibility experts and front-end developers to implement front-ends for web applications.

-Collaborate with other developers, and systems and security specialists, to design and develop back-ends for web applications.

-Contribute to the creation of standards and best practices within the division (e.g. code management, deployment, accessibilty and online security), and encourage their use.

-Work with the stakeholders, including repository managers and partners within and beyond the library, to provide consultation, specifications and technical support for their specific needs in depositing, managing and curating content within the repository service.

-­Configure and customize open source software and engage in collaborative development activity ­using modern tools and techniques.

-Share knowledge and expertise with peers in informal and arranged mentorship roles.

-Participate actively in the open source communities with which we are engaged (e.g. Hydra).

­-Review system and software designs and prepare and conduct functional tests.

-Create and maintain internal documentation.

-Actively engage in professional development activities to expand skills and competencies.

-Lead level will include leadership duties and responsibilitites.


Required Qualifications*

-Bachelor’s degree in Computer Science or related field.  Five years of experience at the Senior level, or seven years experience at the Lead level, or an equivalent amount of experience and education.

-Demonstrated programming skills in a programming language such as: Ruby on Rails,Java, Python, Perl.

-Understands and values diversity and the importance of inclusion as demonstrated through a commitment to apply and incorporate the differences, complexities, and opportunities that diversity brings to an organization.

-Strong analytical and troubleshooting skills.

-Excellent communication skills.

-Self-motivated with ability to work in close collaboration with a team.


Desired Qualifications*

-Experience with Unix/Linux.

-Practical familiarity with business logic, workflow implementation, and complex integration of applications and web services.


Underfill Statement

This position may be underfilled at a lower classification depending on the qualifications of the selected candidate.

Additional Information

Minimum salary for Senior level is $75,000.  Minimum salary for Lead level is $85,000.  Final classification and salary will be determined by experience and qualifications.


The University of Michigan offers excellent benefits and wellness opportunities.

This position receives 24 days of vacation a year, paid sick leave with provisions for extended benefits, as well as opportunities for professional development and travel. TIAA-CREF and Fidelity Investments retirement options available.

U-M EEO/AA Statement

The University of Michigan is an equal opportunity/affirmative action employer.