Senior Software Engineer I, Institutional Services
The New York Public Library · New York, NY · 2 days ago
HybridAdministrativeFull-time
Overview
NYPL is hiring a Senior Software Engineer I in our Institutional Services group to work on a full-stack engineering team building and maintaining our digital platforms, and pushing forward our unified patron experience vision across multiple applications and databases.
Responsibilities
- Develop an understanding of our infrastructure, environments and deployment practices
- Implement unit and integration tests for all the code that they write
- Complete software development tasks independently and collaboratively in line/accordance with our engineering workflows
- Begin to understand the product requirements for our Library Card Application and MyLibraryNYC systems and how they connect to larger strategic objectives
- Gain an understanding of the team’s codebases and familiarity with other NYPL codebases
- Regularly perform code review of other engineers’ work
- Support and mentor other engineers on their team in technical skills as well as the specifics of NYPL’s digital library card application
- Iteratively update our digital library card application and MyLibraryNYC systems, always seeking to identify areas for improved service for patrons and staff
- Lead development initiatives on new projects and open issues, ensuring that implementation is completed in a maintainable, observable and testable manner
- Participate in design and architecture discussions, and contribute to decisions that will impact the team and organization
- Participate in conversations about team’s project progress and help maintain team velocity through mentorship, pair programming, and code review
- Present on their work to technical and non-technical stakeholders
- Build support for the team’s work amongst various interested parties
- Provide technical advice and weigh in on decisions that impact our platforms and help realize implementation of new features and bugfixes
- Regularly influence design and architecture discussions
- Collaborate with other Software Engineers to deliver new features across NYPL Digital
- Help lead development teams by taking accountability, mentoring developers, fostering collaboration and generally aiding the adoption of best practices
- Influence and empower the team to build useful, accessible applications in a sustainable and maintainable way
- Understand code bases around NYPL Digital
- Proactively identify and remediate tech debt
- Help other engineers and provide actionable feedback during code reviews
Requirements
- Equivalent 5 years of hands-on development experience with relevant tech stack
- Strong leadership, mentoring, coaching and decision-making skills
- Excellent written and verbal communication skills
- Track record of leading major technical initiatives to solve complex technical problems
- Expertise in Python application development and system design, including production experience with Python web frameworks
- Strong understanding of system architecture and design patterns as well as cloud infrastructure
- Strong understanding of DevOps practices and their impact on implementation approaches
- Proficiency in SQL and relational databases such as MySQL, PostgreSQL, etc.
- Experience with Node.js and React ecosystem
- Experience with Next.js
- Experience with multiple component libraries. Prior experience building a component library is a plus
- Experience with front-end integration testing
- Knowledge of accessibility principles. Prior experience working on an accessible front-end is a plus
- Proficiency with version control systems and git
- Experience with CI/CD tools like GitHub Actions, TravisCI, etc.
- Familiarity with agile methodologies such as Scrum & Kanban
- Familiarity with Single Sign On is a plus. Understanding or experience managing a single sign on infrastructure like Shibboleth is a plus
- Production experience working with data stores, including ElasticSearch and/or Solr, at scale a plus