Software Engineer III
Summary
Backend software engineer on NYPL's Digital Asset Preservation and Access team, modernizing the systems that make library collections available online — building OCR search, stabilizing data pipelines, and delivering high-resolution images. Core stack: Python/Ruby (Flask/Django), SQL databases, GitHub Actions CI/CD, and AWS; hybrid role with 3 days/week in NYC.
The New York Public Library is seeking a Software Engineer III to join our Digital Asset Preservation and Access (DAPA) team, where they will have a major impact on NYPL’s ability to make more of its extensive collections available online. This includes assets available on NYPL’s Digital Collections site, as well other discovery platforms, staff management tools and the systems that support them.
- Complete software development tasks collaboratively in accordance with our engineering workflows
- Begin to understand the product requirements for our DAM systems and how they connect to larger strategic objectives
- Review code and provide feedback during code reviews
- Develop and execute unit tests for own/team’s code to ensure accuracy, reliability and robustness
- Develop an understanding of our DAM infrastructure, systems and the challenges facing them
- Contribute to new projects and open issues, ensuring that implementation is completed in a maintainable, observable and testable manner
- Own your project’s technical decisions that will impact the team and organization, especially around streamlining asset and metadata flows
- Take ownership of existing systems
- Consistently contribute to code bases and understand repositories across NYPL Digital
- Participate in design and architecture discussions and demonstrate an ability to abstract problems into general solutions
- Develop and maintain scripts to automate testing processes
- Own significant components of NYPL’s DAM ecosystem, including their design, implementation and maintenance
- Participate in department-wide initiatives, such as the adoption of new testing frameworks, etc
- Work well without strong support structures, either between teams or without one
- Provide guidance to more junior software engineers regarding applications they own as well as on best practices in general
- Collaborate with Engineering leadership on overall direction of team/project
- Understand project needs and how to implement specific technical solution
- Take ownership of specific systems and ensure their maintenance/support
- Partner with other engineers to design new software systems and improve existing ones
- Collaborate with Senior Engineers to help realize new projects
- Build software following industry best practices and NYPL values ()
- Contribute to test suites to ensure the creation of accurate, reliable, and robust code
- Create technical documentation and specifications for all delivered code
- Understand how to identify and remediate tech debt
- Identify and resolve ambiguities/issues with requirements for team and org-wide projects
- Provide actionable feedback during code reviews
- Assume additional responsibilities as required by the organization
- Bachelor’s Degree - OR - 4+ years of experience developing software applications at scale
- Equivalent 4 years hands-on development experience on relevant tech stack
- 3-5 years in backend development
- 3+ years in back-end application development in Python or Ruby
- Proficiency with one or more Python web frameworks (Flask, Django, etc.)
- Strong experience in SQL and relational databases such as mySQL, Postgres, etc.
- Proficiency with version control systems and git
- Experience with CI/CD tools, especially GitHub Actions
- Strong working experience with other languages (PHP or Java preferred)
- Familiarity with agile methodologies such as Scrum & Kanban
- Familiarity with a major cloud computing platform, especially AWS
- N/A
All team members are expected and encouraged to embody the NYPL Core Values:
- Be Helpful to patrons and colleagues
- Be Resourceful in solving problems
- Be Curious in all aspects of your work
- Be Welcoming and Inclusive
- Office Environment
- Hybrid Work Environment; 3 days in office in NYC; 2 remote (subject to change)
- Limited physical effort is required
- May require travel within NYC
- No
- Non-Union
- Exempt
- Monday - Friday; 9-5
The New York Public Library Salary Statement
At the Library, we believe that pay transparency and pay equity are important to ensuring we source the best candidates and keep the best employees. When making a determination as to the appropriate salary for a candidate, we consider a variety of factors such, including, but not limited to, the position requirements, the skills, prior experience, and educational background required or preferred for the job, the scope and impact of the role within the organization, internal peer equity, and the candidate's specific training, experience, education level, and skills. No single factor is conclusive; the Library reserves the right to consider any and all relevant factors and make a decision consistent with its policies.