- Salary
- $125k – $135k/yr
- Location
- Stephen A. Schwarzman Building
- Type
- Full-time
- Department
- Engineering
- Seniority
- Senior
- Source
- Pinpoint
Description
Senior Software Engineer I, Institutional Services
Department: Digital
Employment Type: Full Time
Location: Stephen A. Schwarzman Building
Reporting To: Christina Entcheva
Compensation: $125,000 - $135,000 / year
Description
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.
- 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
- 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
- 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
- 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
- Bachelor’s Degree -OR-
- Equivalent 5 years of hands-on development experience with relevant tech stack
- 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
- N/A
More...
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 Setting
- Hybrid work environment; 3 days in office in NYC
- Limited physical effort is required
- May require travel within NYC
- No
- Non-Union
- Exempt
- Monday - Friday ; 9-5
- Hybrid work environment; 3 days in office in NYC
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.