Digital Library Software Engineer, Infrastructure
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.
- 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.
- - Other duties may also be assigned
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.
Other Relevant Knowledge, Skills and Abilities May Include:
- Demonstrated knowledge of a data-driven, service based architecture for an object-based services infrastructure that includes hierarchical encapsulation and reuse from low level program classes to service APIs to high level web services operations.
- Demonstrated experience in the development and delivery of software that meets requirements for quality, scale, 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).
- Demonstrated experience in a DevOps environment, help automate and streamline the operations and processes, build and maintain tools for deployment, monitoring and operations. Experience with AWS is a plus.
- Experience with the design and development of API-driven middleware and services, including RESTful interfaces, JSON, message queuing and idempotent transactions.
- 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.
- 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.
- May work extended hours, evening and weekends.
- 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, http://adminguide.stanford.edu.
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.
- Schedule: Full-time
- Job Code: 4822
- Employee Status: Regular
- Grade: J