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.
The Digital department develops and maintains many products, systems and tools — both patron-facing and staff-facing — to allow us to fulfill that ambition. Our products include the SimplyE e-reading platform, used by many libraries around the country. The department, of course, develops various systems and tools for library staff to use to manage all these products.
The successful candidate will collaborate and have a significant impact within a small but dedicated cross-functional team, with the opportunity to help inform and implement our technical strategy.
If you have experience in the relevant technologies and an interest in library systems, e-reading, microservices, event-driven / serverless architecture and complex data structures, this is a great opportunity to work on unique projects that will transform the way curators and patrons interact with the Library.
Our expectations for this person are that within…
1 month, this person will:
- Become familiar with the core components within the SimplyE pipeline
- Gain a general understanding of the workflow for the server systems for Circulation Manager and the admin interface
- Become familiar with our development workflow and comfortable using tools such as Github and Jira
3 months, this person will:
- Be able to complete small software development tasks, as directed by the Senior Software Engineer/Technical Team Lead, in line with our engineering workflows
- Include unit and integration tests for all the code that they write
- Have a good understanding of our infrastructure, environments and deployment practices
- Provide feedback on your colleague’s/team’s work submitted in pull requests
- Develop an understanding of
- the systems on which other teams in NYPL Digital work
- how the work of NYPL Digital relates to other departments at the Library
6 months, this person will:
- Work collaboratively with the Senior Software Engineer/Technical Team Lead on progressively larger tasks and projects
- Be working within our engineering best practices and values (https://github.com/NYPL/engineering-general), and develop software according to those guidelines
- Ensure on-time and predictable delivery by breaking down complicated problems into smaller, more manageable tasks
- Approve pull requests
- Develop an understanding of the interactions between the DAM systems and the other systems managed by NYPL Digital and other departments in the Library
12 months and beyond, this person, working with the Senior Software Engineer/Technical Team Lead and other project team members, will:
- Define, implement, and document technical architecture and specifications to meet product needs
- Research and understand tradeoffs with various technology solutions
- Integrate best-in-class industry-standard tools, so our team can focus development on NYPL’s domain-specific requirements, where we can add real value
- Learn about other systems managed and developed by NYPL Digital
Reporting to the Technical Team Lead, the Software Engineer I will:
- Take on and complete well-defined sub-tasks in their main product/codebase
- Make steady progress on tasks, and ask for help when necessary
- Write correct and clean code with guidance flowing stated best practices
- Proactively familiarize themselves with adjacent codebases by cross-training on specified products, e.g., via pairing and code-reviews
- Raise concerns or issues with line manager or senior technical staff as appropriate
- Create technical documentation and specifications.
Required Education & Experience
- Bachelor’s Degree or certificate from specialized coding program
- Or equivalent 1+ years of hands-on development experience on relevant tech stack
- Demonstrated experience creating scalable and secure services using one or more areas (e.g., React/JS/Python/Ruby/iOS/Android development).
- Demonstrated experience working with relational databases like PostgreSQL, MySQL, or similar technologies
- Solid working knowledge of Git and collaborative programming practices (e.g. code reviews)
Demonstrated experience with best practices like testing, CI/CD, documentation, logging, etc.
- Good understanding of HTTP, and REST
- Good communication skills
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
Limited physical effort is required
May require travel within NYC
Monday – Friday (9-5)
Union / Non Union
To apply for this job please visit jobs-nypl.icims.com.