Backend & Data Engineering in Python — FastAPI · async SQLAlchemy · Postgres · Docker
I build backend services and data pipelines in Python, and I ship them the way I'd want to inherit them: typed, tested, containerised, and wired to CI. Electrical engineering graduate, based in Ankara — available for remote and freelance work.
Every repository below runs ruff, mypy and pytest on each push, plus bandit and
pip-audit for security. Each pipeline pins its GitHub Actions to full commit SHAs and
asks for a read-only token. The badges are live and the workflow files are right there, so
you can check any claim I make here — please do.
A self-hostable TIP. Collects indicators from feeds, enriches and scores them, correlates them into campaigns, and shares the result over STIX 2.1 / MISP with a live SSE alert stream.
Runs fully offline by default — every outbound request goes through an SSRF guard that resolves the host and rejects private, link-local and loopback ranges before the socket opens.
FastAPI · async SQLAlchemy · Celery · Alembic · Docker Compose + nginx
Streaming log ingestion that holds memory flat regardless of input size, backed by a columnar Parquet/DuckDB store with partition pruning. Adds a safe query language, statistical anomaly detection and security analytics, served over REST, a dashboard and a CLI.
Memory behaviour is measured by a benchmark harness that runs in CI, not asserted in prose.
DuckDB · Parquet · FastAPI · mypy --strict · benchmarks in CI
Travel search across several providers behind one API, with per-provider circuit breakers so a slow upstream degrades the response instead of taking the service down. JWT auth with RBAC, Redis-backed rate limiting and caching, and Prometheus RED metrics per route.
Live demo → · free tier, first request takes ~40s to wake
Clean Architecture · async SQLAlchemy · Redis · Prometheus · Alembic
Fifteen operational tools — backups, file sync, Docker and SSH helpers, deployment, monitoring — behind a single CLI with one config format and one logging setup. Written security-first: archive extraction refuses both traversal names and symlink members, and every subprocess call is an argument list against an allow-listed binary, never a shell.
Python CLI · Bandit-clean · pip-audit in CI
Profiles a tabular dataset, validates it against a rule battery, cleans it, and condenses the result into a 0–100 quality score across five dimensions — then tracks schema and distribution drift between versions and reports it as HTML, PDF, or an interactive dashboard.
The score is explainable rather than a black box: each dimension names the rules that moved it and the row positions that failed, so a bad number tells you what to fix. Every file it reads is treated as untrusted input.
Clean Architecture · pandas · Streamlit · Docker · reports in HTML/PDF
AI Job Market Intelligence — NLP skill extraction and semantic job search · E-commerce Price Intelligence — price-history tracking with a dashboard, behind an SSRF guard · Polite Web Crawler — robots.txt-respecting, SSRF-guarded scraper · Vault Backup — encrypted backups with content-addressed deduplication · Unified API Integration Platform — plugin layer over several external APIs · Enterprise Data Pipeline — config-driven pandas ETL · File Automation — watched-folder file processing
Open to backend, API and data-engineering roles — remote, contract or freelance. Reach me on LinkedIn or by email.