← Live feed

Senior Data Engineer for AWS Ingestion

Budget: - HOURLY / FULL_TIME ⭐ 5.00 (3) PRT

pyspark, python, amazon-web-services, amazon-s3, devops, amazon-rds, terraform, amazon-redshift, aws-lambda, github

Preferred qualifications

  • Experience: Expert
Senior Data Engineer — connector build on an existing AWS ingestion framework Engagement: Fixed price, milestone-based · Remote · EU-based or EU-working-hours strongly preferred Duration: 4–6 weeks for the first package Background We are a B2B analytics company in the sports and sponsorship sector. We have just completed a data-foundation build on AWS and are now extending it with additional source connectors. The foundation already exists and is not in scope to rebuild. It comprises: a reusable ingestion framework, a landing and standardisation layer, a canonical entity model, a dbt/PySpark transformation framework, scheduled orchestration with retries and backfill, an automated data-quality and lineage layer, CI/CD, and Redshift as the analytical warehouse of record. Raw data lands on S3 in Parquet with full history retained. Everything runs inside our own AWS environment. The framework was built to a specific standard: onboarding an additional source should be a matter of configuration against the existing pattern, not writing a new pipeline. Your work will test that claim. If you find the framework falls short of it, saying so early is part of the job and will not count against you. The gap to close We need additional sources connected and their fields modelled into the curated layer. Two work packages, each independently scoped. This posting covers Package A only; Package B is described so you can see the trajectory. Package A — licensed and public third-party sources (this engagement) Source class Access Notes Licensed company firmographics & funding provider REST API Export caps apply on the current tier; incremental extraction required Licensed search & web-traffic analytics provider REST API Already connected — extension only, monthly history per entity Licensed social-listening / audience & sentiment platform REST API Already connected — extension to a second entity type, 12-month aggregates Licensed consumer-research / audience panel platform API or platform export New connector, highest field yield of the package Employer-review source No usable public API Bot/collector fallback, low volume, static attributes Public no-credential web sources (3–4) Open HTTP / public endpoints Low complexity, includes a sports-statistics source and a search-interest source Volume and shape: approximately [A] company-level entities per run at [C] runs per month, and [B] property-level entities refreshed on a slower cadence. Roughly 60 fields at company level and 70 at property level, of which a significant share are already satisfied by existing connectors or by replication of our own platform tables — your scope is the remainder. Static attributes must not be re-pulled per run; time-series values refresh on schedule with [D] of history on first load. Entity resolution: every external source must link to our internal entity ID. Exact matches resolve automatically; ambiguous matches queue for human confirmation, and every confirmation is recorded. No linking by file name or by free-text company name alone. Package B — contact-level enrichment (not in this posting). Person-level data from a B2B contact database with an enrichment orchestration layer. Handled separately under a data-processing agreement; mentioned only so you understand it is deliberately excluded here. Required stack Non-negotiable, because it must match what exists: AWS (S3, Redshift, Secrets Manager, IAM, Lambda), Parquet, dbt for SQL transformations, tests and lineage, PySpark for heavy transforms, Python, Git with PR-based review and CI. Credentials in Secrets Manager — never in code, config or environment files committed to the repo. API-first extraction; bots only where no usable API exists. Deliverables and acceptance criteria Each is independently testable. We will verify all of them before final payment. Connectors. Every in-scope source lands in the S3 raw layer on schedule through the existing ingestion framework, implemented as configuration of that framework rather than a standalone pipeline. Authentication, rate-limit handling, incremental extraction and retry behaviour all demonstrated. History retention. Nothing is overwritten. Every record carries its source and extraction timestamp. A re-run on identical inputs produces identical outputs. Entity resolution. One table links our internal ID to every external key, with automatic exact matching, a queue for ambiguous cases, and an audit record of every confirmation. Curated fields. All in-scope fields queryable in Redshift at the specified grain, each traceable to its source. Quality gate. Automated tests on keys, completeness and value ranges run on every load and block bad data from reaching the curated layer. Failures alert to a channel we nominate. Documentation and transfer. A field-level catalogue mapping each field to source, key, refresh and owner; a runbook per connector; and a recorded walkthrough. Final acceptance requires one of our own engineers to onboard a new source unassisted using your framework configuration and playbook, and to run the pipeline for one full cycle without you. This is a gate, not a formality. Constraints All work runs inside our AWS environment, on our repositories, under our CI standards. No data leaves it beyond the lookups each source itself requires. We own every artifact produced — code, schemas, pipeline definitions, configuration, documentation — with no reverse-engineering restrictions on our own property. Declare in writing any pre-existing tooling of yours used during delivery, and confirm nothing of yours is required to operate the result afterwards. No component of yours may sit in the critical path. EU/GDPR. All processing stays in EU regions. You will sign a DPA and be listed as a sub-processor. Out of scope and not disclosed: our scoring and valuation logic, our weighting models, our product APIs and application screens, and the commercial terms attached to any entity. You do not need them and you will not receive them. Source subscriptions and API credits are contracted and paid by us. How to quote — read this carefully Quotes structured as “N weeks × a team of M” will not be compared. Give us: Total effort in person-days, split by role and seniority Price per connector, by complexity band Price per modelled field beyond the connector Your day rate per role The milestone schedule you propose and what triggers each payment Fixed price against milestones. We do not engage on open-ended time and materials.
Open job

AI proposal draft

Generate a short cover letter to copy into the offer. Says you are interested and ready to work.

Sign in to generate an AI proposal draft.

Log in