Lead Digital Library Software Engineer
DescriptionHarvard 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
Last updated: Tuesday, February 28, 2017 23:44 UTC
How to apply
XML Unit testing Preservation Metadata: Implementation Strategies Metadata Object Description Standard JBoss Java Fedora Repository Architecture DSpace Drupal Digital preservation Cascading Style Sheets Apache Tomcat
Published: Monday, February 24, 2014 22:46 UTC