Digital Library Software Engineer, Infrastructure

California, United States
28 May 2019
End of advertisement period
28 Jul 2019
Contract Type
Full Time

A strong candidate is identified for this position.


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 a key contributor to a dynamic team of technologists, architects and information professionals defining the library of the future. Come work in an agile-inspired, test-driven, team environment, balancing the rapid and incremental delivery of new features with operational robustness.

The successful candidate will bring experience and passion leveraging innovation in information technology and software engineering especially in system design with a clear API strategy. He/she will define the evolving information architecture for the libraries as its data models expand to embrace linked data, and represent Stanford in the open source communities in which the Libraries actively engage. 


  • Conceptualize design, implement, and develop solutions for complex system/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.
  • Long-term strategic planning, and providing technical leadership in design and development for major projects. 
  • - Other duties may also be assigned


Education & Experience:

Bachelor's degree and eight years of relevant experience, or a similar 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.

Other Relevant Knowledge, Skills and Abilities May Include:

  • Experience with the design and development of API-driven middleware and services, including RESTful interfaces, JSON, message queuing and idempotent transactions. 
  • Experience developing interfaces and services using application languages like Ruby on Rails and JavaScript, or a scalable data processing language like Scala or any modern server backend language like Go.
  • Experience with software development best practices in an Agile environment, including comprehensive unit testing, use of git version control, sprint-based work cycles, and continuous integration and deployment of code. 
  • Demonstrated experience contributing to community-based open source software projects.
  • Demonstrated experience leading cross-functional teams to define a system view that supports business logic, integrate API modeling and design into the development process, and capability in creating great API.
  • 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.

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 the 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,

Stanford is an equal employment opportunity and affirmative action employer and is committed to recruiting and hiring without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, veteran status, or any other characteristic protected by law.

Additional Information

  • Schedule: Full-time
  • Job Code: 4823
  • Employee Status: Regular
  • Grade: L