Overview
Organization: napari (a NumFOCUS Sponsored Project)
Position Type: Independent contractor agreement. Global, 100% Remote.
Duration: One year, possibility to extend.
Commitment: 0.4 to 1.0 FTE (Full-Time Equivalent, 35 hrs/week, 48-weeks) /
Minimum 0.4 FTE
Compensation: USD $59.50 per hour. $100k/yr at 1.0 FTE.
Benefits: Paid travel to conferences, workshops, and hackathons. Fully
flexible work hours. As an independent contractor position, traditional employee
benefits such as health insurance and PTO are not provided; contractor will bill
hourly for hours worked in the prior month.
Target Start Date: Preferred November or December 2026. Open to January 2027
and later.
About napari
napari is a fast, interactive, multi-dimensional data viewer for Python. As a healthy and growing open-source project, napari relies on a dedicated community to drive its development and maintain its ecosystem of core libraries and plugins. There is a particular need for attention to the napari core library to address outstanding architectural issues and create a well-constructed core that will make project maintenance easier and enable new viewer features.
The Role
We are seeking Remote Developers-in-Residence (DiR) to work on napari repositories to meet strategic roadmap priorities and maintain the health of the project.
You will work with the current Developers-in-Residence, core team members, and community to plan and deliver key items on the napari Roadmap, with a particular focus on the User-facing Improvements items in the Core Library section.
We work fully remotely with no set working hours, since there’s no headquarters! What matters more is how you stay connected: attending community meetings, communicating your progress and blockers on Zulip, and keeping PRs updated and legible to others. Success in this role means being comfortable working autonomously, reaching out for help when you need it, and making your work visible and coordinated with the wider team.
You will serve as a core technical anchor to address architectural challenges, accelerate review cycles, and mentor community developers. You will be guided by the napari Steering Council and members of the napari core team. This is a unique opportunity to shape the future of a widely used scientific visualization tool and to meet the needs of a growing and diverse community of developers and users.
Selection Criteria
Qualified candidates should have intermediate to advanced experience developing software with the Python programming language, version control with Git, familiarity with CI/CD pipelines, and writing and maintaining tests. Ideal candidates may demonstrate one or more of the following:
- Contribution to and maintenance of Open Source Software.
- Use of and contribution to napari and/or its plugin ecosystem.
- Experience in computer science and software engineering fundamentals, including algorithms and data structures, performance, and architecture design patterns.
- Training in medical imaging, bioimaging, geosciences, physics, and other image data-adjacent fields.
- Experience with Qt, graphics programming, and/or image rendering.
Key Responsibilities
Your time will be distributed across three core focus areas:
- Feature Development & Architecture (~60%)
- Strategic Roadmap Execution: Design, build and refactor core features in alignment with the napari Roadmap.
- Core Modularization: Untangle legacy components to build a lightweight, fast, and modular core viewer that simplifies future maintenance and supports alternative rendering backends.
- Ecosystem Collaboration Contribute features, bug-fixes, and PR reviews to
napari-adjacent repositories (e.g.,
vispy,pyapp-kitsuite). - Documentation: Write and maintain clear technical specifications, design documents, and user references alongside development and maintenance work.
- Project Maintenance (~20%)
- Triage: Provide empathetic, constructive, and timely review on pull requests and issues in the napari organization repositories, address the PR and issue backlog, and keep the project moving forward.
- Developer Experience & Tooling: Implement ways to make the project easier to work with (e.g., improving tests, CI workflows, style consistency, automation).
- Release Readiness: Assist with release stabilization, testing release candidates, and resolving pre-release blockers.
- Community Enablement & Outreach (~20%)
- Community Discussions & Meetings: Participate actively in community developer meetings, architecture discussions, and technical Zulip chat threads.
- Technical Mentorship: Onboard and mentor community contributors to the napari project.
- Conferences & Technical Outreach: Prepare proposals, author technical materials, and present talks or tutorials representing napari at open-source and scientific conferences (e.g., SciPy, EuroSciPy), workshops, and hackathons.
How to Apply
To apply, please submit the following to the application typeform:
- Your resume or CV.
- A link to your GitHub profile or other software portfolio highlighting representative software development. Highlight, if applicable, napari-related work.
- A statement of interest (1 page) describing your experience with Python development, your connection to or interest in napari, and what you would like to engage with in the DiR role.
- Representative contribution (½ page): PR, issue discussion, etc — briefly explain what problem you solved and your approach. Please provide a link to the contribution.
- Availability and Commitment: Please specify your preferred weekly hours/FTE commitment and start date availability and preference.
- Interview Availability: What availability (dates and times) do you have for interviews, starting October 7th? Please include a timezone.
- Contractor Status: I confirm that I understand this is an independent contractor position (not an employee role), and that I have looked into what this means for me legally and financially in my country/region — including tax obligations, invoicing, and any registration requirements — before applying. Please reach out with any questions.
Interview Selection Process
Candidate applications will be scored on a rubric evaluating Python and software engineering; open source and community work; domain and technical context; and communication and interest. Selected applicants will receive a request to schedule a 60-minute online interview with two napari team members. Thirty-six hours prior to the interview, the applicant will receive a link to a demo repository and be asked to review a toy pull request, to be returned at least twelve hours prior to the interview. All candidates will be contacted with the outcome of their application as early as practicable.