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 http://www.nypl.org.

The New York Public Library

New York, NY

Manager, Software Engineering

Overview

NYPL Digital is the department responsible for the digital transformation of the Library in order to facilitate the successful transition to the delivery of core patron-facing services through digital platforms. This role will help pave the way for the ethical and sustainable use of digital technologies in society and provide a sustainable approach to technology.

The successful candidate will lead and have a significant impact on a small but dedicated cross-functional team to iteratively develop innovative products for the library.  This is a two year grant funded role.

You'll have the opportunity to architect and implement our product and technical strategy. If you have experience in Ruby and/or Node.js and an interest in microservices, event-driven / serverless architectures, complex data structures, and graph databases, this is a unique opportunity to work on projects that will transform the way patrons interact with the Library.

Our expectations for this person are that within…

1 month, this person will:

  • Quickly acclimate to the Library's infrastructure, environments and deployment practices
  • Delegate and execute software development tasks, as directed by the Director of Digital Technology or the Team Lead, in line with our engineering workflows
  • Get to know and start to build cooperative relationships with their team; assess and communicate personal development plans and goals with team members

3 months, this person will:

  • Gain an understanding of NYPL’s engineering processes, products and visions.
  • Moderate design and architecture discussions within their team, and make decisions on issues that affect their entire team.

6 months, this person will:

  • Solicit, institute and maintain new best practices across their team.
  • Identify and remove duplicated or wasted effort across projects
  • Research and propose new technologies

12 months and beyond, this person will:

  • Guide their team members towards improvement and professional development.
  • Define & promote DevOps practices & demonstrate awareness of systems challenges & ensure smooth running of services.
  • Recognize and reward team members for outstanding procedures, behaviors, and practices; identify poor team performance and coach & counsel as required.

Principal Responsibilities

Reporting to the Director, Digital Technology, the Senior Software Engineer will:

  • Manage a team of software engineers, including task planning and code reviews.
  • Drive technical projects and provide leadership in an innovative and fast-paced environment.
  • Take responsibility for the overall planning, execution and success of complex technical projects.
  • Contribute technically to projects.
  • Contribute to strategic and tactical product planning.
  • Work closely with the product management team to ensure we're building the best products.
  • Tackle the complex and interesting challenge of solving business problems through software engineering.
  • Hold your own in technical discussion, be a subject matter expert, and have strategic influence
  • Communicate cross-functionally and drive engineering efforts

Required Education & Experience

  • Bachelor’s Degree or certificate from specialized coding program
  • 3 years of hands-on technical leadership and people management experience.
  • 5 or more years of hands-on web development experience on relevant tech stac

Minimum Qualifications

  • Strong experience building web applications in Ruby, PHP, Python or Java using a framework such as Rails, Symfony, Spring, etc. Understanding of front-end frameworks such as React is beneficial..
  • A proven track record of managing, developing, and mentoring software engineering teams.
  • Experience with Agile software development, for example Scrum or Kanban
  • Experience doing hands-on large scale software development and architecture

Preferred Qualifications

  • 10 years of relevant industry experience, with 5 years of hands-on technical leadership and people management experience (managing teams of 2 or more developers).
  • Experience with cloud platforms (e.g. AWS)
  • Experience with search technologies (e.g. Solr, Elasticsearch)
  • Experience with event-driven architectures.
  • Familiarity with CMS like Drupal is beneficial.
  • Experience with design systems (Carbon, USWeb, etc) is beneficial.

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

Work Environment

Office Environment

Physical Duties

  • Limited physical effort is required
  • May require travel within NYC

Hours

Monday - Friday 9-5