We are seeking a Senior Software Engineer I to join our Institutional Services group at the New York Public Library (NYPL). As a full-stack engineer, you will work on building and maintaining our digital platforms, focusing on providing access to digital library resources for patrons, researchers, educators, and students nationwide.
In this role, you will write code and deliver products using multiple codebases (Python, React, Typescript). You will maintain legacy codebases and develop new applications to help patrons access NYPL's collections. Additionally, you will contribute to the technical leadership of the team by setting and upholding standards for best practices in application development, database management, and team collaboration.
Key expectations include:
- Developing an understanding of our infrastructure, environments, and deployment practices within the first month
- Implementing unit and integration tests for all code written
- Completing software development tasks independently and collaboratively
- Understanding product requirements for our Library Card Application and MyLibraryNYC systems
Within 3 months, you will:
- Gain familiarity with the team's codebases and other NYPL codebases
- Perform code reviews of other engineers' work
- Support and mentor other engineers on technical skills and NYPL's digital library card application
- Update our digital library card application and MyLibraryNYC systems
- Lead development initiatives on new projects and open issues
- Participate in design and architecture discussions
Beyond 6 months, you will:
- Provide technical advice and influence design and architecture discussions
- Collaborate with other Software Engineers to deliver new features
- Take responsibility for new development work and coordinate the work of other engineers
- Help lead development teams and foster collaboration
Responsibilities:
- Define system specifications based on NYPL technical needs
- Design and implement scalable software solutions
- Collaborate with multiple teams to build innovative applications
- Build software following industry best practices and NYPL values
- Work with product/project managers on estimating feasibility and complexity of new products/features
- Participate in team agile ceremonies and contribute to continuous improvement
- Write Technical Architecture Documents and identify and resolve ambiguities/issues
- Research and recommend solutions based on cost-benefit analysis
- Contribute to test suites and create technical documentation
- Proactively identify and remediate tech debt
- Help other engineers and provide actionable feedback during code reviews
Requirements:
- Bachelor's Degree or 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
- Expertise in Python application development and system design
- Strong understanding of system architecture, design patterns, and cloud infrastructure
- Proficiency in SQL and relational databases
- Experience with Node.js, React ecosystem, and Next.js
- Experience with multiple component libraries and front-end integration testing
- Knowledge of accessibility principles
- Proficiency with version control systems and git
- Experience with CI/CD tools and agile methodologies





