Digital Library Software Engineer
Stanford University
Stanford
**Description**
This is a 2 year, fixed-term position in the library's Digital Library Systems
and Services group, with the possibility for renewal.
Stanford University Libraries is seeking an enthusiastic and talented software
engineer to support infrastructure and services as part of its digital
library, an internationally recognized technology program developing
innovative solutions to advance teaching, learning and research at one of the
world's leading universities. We are a mission-driven organization that
emphasizes open, collaborative work and community engagement within Stanford
and with partner institutions around the world.
This position will be instrumental in building out the archival and
preservation capabilities of the Stanford Digital Repository (SDR). As part of
this effort, the incumbent will be a key contributor to the Digital
Preservation Network (DPN), an ambitious, nationwide digital preservation
effort in which SDR serves as one of the peer nodes of multiple large scale
collaborative preservation repositories.
**Duties and Responsibilities**
_Software Engineering for the SDR;_ Work as part of a dedicated infrastructure
team on Stanford Digital Library's cyber-infrastructure, principally Ruby on
Rails-based middleware and services that support adaptable and reusable
technology solutions for the Stanford Digital Repository. As part of an agile
team, take responsibility for engineering the repository's preservation
environment, including object ingest, online and archival storage, fixity and
audit processes, backups, replication, retrieval and reporting.
_DPN Development and Operation; _Lead the development and integration of
Stanford's DPN instance (local code for communication, content transfer, DPN-
specific auditing and reporting) with the SDR's preservation core, ensuring
compatibility and use of Stanford Libraries overall cyber-infrastructure,
security and devOps practices. Help coordinate the development and testing of
DPN for pilots and operation; oversee the smooth operation, maintenance and
enhancements of DPN from Stanford's node, working with SDR operations staff.
_DPN Technical Engagement; _Serve as Stanford's focused technical expert on
DPN for the specification, design, engineering and testing of the Network.
Represent Stanford in architectural, security, and operational considerations
in discussions with other Nodes and DPN staff. Help ensure the development of
a Stanford-compatible DPN protocol for transfer, packaging, replication, and
versioning.
Conceptualize design, implement, and develop solutions for complex
system/programs independently with a focus on the Stanford Digital Repository.
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.
**Qualifications**
_**Education & Experience:**_
* Bachelor's degree and five years of relevant experience, or a combination of education and relevant experience.
_**Knowledge, Skills and Abilities:**_
* Expertise in designing, developing, testing, and deploying applications.
* 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 clients.
* 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.
_**Relevant experience may include:**_
* Demonstrated knowledge of a data-driven, service based architecture for an object-based infrastructure that includes hierarchical encapsulation and reuse from low level program classes to high level web-services operations.
* Demonstrated experience in the development and delivery of software that meets requirements for quality, scale, and robustness in a large-scale production environment, incorporating heterogeneous hardware (storage, network, servers), dealing with issues of persistence, caching, bandwidth, I/O, load balancing, etc. at a large scale (high volume, large files, many instances).
* Working knowledge of or ability to adopt and apply agile software development practices and test driven development principles. Ability to understand best practices for software development, and an ability to introduce and reinforce application of those practices in a team environment.
* Demonstrated experience with, or capacity to learn, Ruby on Rails for application development and for engineering in an enhanced framework, including plug-ins, engines and gems.
_**Desired Skills**_
* Prior experience in development support tools used in our environment is a plus: Git, Puppet, Tomcat, Capistrano, Hudson, JIRA, etc.
* Prior success in working in an academic environment; experience in the digital library community is a plus.
* Familiarity with digital asset management and repository-related applications.
* Experience contributing to community-based open source projects, including but not limited to those relevant to the Stanford Libraries' digital library architecture.
* Knowledge of IT infrastructure and current standards, including designing and integrating multi-tiered system architectures; database design, performance, security and scalability principles; familiarity with data models and modeling techniques; enterprise service buses; web-services and service oriented architectures; federated network service; federated messaging models, object- and procedural-oriented programming languages and concepts, (including Java as a minimum requirement); familiarity with Unix and other host-based server environments; XML, XSLT, and SAML.
* Experience contributing to the successful development and operation of enterprise-scale information systems as reliable infrastructure, including hardware, software, middleware, and supporting human processes.
* Knowledge of server and storage architectures, systems and industry development. Expertise with current storage technologies and directions, including CIFS, NFS, DASD, NAS, AFS, and TSM.
* Knowledge of network architectures and protocols; experience in operating and integrating components of a multi-protocol data network, including remote-access services. Demonstrated ability in network design, including DNS, VLANs, and firewalls.
* Experience in information security concepts, issues and technique, and an advanced understanding in key management, certificates, encryption, cryptographic techniques, TLS, and SSH.
* Detail oriented, with a passion for good metadata.
Brought to you by code4lib jobs: http://jobs.code4lib.org/job/20732/
To post a new job please visit http://jobs.code4lib.org/
|