Logo
New York Public Library

Senior Software Engineer I, Scholarly eBooks - Python

New York Public Library, New York, New York, us, 10261

Save Job

Senior Software Engineer I, Scholarly eBooks - Python Department:

Digital

Employment Type:

Full Time

Location:

Stephen A. Schwarzman Building

Reporting To:

Technical Team Lead

Compensation:

$125,000 - $135,000 / year

This role is based in NYC - and requires work in the office 3 days a week in NYC

Description This role is based in NYC - and requires work in the office 3 days a week in NYC

Overview The New York Public Library is seeking a Senior Software Engineer to join the Scholarly eBooks team. This role will lead the technical efforts to expand access to and increase the discoverability of public domain and open access materials. This work will involve building new integrations with external sources and internal catalogs, while innovating on the organization and searchability of our metadata. This role will also contribute to a project to launch the library’s first patron-facing AI product. This pioneering project aims to integrate Generative AI and Large Language Model (LLM) technologies into the New York Public Library's existing infrastructure. Our core objective is to develop and deploy these powerful tools in a responsible and ethical manner. The ultimate goal is to empower researchers, scholars, and the general public to unearth and engage with materials within NYPL's vast and diverse collections in novel and profoundly impactful ways, thereby significantly enriching their exploration and discovery processes.

Beyond the Scholarly eBooks team, this role will also have the opportunity to contribute to other catalog projects at NYPL.

We are looking for someone we can count on to:

Own :

Scholarly eBooks APIs that support discoverability and access for a collection of millions of bibliographic records

Scholarly eBooks ETL pipelines for metadata and content files from a wide range of sources and in differing formats

Technical decisions, designs and implementations for difficult and complex problems that affect the organization

Teach :

Support and mentor other engineers, helping them grow their technical skills and utilize engineering best practices

Present on their work to technical and non-technical stakeholders

Build support for the team’s work amongst various interested parties

Learn:

Gain an understanding of library science practices, especially around metadata standards and formats

Gain expertise in AI Engineering to implement solutions with LLMs and vector databases

Connect the dots between different applications to understand how metadata and records can be shared between them

Help the department keep up with new developments and standards in software engineering

Improve :

Grow as a team member and leader, collaborating with other NYPL engineers on problems

Grow as an engineer, developing domain-level technical expertise

Some expectations for this role are that within:

1 month , this person will:

Develop an understanding of our technical stack and software engineering processes

Complete software development tasks independently and collaboratively in accordance with our engineering workflows

Begin understanding Scholarly eBooks’ product requirements and design software solutions to implement them

3 months , this person will:

Help lead design, architecture discussions, and the implementation of projects

Start making technical decisions that impact the team and the organization

Consistently contribute to code bases and understand repositories across NYPL Digital

6 months and beyond , this person will:

Provide technical advice and help make decisions that impact the team and organization

Collaborate with other senior engineers and technical team leaders to deliver new features and make improvements to the technical stack across NYPL Digital

Lead technical work, mentor teammates, foster collaboration and promote best practices

Responsibilities

Design and implement scalable, optimized, and maintainable software solutions

Collaborate with multiple teams to build innovative applications for NYPL patrons

Build software following industry best practices and NYPL values (https://github.com/NYPL/engineering-general)

Develop unit, functional and integration test suites to ensure the creation of accurate, reliable, and robust code

Create technical documentation and specifications

Identify and remediate tech debt before it becomes large enough to require standalone work to address it

Identify and resolve ambiguities/issues with requirements for team and org-wide projects

Help other engineers and provide actionable feedback during code reviews

Communicate effectively across disciplines, including through detailed and effective technical writing

Assume additional responsibilities as required by the organization

Required Education, Experience & Skills Required Education and Certifications

Bachelor’s Degree - OR - the required experience below

Required Experience

Equivalent 4 years hands-on development experience on relevant tech stack

6-10 years in backend development

Required Skills

4+ years in Python application development

Production experience with one or more Python web frameworks (Flask, Django, etc.)

Proficiency in SQL and relational databases such as mySQL, Postgres, etc.

Proficiency with version control systems and git

Experience with CI/CD tools like Travis, Jenkins, GitHub Actions, etc.

Familiarity with other languages (PHP, Ruby or Java preferred)

Familiarity with agile methodologies such as Scrum & Kanban

Familiarity with a major cloud computing platform (e.g. AWS, Azure, GCP, etc)

Preferred Skills

Experience implementing and maintaining technical solutions with ML and/or AI

Proficiency in discovery layers such as ElasticSearch and/or Solr

Experience building full-text search solutions

Experience building and working with containerized software

Experience maintaining shared modules and/or working with a private package repository

Familiarity with REST and stateless service design

Experience writing integration and load tests

Understanding of deployment infrastructure, either for machine images on EC2 or containers on ECS / EKS

Familiarity with common library metadata standards

Managerial/Supervisory Responsibilities:

None

More... Core Values

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

Work Environment

Hybrid Work environment; 2-3 days in office, 2 remote

Physical Duties

Limited physical effort is required

May require travel within NYC

Pre-Placement

Physical Required?

No

Union/Non Union

Non-Union

FLSA Status

Exempt

Schedule

Monday - Friday; 9-5

Hybrid Work Schedule

This role is based in NYC - and requires work in the office 3 days a week in NYC

This job description represents the types and levels of responsibilities that will be required of the position and shall not be construed as a declaration of all of the specific duties and responsibilities for the role. Job duties may change if Library priorities change. Employees may be directed to perform job-related tasks other than those specifically presented in this description as needed.

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.

Union Salaries are determined by collective bargaining agreement(s).

#J-18808-Ljbffr