The New York Public Library logo

Senior Software Engineer I, Institutional Services

The New York Public Library

HybridNew York City, NYsenior$130k–$135kPosted 2h ago

Job description

Description

  • This is not a remote role and requires work in the NYC office three days a week -

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.

The role will be responsible for writing code and delivering products via several codebases (Python, React, Typescript) focused on providing access to digital library resources for NYPL patrons, researchers, educators, and students around the country. This involves maintaining legacy codebases and developing new applications to help patrons access NYPL’s collections.

This role will also contribute to the technical leadership of the team by helping set and upholding standards for best practices in application development, database management, team collaboration, and other technical areas, with guidance by the Technical Team Lead.

Some expectations for this role are that within:

1 month, this person will:

  • 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

3 months, this person will:

  • 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

  • Actively 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

6 months and beyond, this person will:

  • 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

  • Take responsibility for new development work, coordinating the work of other engineers

  • 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

Responsibilities:

  • Understand NYPL technical needs to define system specifications

  • Design and implement scalable, optimized, and maintainable software solutions

  • Collaborate with multiple teams working on platforms to build innovative and forward-looking applications for our patrons

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

  • Work with product/project managers on estimating the feasibility and complexity of new products/features

  • Participate in team agile ceremonies and contribute towards the continuous improvement of our agile processes

  • Ask questions to ascertain the feasibility of the technical approach

  • Write Technical Architecture Documents defining technical approach for foundational functionality across projects

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

  • Research and recommend solutions based on cost benefit analysis and embracing automation and efficiency

  • Connect with different teams when shared issues or solutions are identified

  • Contribute to test suites to ensure the creation of accurate, reliable, and robust code

  • Create technical documentation and specifications for all delivered code

  • Proactively identify and remediate tech debt

  • Help other engineers and provide actionable feedback during code reviews

  • Assume additional responsibilities as required by the organization

Required Education, Experience & Skills

Required Education and Certifications

  • Bachelor’s Degree -OR-

Required Experience

  • Equivalent 5 years of hands-on development experience with relevant tech stack

Required Skills

  • 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

  • Experience establishing documentation standards and practices

  • 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

Managerial/Supervisory Responsibilities

  • N/A

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

  • Office Setting

  • Hybrid work environment; 3 days in office in NYC

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 environment; 3 days in office 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 LibrarySalary 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).

About The New York Public Library

The New York Public Library is a free provider of education and information for the people of New York and beyond. With 92 locations—including research and branch libraries—throughout the Bronx, Manhattan, and Staten Island, the Library offers free materials, computer access, classes, exhibitions, programming and more to everyone from toddlers to scholars, and has seen record numbers of attendance and circulation in recent years. The New York Public Library serves more than 18 million patrons who come through its doors annually and millions more around the globe who use its resources at www.nypl.org.