Data and Cloud Engineer. AWS Solutions Architect Associate. Madrid, Spain — open to relocation within the EU.
I build data pipelines meant to survive production: everything as code, least-privilege IAM, data quality enforced at the source, and cost accounted for at design time instead of discovered on the invoice.
caudalit-pipeline — an end-to-end AWS data pipeline, published one phase at a time, with the code and the reasoning behind each decision.
It answers a specific question: how much does Spanish peninsular electricity demand rise per degree of temperature, and at what hours is that energy most expensive?
Lambda → S3 raw → Glue + PySpark → partitioned Parquet → Glue Data Catalog → Athena,
orchestrated with Step Functions, all defined in Terraform with remote state and locking.
Four decisions worth reading if you are evaluating how I work:
- The upstream REE API returns intermittent
400s on well-formed requests. Ingestion was designed around retries with exponential backoff from the start, not patched afterwards. - Raw responses land in S3 untouched, so reprocessing never depends again on an API already known to be unreliable.
- Parquet partitioned by date, because Athena bills per terabyte scanned.
- A budget with alerts exists before the first resource is created.
Every phase carries its architecture decisions in
docs/.
Proyecto_3_capas — three-tier web architecture on AWS in Terraform: VPC with public and private subnets, Application Load Balancer, Auto Scaling across two availability zones, RDS, and security groups scoped per layer.
| Cloud | AWS — S3, Lambda, Glue, Athena, Step Functions, EC2, RDS, VPC, IAM, CloudWatch |
| Infrastructure as code | Terraform, GitHub Actions |
| Data | Python, PySpark, SQL, Parquet |
| Security | IAM least privilege, KMS, SSM Parameter Store, ISO 27001 and NIS2 aligned |
A year at Mapfre building and operating data infrastructure in an enterprise insurance environment, where traceability and compliance are not optional extras.
Languages: Spanish, Romanian and English.