Technical Team Lead, Institutional Services
4 days ago
New York
Job DescriptionDescriptionThis is not a remote position; this position requires being in the office three days a week in NYC. Overview Do you want to work for a mission driven organization that cares about privacy, accessibility, sustainability, and ethical technology? Join us at the New York Public Library! NYPL Digital is the department responsible for the digital transformation of the Library in order to facilitate delivery of core patron-facing services through digital platforms. NYPL is hiring a Technical Team Leader in our Institutional Services group to lead 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 supporting several codebases (Python, React, Java, XML) 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 NYPL Digital by helping set standards for best practices in application development, database management, people management, and other technical areas. It will also have the opportunity to contribute to other catalog-based projects at NYPL, with a focus on increasing the adoption of Python as a standard language in the department. The Technical Team Lead role requires a mix of people management and hands-on technical contributions. We are looking for someone we can count on to:Own: • Important APIs and data pipelines that support NYPL’s digital platforms like the Library Card experience, MyLibraryNYC, Single Sign On etc, integrating with a variety of catalog systems owned both by NYPL and 3rd party vendors, • A broad base of technical knowledge to be able to identify solutions for difficult problems, • The day-to-day management of a full-stack team and their technical priorities, helping coordinate their work with cross-functional partners, collaborators, stakeholders, and leadership.Teach:, • Support and mentor other engineers, helping them deliver results on time and in accordance with department standards, • Present on their and the team’s work to technical and non-technical stakeholders, • Build support for the team’s work among various interested parties, • Align approaches to development between development teams, sharing best practicesLearn:, • Gain an understanding of library science practices, especially around metadata standards and formats, • Connect the dots between different applications to understand how data and user experience can be shared between them, • Collaborate with other Technical Team Leads to help improve Digital’s culture and implement best practices in software developmentImprove:, • Grow as a team member, collaborating with other NYPL engineers to solve problems, • Seek to retire legacy applications and replace them with modern, streamlined solutionsSome 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 workflows3 months, this person will:, • Gain an understanding of the team’s group’s codebases and familiarity with other NYPL codebases, • Regularly perform code review of other engineers’ work, • Actively participate in design and architecture discussions, • Participate in conversations about team’s project progress and help report on status to Digital leadership6 months and beyond, this person will:, • Actively contribute to team’s code bases and understand code bases around NYPL Digital, • 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 Technical Team Leads 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 wayResponsibilities:, • Understand NYPL technical needs to define system specifications, • Design and implement scalable, optimized, and maintainable APIs and other applications, • Collaborate with multiple teams working on platforms to build innovative and forward-looking applications for our patrons, • Work with product/project managers on estimating the feasibility and complexity of new products/features, • Mentor and coach junior developers on best practices and career growth Communicate priorities and system requirements to software development teams, • Manage a small team of 2-4 full-stack engineers, • Motivate staff and create spaces where they can ask questions and voice their concerns, • Be transparent with the team about challenges, failures, and successes, • Research and recommend solutions based on cost benefit analysis and embracing automation and efficiency., • Bachelor’s Degree -OR-Required Experience, • Equivalent 7+ years of hands-on development experience on relevant tech stack, • 1+ years of experience in people managementRequired Skills, • Strong leadership, mentoring, coaching and decision-making skills, • Excellent written and verbal communication skills, • Demonstrated ability to level up individual engineers and engineering teams, • Track record of leading major technical initiatives to solve complex technical problems, • Knowledge of non-technical strategies for solving team, culture and process 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 plusManagerial/Supervisory Responsibilities:, • Support small team of 2+ engineers in their day-to-day work, • Report on status of team projects, including progress and any issues encountered, • Coach team members on both hard and soft skills, • Be Helpful to patrons and colleagues, • Be Resourceful in solving problems, • Be Curious in all aspects of your work, • Be Welcoming and InclusiveWork Environment, • Hybrid Work Environment; 3 days in office in NYC, 2 remote, • Monday - Friday; 9-5Physical Duties, • N/APre-Placement Physical Required?, • NoUnion/Non Union, • Non-UnionFLSA Status, • ExemptSchedule, • Monday - Friday; 9-5, • Hybrid Work Schedule: 3 days in office in NYC; 2 remoteThis 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).