Request for Proposal (RFP) - API and Front-End QA Automation Development
Madrid, Spain; Buenos Aries, Argentina; RFP closes April 21, 2026
About the Company
Global Fishing Watch is an international, non-profit organization committed to advancing ocean governance through increased transparency. We create and publicly share knowledge about human activity at sea to enable fair and sustainable use of our ocean. Founded in 2015 through a collaboration between Oceana, SkyTruth, and Google, GFW became an independent non-profit organization in June 2017. Using cutting-edge technology, we create and publicly share map visualizations, data, and analysis tools to enable scientific research and drive a transformation in how we manage our ocean. By 2030, we aim to monitor and visualize the impact of ocean-going vessels, both industrial and small-scale, that are responsible for the vast majority of the global seafood catch. We believe human activity at sea should be common knowledge in order to safeguard the global ocean commons for the common good of all.
Global Fishing Watch is working to enhance fisheries management by promoting transparency, building analytical capacity, and fostering regional collaboration. Through open data, satellite technology, and partnerships with governments and stakeholders, we aim to equip decision makers with the tools needed to combat illegal, unreported, and unregulated (IUU) fishing, support small-scale fishers, and improve marine conservation. Our program focuses on sharing insights, capacity development and the integration of advanced monitoring and evaluation techniques to drive evidence based policy and sustainable ocean governance.
Context
Global Fishing Watch (GFW) seeks proposals from talented, automation-first QA engineers or vendors to build robust, maintainable automated test suites for both our front-end applications and our growing API platform. Our tools enable users to explore and analyze complex geospatial and temporal datasets through innovative interfaces, including interactive maps, vessel-tracking dashboards, and a public API. The primary goal of this engagement is to improve the reliability and confidence of our releases by seamlessly integrating these automated suites into our CI/CD pipelines.
Objectives
The main deliverables and objectives of this project include:
- Test Suite Creation: Design, build, and maintain automated test suites covering GFW's front-end products and public APIs.
- E2E Automation: Lead end-to-end test automation using Playwright to cover functional, regression, cross-browser, and performance scenarios.
- API Automation: Own API test automation by writing and maintaining contract tests, functional tests, and integration tests for public and internal APIs.
- CI/CD Integration: Integrate automated test suites into CI/CD pipelines (specifically Google Cloud Build) , ensuring tests run reliably on every relevant trigger.
- QA Strategy: Advance GFW's overall QA strategy, tooling, and infrastructure, defining and reporting on metrics to assess coverage, reliability, and product risk.
Our Stack
Testing
- Playwright and Vitest (primary E2E and integration automation framework — required)
- Cypress (used on select products — experience is a plus)
- Selenium (legacy; knowledge helpful but not the focus)
- Jest and axios
Front-end
- Modern JavaScript / TypeScript (ES6+)
- React (hooks) and Redux
- Mapping and dataviz: Deck.gl, D3, turf
- CSS3, CSS Modules
Backend & Infrastructure
- Node.js (Nest and Koa), Go, Python, PostgreSQL, Clickhouse
- Google Cloud Platform (GCP)
- Docker
- CI/CD: Google Cloud Build
Tooling & Collaboration
- Git and GitHub
- Postman
Scope
The provider will be responsible for testing the following products and performing the following duties:
- Interactive Maps: Test map platforms showing vessel tracks, fishing activity heatmaps, high seas encounters, and port visits.
- Vessel Features: Validate vessel identity and carrier vessel tracking features, including new layers added to GFW's core map.
- GFW Public/Private APIs: Ensure API quality and reliability through rigorous contract, functional, and integration testing.
- User Upload Tools: Test tools that allow users to upload, display, and analyze their own datasets alongside GFW's data.
- Testing Lifecycle: Design and document test cases for user stories, validate acceptance criteria with the product team , and run/maintain regression suites for new releases or data version changes.
- Bug Tracking: Report bugs clearly in the issue tracking system and follow up until resolution, working closely with the product team to understand impact and define priority.
The concrete deliverables expected during this contract are:
- Understand our public APIs, create a test plan, and implement it.
- Automate tests to assess the quality of new releases across our products this year. Around 20+ releases from minor changes to major changes.
- Create a new set of tests to cover a newly released product.
Working Arrangements & Timeline
- Location: This is a remote engagement requiring significant timezone overlap with Madrid, Spain, and Buenos Aires, Argentina.
- Collaboration: The provider must be comfortable working independently in a fast-moving organization , managing multiple tasks, sharing estimations, and meeting deadlines.
- Duration & Effort: The contract is for 1 year and is estimated at around 1920 hours of work.
Vendor Qualification Requirements
- Experience: 5+ years of hands-on experience building and maintaining automated test suites for production web applications.
- Core Tooling: Proven, recent experience with Playwright for end-to-end browser automation is required. Experience with Cypress is a plus.
- API Testing: Solid experience with API test automation, including writing contract, functional, and integration tests.
- CI/CD: Proven experience with CI/CD integration of automated tests.
- Domain Knowledge: Experience testing non-traditional, data-heavy applications using maps, charts, heatmaps, or other data visualizations.
- Communication: Strong written and verbal communication in English is required; verbal Spanish is a plus.
Submission Requirements
Interested parties should submit a proposal as a Word or PDF attachment. The proposal should consist of:
- A cover letter detailing the provider's interest and qualifications, including relevant previous experience.
- A narrative proposal outlining the approach to fulfilling the responsibilities outlined in the RFP.
- Resumes/CVs of key project personnel.
- A descriptive budget in an Excel file
Submission Deadline
We are accepting submissions until April 21st; however, the opportunity may close earlier if we receive a sufficient number of qualified proposals. We encourage you to submit your proposal at your earliest convenience.
Equal Opportunities: Global Fishing Watch is an equal opportunities employer. Global Fishing Watch is committed to promoting diversity and inclusion within our organization and in the greater ocean management and conservation community. We believe that diverse backgrounds, skills, knowledge and viewpoints make us a stronger organization. Bringing together professionals who possess broad experiences and a spectrum of perspectives will enable us to reach our goal of improved ocean governance faster. We hire and promote qualified professionals without regard to actual or perceived race, color, religion or belief, sex, sexual orientation, gender identity, marital or parental status, national origin, age, physical or mental disability or medical condition, or any other characteristic protected by applicable law. Our organizational goals match the urgent challenges facing our global ocean, and our mission is designed to help secure a healthy ocean for all. We are committed to building a workforce that is representative of humanity’s diversity, by providing an inclusive and welcoming environment for all employees of Global Fishing Watch and for our partners, vendors, suppliers and contractors.
Create a Job Alert
Interested in building your career at Global Fishing Watch RFP? Get future opportunities sent straight to your email.
Apply for this job
*
indicates a required field