This is a three-year fixed-term position with the possibility of an extension.
The Digital Library & Web Archiving Software Engineer is a member of the Digital Library Systems and Services (DLSS) team in the Stanford University Libraries. The engineer will focus on the development and maintenance of Stanford’s Digital Library; a core part of the job will be the integration and development of systems supporting web archiving.
As a senior developer, the role performs difficult and complex programming and analysis work, and contributes to all phases of digital library development & maintenance, including systems analysis, program design, development, implementation and maintenance. As a specialist in web archiving, the successful candidate will be responsible for developing, configuring, and managing web archiving systems and related digital library components; analyzing and resolving technical issues related to data capture, content replay, and service operation; and building access and discovery services for web archives.
This position reporting to the Infrastructure Engineering Manager, and works closely with the Web Archiving Service Manager in an agile development environment at Stanford, and extensively with open source communities in the digital library and web archiving spheres, including LOCKSS, the Fedora Repository, Hydra and Blacklight. Stanford’s efforts on these fronts are recognized internationally, and have a major programmatic impact on the University’s operation and that of libraries and repositories worldwide.
Core Duties:
- Conceptualize, design, implement, and develop solutions for complex systems/programs independently.
- Work with a variety of users to gain information, and develop intra-system tradeoffs between different users, as necessary; interact with a diverse client base and outside vendor contacts.
- Document system builds and application configurations; maintain and update documentation as needed.
- Provide technical analysis, design, development, conversion, and implementation work.
- Work as a project leader, as needed, for projects of moderate complexity.
- Serve as a technical resource for applications.
- Compare, evaluate, and implement new features and technologies, and integrate them into the computing environment.
- Follow team software development methodology.
- Mentor lower level software developers.
- At the Software Developer 3 level, duties include long-term strategic planning, providing technical leadership for major projects, and modeling standards to address complex technical problems.
Qualifications:
To qualify at Software Developer 2 level:
Education & Experience
Bachelor’s degree and five years of relevant experience, or a similar combination of education and relevant experience.
Relevant experience may include:
- Demonstrated experience working in an academic and/or library environment.
- Demonstrated experience contributing to community-based open source software projects.
- Previous work related to libraries, digital preservation and/or digital repositories,
- Engineering on Web and/or Web archiving systems, within or outside the library domain
Knowledge, Skills and Abilities:
- Expertise in designing, developing, testing, and deploying applications while adhering to best practices such as agile and test-driven software development.
- Proficiency with application design and data modeling.
- Ability to define and solve logical problems for highly technical applications.
- Strong communication skills with both technical and non-technical partners.
- Ability to lead activities on structured team development projects.
- Ability to select, adapt, and effectively use a variety of programming methods.
- Knowledge of application domain, such as digital libraries and web archiving.
To qualify at Software Developer 3 level:
The above criteria, plus:
Education & Experience
Bachelor’s degree and eight years of relevant experience, or a similar combination of education and relevant experience.
Knowledge, Skills and Abilities:
- Ability to quickly learn and adapt to new technologies and programming tools.
- Thorough understanding of all aspects of software development life cycle and quality control practices, such as automated testing and test driven development practices.
- Demonstrated experience leading technical activities on structured team development projects.
- Ability to recognize and recommend needed changes in user and/or operations procedures.
Relevant experience at both levels may include:
- Strong understanding of Ruby and Ruby on Rails and Java.
- Successful participation and leadership in open source software development.
Physical Requirements*
- Constantly perform desk-based computer tasks.
- Frequently sit, grasp lightly/fine manipulation.
- Occasionally stand/walk, writing by hand.
- Rarely use a telephone, lift/carry/push/pull objects that weigh up to 10 pounds.
* – Consistent with its obligations under the law, the University will provide reasonable accommodation to any employee with a disability who requires accommodation to perform the essential functions of his or her job.
Working Conditions
- May work extended hours, evening and weekends.
Work Standards
- Interpersonal Skills: Demonstrates the ability to work well with Stanford colleagues and clients and with external organizations.
- Promote Culture of Safety: Demonstrates commitment to personal responsibility and value for safety; communicates safety concerns; uses and promotes safe behaviors based on training and lessons learned.
- Subject to and expected to comply with all applicable University policies and procedures, including but not limited to the personnel policies and other policies found in the University’s Administrative Guide, http://adminguide.stanford.edu.