Ikrame Ibn Hayoun
Backend Python | FastAPI | Generative AI | LLMs | Prompt Engineering | Remote or Hybrid
ikihga2223@gmail.com · +34 682 02 76 93 · Málaga, Spain · ikrame.dev
Summary
Backend Python developer in Málaga. 2+ years of professional work (EY, ops roles, and a software internship). I build REST APIs with FastAPI, PostgreSQL, Redis, SQLAlchemy, Pydantic, and pytest. Applied generative AI and NLP: prompt engineering (zero-shot, few-shot, Chain-of-Thought, ReAct), structured LLM extraction, embeddings, hybrid retrieval, and RAG-style grounding. LangGraph.js operator pipelines (typed GraphState, tool calling, Groq), reusable agent skills, context engineering, and cost-aware LLM routing. DAW graduate (Jun 2026), capstone 10/10. Currently specializing in AI and Big Data (PySpark, DataFrames). Open to remote or hybrid backend and GenAI roles.
Skills
Backend Python. Python, FastAPI, PostgreSQL, SQL, Redis, SQLAlchemy, Alembic, REST APIs, Pydantic, JWT, pytest, mypy, PySpark, DataFrames, Spark
Generative AI. Generative AI, NLP, LLMs, Prompt engineering, RAG, Embeddings, Hybrid retrieval, PydanticAI, Groq, LangGraph, LangGraph.js, Tool calling, Structured outputs, Guardrails, LLM routing, Context engineering, Spec-driven development, Prometheus
Delivery. Git, CI/CD, GitHub Actions, Docker, Docker Compose, Vercel, React, TypeScript, DataFlex, Power Apps, Power Fx, Node.js, Vitest
Projects
Headless FastAPI API for corporate travel: approvals, immutable double-entry ledger, LLM receipt extraction, hybrid bank reconciliation. Live: reckon-flow.onrender.com/docs
- Generative AI: PydanticAI + Groq structured extraction (schema extra=forbid) as a guardrail against prompt injection; HTTP 202 background jobs; stub provider in CI; retries on rate limits. The model cannot approve or pay.
- Hybrid retrieval: SQL prefilter, RapidFuzz, embeddings, Reciprocal Rank Fusion (RRF). Prometheus /metrics. Python, FastAPI, PostgreSQL, Redis, pytest, CI/CD.
Published on PyPI (import-resolve-cli). Git merge driver that resolves Python import-block conflicts. Zero runtime dependencies. CI: pytest, mypy, ruff.
DAW capstone, grade 10/10. Game library with React, Node.js/Express, PostgreSQL, JWT, Docker Compose. Vitest on client and server. Live: my-playthrough.vercel.app
Guide for PTA expats relocating to Málaga. Production plan API is a deterministic topological sort — no LLM on the user path (0€ inference). Operator-only LangGraph.js CLI verifies JSON fact sheets locally.
- Four-node graph with typed GraphState: researcher (Groq claims) → source finder (DuckDuckGo site-limited search, fetch + Cheerio) → fact checker (verified / uncertain / potentially_inaccurate) → editor (draft from official evidence only).
- Conditional routing: medium/high risk short-circuits to HUMAN_REVIEW_REQUIRED. No cross-run memory; each invoke is one sheet. Tool calling, prompt guardrails, Groq.
Work Experience
- Developed internal applications in a DataFlex environment and in Python: data access, business logic, and ongoing customization.
- Built a Moodle learning platform from scratch: environment and install, course and content structure, users and roles, SQL/database, and CSS/UI theming end to end.
- Built a Power App (Power Fx) that ran the CNS Christmas raffle end to end: registration and number assignment in one place, instead of chasing it over email or Teams.
- Coordinated strategic client visits in Málaga end to end: agendas, logistics, and the on-site experience — days that often shaped whether a deal moved forward.
- Ran day-to-day ops — travel, Concur, Outlook, Teams, SharePoint, and the firm's internal tools — in a global professional-services setting.
- Ran product tastings and stand logistics in high-traffic retail, including end-of-day inventory for the agency.
- Tracked donors and fundraisers in Drive, Outlook, Evergiving, Factorial, Odoo, and Looker; recorded travel and expense costs for internal cost control.
- Reconciled bank accounts, posted company and import invoices, and tracked vehicle and import costs in Excel.
Education
In progress. Coursework with PySpark, DataFrames, distributed computing, and ML.
Languages
- Spanish — Native speaker
- English — Professional working proficiency (C1)
- Moroccan Arabic (Darija) — Native speaker
Profiles
- GitHub: github.com/ikrame-ih
- LinkedIn: linkedin.com/in/ikrame-ih