Lead Digital Library Software Engineer
Harvard University IT Library Technology Services develops and operates a
digital repository service that current includes over 45 million digital files
and 155 TB of first copy data. We are seeking a skilled technical leader and
java software developer to join an agile development team of developers,
librarians, usability designers, testers, and product owners to design and
develop core software using the J2EE software stack for a new version of
Harvard Library Digital Repository Service. As Technical Lead for the DRS, the
lead software engineer will provide technical leadership for software
applications and data migration for the Harvard University Library Digital
Repository Service, and provide technical guidance, software development
standards and best practices, and supervision to other software developers.
Developed software must be of highest quality and reliability, supporting long
term digital preservation and public access for critical library digital
content that is accessed by thousands of users on a daily basis.
Key responsibilities include the following:
Analysis: Provide architectural analysis, design, programming and design
technical goals for digital repository software products.
Design and Development: Provide technical leadership to technical colleagues
to meet library system requirements by using innovative solutions in
combination with best practices. Provide technical oversight for junior
programmers. Provide expertise in melding library knowledge with expert level
knowledge in java web application development, XML database design, and
metadata schemas and crosswalks. Act as Technical Lead on projects. Define and
document technical goals, and task breakdowns for user stories. Write high
quality, documented, unit tested code following Harvard software development
standards and methodologies. Utilize open source components wherever possible.
Deployment and Maintenance: Release code to production systems through change
control processes. Debug operational and performance problems, and fix bugs.
Significant responsibility to monitor and take action as necessary to ensure
the continued successful operation of very complex digital repository systems.
Testing and documentation: Thoroughly unit test, integration test, and
regression test software, and review the software of other developers. Create
excellent on-line architecture and design documentation, and following
standards for code documentation.
Collaboration: Work with user groups at both operational and administrative
levels to help determine functional requirements, identify and evaluate
technical alternatives, estimate costs and systems impacts, and prepare
relevant reports and specifications. Monitor progress in the fields of
computing and library automation for developments of possible local relevance.
Provide advice on automation related issues to library and systems staff.
Participate in national and professional programs related to research
libraries and automation.
* Master's degree in library or computer science, or equivalent experience
* 8+ years relevant professional experience in java software development
* Additional Qualifications:
* Experience planning and executing very complex software development projects
* Experience providing technical supervision and architectural leadership to a team of up to 5 senior java developers on complex web applications based on a service oriented architecture
* Thorough functional and technical understanding of digital repository systems and the operation of research libraries, including knowledge of open source repositories such as Fedora and DSpace
* Experience with processing multi-media file formats, including digital images, audio, and video
* Functional and technical understanding of digital repository systems, digital preservation issues, and the operation of research libraries. Experience with Fedora, Dspace, or other open source repositories
* Experience in configuring productive development tools, such as automated build systems, automated unit test frameworks
* Demonstrable excellent oral and written communication skills
* Demonstrated ability to work well with others at all levels and with technical and non-technical staff to discuss functional requirements, write specifications and develop work plans and schedules.
* Successful experience working independently and as part of a team
* Expert in Java development using J2EE, in linux development and operating environments
* Expert in database design and programming in a java/hibernate environment, including processing large XML files
* Expert in web service design and implementation
* Experience with Struts2, Tomcat and J2EE application servers such as JBoss, WebLogic or GlassFish
* Experience with search technology, such as solr/lucene
* Experience with library metadata schemas (such as METS, MODS, PREMIS,MIX)
* Commitment to unit testing, including junit
* Ability to think analytically
* Demonstrated ability to take the initiative and complete projects
* In addition to the required skills, the ideal candidate will have these skills:
* Experience with web application rapid development languages and frameworks, such as Drupal, PHP/symfony, python/django, ruby/rails
* Experience in agile team development practices
* Familiarity and strong interest in emerging trends and standards in digital libraries, preservation repositories, web service architectures, relational and full text databases and indexing services, and data storage systems
Brought to you by code4lib jobs: http://jobs.code4lib.org/job/12683/