Portfolio

A selection of my recent work.

Olist Data Lakehouse

Olist Data Lakehouse

End-to-end vendor-neutral data lakehouse: Kafka → Spark → Iceberg ingestion (bronze/silver/gold) with Airflow, Great Expectations, Terraform IaC (AWS) and a Streamlit dashboard.

PythonPySparkApache KafkaApache SparkApache IcebergApache AirflowMinIOGreat ExpectationsStreamlitDockerTerraformAWS
Olist Flink Streaming

Olist Flink Streaming

End-to-end real-time streaming pipeline: CSV simulation → Kafka → 3 Flink 2.0 jobs (revenue aggregation, CEP anomaly detection, global KPIs) → Apache Iceberg on MinIO, with Prometheus, Grafana and RocksDB checkpoints.

Java 21Apache FlinkApache KafkaApache IcebergMinIOPrometheusGrafanaDocker
Olist MLOps

Olist MLOps

End-to-end MLOps pipeline: feature engineering → XGBoost → FastAPI serving, with MLflow tracking, Evidently drift detection, Airflow orchestration, Prometheus metrics and multi-cloud deployment (Terraform AWS/GCP/Azure + Helm K8s).

PythonXGBoostFastAPIMLflowAirflowEvidentlyPrometheusDockerTerraformKubernetes
AgenticDev

AgenticDev

Multi-LLM agentic framework: a LangGraph pipeline orchestrates 4 specialized agents (Architect, Designer, Developer, Tester) to turn a free-text request into tested, documented code, with SVG asset generation and automatic fix loop.

PythonLangGraphGeminiClaudeMulti-LLMPrompt Caching
Minesweeper 1v1

Minesweeper 1v1

Real-time multiplayer Minesweeper: two players compete on identical grids via WebSocket, with a constraint-propagation solver ensuring always-solvable boards, a PostgreSQL leaderboard and an installable PWA.

ReactTypeScriptNode.jsWebSocketPostgreSQLPWA
Sanctuaire

Sanctuaire

Family tool to preserve burial concessions: centralized tracking of renewal deadlines, automatic email alerts before expiry, and admin space. Public landing page with a contact form for inbound requests.

RubyRails 8PostgreSQL 18Tailwind v4DeviseSolid QueueResendRailway
Personal Portfolio

Personal Portfolio

The site you are currently browsing: a hand-rolled static site generator in Rust and a WebGPU particle background (wgpu → WASM).

RustWebAssemblyWebGPUwgpu