Software Engineer

Baltimore
0 other recent jobs
Created: July 27, 2012

Description

The Sheridan Libraries encompass the Milton S. Eisenhower Library and its collections at the John Work Garrett Library, the George Peabody Library, the Albert D. Hutzler Reading Room, and the DC Centers. Its primary constituency is the students and faculty in the schools of Arts & Sciences, Engineering, Carey Business School and the School of Education. A key partner in the academic enterprise, the library is a leader in the innovative application of information technology and has implemented notable diversity and organizational development programs. The Sheridan Libraries are strongly committed to diversity. A strategic goal of the Libraries is to 'work toward achieving diversity when recruiting new and promoting existing staff.' The Libraries prize initiative, creativity, professionalism, and teamwork. For information on the Sheridan Libraries, visit www.library.jhu.edu.

General Position Summary: The Software Engineer will perform a major role in the design, software development, and implementation of the University Libraries and Museums’ digital collections discovery and presentation interfaces as well as associated backend workflows. The position will be responsible for formulating, developing and implementing technological solutions to expose some of the Libraries and Museums’ rare and unique special collections via the web. In addition, the position will be responsible for developing and supporting software to support the digitization of this content. The position is located in the Scholarly Resources and Special Collections department but will interact with library and museum staff from many different departments.

Job Scope/Complexity: Responsible for full life-cycle of medium to large sized complex projects; strong technical skills; strong ability to understand complex business processes. Develop solutions based on extensive technical knowledge, skills and experience; influence client towards innovative/integrated solutions.

Job Responsibilities: The responsibilities listed below are typical examples of the work performed by this position. Not all duties assigned to this position are included, nor is it expected that everyone in this position will be assigned every job responsibility.

ANALYSIS AND REQUIREMENTS GATHERING (20%)

  • Work with the Digital Collections Implementation Team (DCIT), a cross-departmental work team, to gather requirements and develop a framework for exposing digital collection content such as maps, rare books, and manuscripts through common platforms for discovery and presentation. Interaction will include daily Scrum meetings, sprint planning meetings, and sprint retrospectives.
  • Assist DCIT with identifying new and future technologies that support the Libraries and Museums’ goals and initiatives for digitization activities.
  • Work with Digitization Services Unit (DSU) to implement and customize open source software system to track digitization requests and gather statistics about work done.
  • Define complex business/clinical/education problems by meeting with clients to observe and understand current processes and the issues related to those processes. Provide written documentation of findings to share with the client and other IT colleagues.

DESIGN AND DEVELOPMENT (50%)

  • Design and implement an architecture, including associated API layers, for exposing data from the University Libraries and Museums’ various repositories and other data stores.
  • Develop solutions that work within existing open source infrastructure including software such as DSpace, Fedora, Blacklight, Rails, Solr, and Umlaut.
  • Develop detailed tasks and project plans by analyzing project scope and milestones for complex projects in order to ensure product is delivered in a timely fashion according to software lifecycle standards.
  • Write functional/technical specifications from the complex system requirements, putting them into functional and technical descriptions for use by programmers and business analysts to develop technical solutions.
  • Develop/change data input, files/database structures, data transformation, algorithms, and data output by using appropriate computer language/tools to provide technical solutions for complex application development tasks.
  • Document code and associated processes by adhering to development methodologies, adding code comments and appropriate documentation to various knowledge-base system(s) to simplify code maintenance and to improve support.
  • Provide monitoring and guidance in application design and development to more junior staff.
  • Provide thought leadership in designing and developing innovative integrated solutions.

IMPLEMENTATION AND MAINTENANCE (20%)

  • Implement changes by adhering to the change management policies and procedures for any given project to communicate to all parties the nature, significance, and risk factors of the solution.
  • Monitor changes and resolve complex problems by responding as they occur, by reviewing all processing and output of the newly implemented solution, and by proactively ensuring the solution works successfully in order to satisfy the customer requirements and to provide a smooth transition to the new solution.
  • Provide support by investigating and resolving issues, including complex issues to ensure prompt, effective service.

TESTING AND DOCUMENTATION (10%)

  • Create and document complex test scenarios using the appropriate testing tools to validate and verify application functionality.
  • Test all changes by using the appropriate complex test scenarios to ensure all delivered solutions work as expected and errors are handling in a meaningful way.
  • Author and maintain documentation by writing audience-appropriate materials to serve as technical and/or end-user references.
  • Mentor junior staff in testing tools and technologies by reviewing their work.

Qualifications:
Required Education: Bachelor’s degree required. Additional experience may be substituted for education, to the extent permitted by the JHU Equivalency Formula.
Required Experience: Five years of related work experience with computer systems and applications. Additional education may substitute for experience, to the extent permitted by the JHU Equivalency Formula.

JHU Equivalency Formula: 30 undergraduate degree credits or 18 graduate degree credits = 1 year of experience. For jobs where equivalency is permitted, up to two years of non-related college coursework may be applied towards the total minimum education/experience required for the respective job.

Knowledge, Skills, & Abilities (KSA’s):

  • Demonstrated experience developing for web architectures, including software-to-software API production or consumption.
  • Experience designing and/or developing against web services (XML, JSON).
  • Solid work experience with Unix/Linux environment.
  • Comfortable working in an Agile development environment.
  • Experience with object oriented programming language; experience with Java or Ruby/Rails is preferred.
  • Must demonstrate strong critical thinking and analytical reasoning skills.
  • Ability to work on multiple priorities effectively and ability to prioritize conflicting demands.
  • Ability to execute assigned project tasks within established schedule.
  • Ability to work collaboratively in a team environment and to communicate effectively in the service of users and colleagues.
  • Writes and communicates clearly and concisely.
  • Possesses sound documentation skills.
  • Ability to maintain confidentiality.
  • Must demonstrate exemplary customer service skills.

Please visit https://hrnt.jhu.edu/jhujobs/job_view.cfm?view_req_id=53229&view=sch for more information.


Last updated: Tuesday, February 28, 2017 23:47 UTC