Data and Back-End Engineer
Global Fishing Watch
Reporting to: Core Data Pipelines Tech Lead
Location: This is a remote position, although it requires the individual to be in a time zone that overlaps significantly with Madrid and Buenos Aires.
We are looking for a senior data engineer or senior software engineer that is passionate about finding software solutions to different problems seeking performance and efficiency; willing to work as a team to evolve and maintain our entire platform, including data pipelines for ingesting and processing data and APIs for delivering the outputs in different ways; Intellectually curious, forward-thinking, willing to suggest/try new technologies and creative approaches to problems.
Our data pipelines ingest data from multiple sources with different formats that we then process to clean and annotate to make it available openly to everyone in the world through our APIs and custom visualization tools. Data sources are diverse; millions of positional data points from vessel AIS (Automatic Identification System)/VMS (Vessel Monitoring System), optical data (Planet, Sentinel-2), RADAR data (Sentinel 1, Radarsat), external pre-processed data (like VIIRS boat detection).
You will be part of the engineering team in the technology department of Global Fishing Watch. The technology department consists of the Product, Engineering, Security and Data teams. We jointly seek to fulfill both internal and external stakeholders needs by finding the best ways of giving access to our data to enable an impact in the world.
Global Fishing Watch is seeking to expand the engineering team to fulfill the growing need to evolve our existing datasets and create new ones with the continuous growth of raw data sources and use of our data.
What you will be working on:
- Maintain, refactor and reengineer our current pipeline processes currently based on a micropipelines architecture using Apache Airflow, Apache Beam and Google BigQuery. This includes being critical with the current architecture and design, proposing new technologies and architectures when appropriate, communicating and refining the proposals with team members and stakeholders, planning the changes and implementing them with the help of other team members.
- Work jointly with the Global Fishing Watch research team to operationalize groundbreaking models and algorithms (often in python and R) by creating new pipeline processes using those models and algorithms while ensuring consistency, reliability, monitorability, scalability, performance and data quality.
- Work jointly with the Global Fishing Watch product team to understand what various internal and external users need from the data we produce, and modify or extend the pipeline as needed to cater for those requirements. This includes ingesting new data sources, combining sensor-based sources with geospatial and environmental datasets, formatting the data into appropriate schemas and databases for consumption via API’s and publishing the data in various formats as required by end-user products and partners
- Work jointly with the Global Fishing Watch transparency program to process and publish data from local country-based Vessel Monitoring Systems.
- Create, maintain, refactor public/internal APIs using the best practices and making sure we maintain proper versioning and documentation so the APIs can be easily accessed by internal and external audiences.
- Work jointly with the Global Fishing Watch product team to understand what various internal and external users need from the data we produce, and modify or extend the APIs.
Principal Duties and Responsibilities
- Understand the Global Fishing Watch output datasets and pipelines that generate them.
- Implement and maintain different data ingestion/processing pipelines for existing and new projects, extending and improving our existing data pipeline stack built using Airflow, Cloud Dataflow, and Bigquery.
- Handle architectural and design considerations such as performance, scalability, reusability, and flexibility constraints.
- Evaluate the data integrity from each source, finding the way to ingest, curate, and normalize it.
- Document and communicate changes inline code, PR, tickets and release notes with the engineering, product and data team.
- Work jointly with the research team to make prototypes out of proof-of-concepts and operationalize prototype pipelines.
- Work jointly with the product team to understand the needs of the output datasets and find interconnections between projects.
- Work jointly with the front-end and data to make sure the data is being used correctly.
- Implement uptime monitoring for the multiple ingestion pipelines and set up continuous QA metrics on processing pipelines.
- Keep updated on the latest technologies available to make our pipelines and APIs efficient.
- Review the technical design and perform code reviews of other developers’ work.
- Debug data issues working closely with team members from other areas of the organization (subject matter experts or ML scientists).
- Modify/Fix/Implement new API endpoints owning the full development cycle. Including supporting QA for test automation and product for feature release and documentation.
Required technical skills
- Experience working in agile software development teams: 5+ years;
- Experience with SQL language: 3+ years;
- Python experience: 3+ years;
- Experience working with cloud platforms like Amazon, Azure or Google Cloud Platform: 2+ years;
- Experience working with Docker: 2+ years;
- Experience in software release management: Git, CI/CD;
Preferred technical skills
- Experience with streaming data pipeline;
- Experience with terraform;
- Experience with Data transformation workflows;
- Open-source collaboration experience;
- Go, NodeJS and R experience;
- Experience automating big data processes and models, both heuristic and ML-based;
- Experience with scalable architectures and frameworks – e.g. Kubernetes, Cloud Dataflow, etc;
- PostGIS, GDAL and other GIS tools;
Required Communication skills
- High proficiency in English;
- Experience working remotely and asynchronously.
- Excellent communication skills – in person, phone, and, most important, written;
- Comfortable communicating with a wide range of individuals, designers, developers, product managers, and other relevant staff members;
- Team player, willing to work with, teach and learn from the GFW team;
- Proactive mindset – enjoys and exhibits a high degree of ownership of tasks and projects;
- Comfortable working in a small but fast-growing organization;
- Intellectually curious, forward-thinking, willing to suggest/try new technologies and creative approaches to problems;
- Flexibility to adapt to changing instructions and requirements;
- Ability to manage multiple projects and meet deadlines;
The successful candidate will meet most, but not necessarily all, of the criteria above. If you don’t think you check all the boxes, but believe you have unique skills that make you a great fit for the role, we want to hear from you!
Working Hours: Global Fishing Watch supports flexible working, so the pattern of hours may vary according to operational and personal needs. The position will be part of a global team spanning many different time zones and so the candidate must be able to accommodate regular early/late meetings to be able to work effectively. Weekend work may be required on occasion. The post holder may be required to undertake regional and international travel. No overtime is payable.
Compensation: For prospective candidates from the United States, the salary range will be $90,000 - $105,000 annually, plus a competitive compensation and benefits package including health coverage, retirement benefits, paid sick leave, vacation and holidays. For candidates from outside the United States, comparable local market factors will be considered. Note that this position may be an employee or contractor position depending on the country of work.
Equal opportunities: Global Fishing Watch is an equal opportunities employer. We believe that our mission is best advanced when welcoming the contributions of people of diverse backgrounds, beliefs, and cultures and are committed to providing an inclusive and welcoming environment for all employees of Global Fishing Watch and our partners, vendors, suppliers, and contractors. We welcome the application of all qualified professionals and especially encourage those that have been historically marginalized or underrepresented because of their actual or perceived race, color, religion, sex, sexual orientation, gender, national origin, age, disability, or any other characteristic protected by applicable law.