Designed and implemented a production-grade ETL pipeline that ingests product pricing data from two heterogeneous sources — a dynamic e-commerce website scraped via headless Selenium and a RESTful JSON API with automatic retry logic — then cleans, normalises, and merges the datasets using Pandas before persisting the unified output to a SQLite database via SQLAlchemy. A FastAPI service exposes the curated data through searchable REST endpoints, demonstrating full ownership of the data lifecycle from extraction to serving. The entire solution is containerised with Docker Compose for reproducible, one-command deployment.