Moamen
Osama_
Agentic Systems & RAG Pipelines
I build production AI systems: agents that route, pipelines that scale, and infrastructure that doesn't break. Currently working at the intersection of LLMs, real-time data, and automation.
Stack
tools I ship with
Projects
Production systems and research projects: from multi-agent chatbots to real-time vision pipelines. Each one taught me something different.
CRM Chatbot
Production CRM assistant with intelligent intent routing, role-based tool access, and full observability — in English and Arabic
- Two-layer intent router: LLM classifies intent first, then regex safety nets override misclassifications — 7 intents, 9 tools, bilingual (EN/AR)
- Role-based tool filtering at build time — sales rep, team leader, supervisor, and admin each get only the tools relevant to their role. Clean separation, no bloated agent context
- Prompt injection defense layer — detects and blocks injection attempts, hides internal tool names from responses, logs attempts, and fires randomized refusal messages so attackers can't pattern-match the defense
- Full LangSmith evaluation suite for the router: custom evaluators for intent_accuracy, tool_subset_precision, and tool_subset_recall across an 87-example bilingual dataset.
- Redis for conversation caching + MongoDB for persistence — two-layer memory architecture. Kubernetes-ready with liveness and readiness health probes
Done Egypt
RAG real estate chatbot with intelligent routing & personalization
- 3-stage pipeline: Router Agent classifies intent and extracts structured filters, then RAG Manager performs surgical fallback search (strict to partial to semantic-only), then SalesPerson Agent generates bilingual Arabic/English responses
- Implemented personalization: if user consents, the system queries their interaction history (liked units, preferred zones, budget) and biases search results toward their profile
- Router Agent rewrites vague queries into optimized semantic search strings. If the user asks something conversational that actually needs property data, the router catches it and routes to RAG
Real Estate ETL Pipeline
Schema-agnostic Excel parser for wildly inconsistent data
- Built a fuzzy column mapper using rapidfuzz that maps inconsistent Excel headers to a canonical YAML schema automatically: handles typos, abbreviations, and entirely different naming conventions
- Modular pipeline: detect_header, detect_footer, CanonicalMapper, each independently swappable, one concern per module
- Added an LLM layer that takes all column names and first two rows of incoming Excel, compares against our database schema, identifies which columns we need, and maps them: because columns were often named one thing and contained entirely different data
- Philosophy: schema-agnostic by design, one concern per module, LLM as the last-mile translation layer when fuzzy logic can't bridge the gap
IntelliVision
Real-time AI vision pipeline for visually impaired users
- Graduation project: integrated YOLOv8 (object detection) + MiDaS (depth estimation) running in parallel on GPU via torch.cuda.Stream, deployed on Modal with keep_warm=1 for low-latency cold start
- Built the LiveKit voice assistant with agentic tools: web search, standalone vision services as API tools, all integrated through a tool-calling architecture
- Deployed all standalone AI services (depth estimation, scene summarization, face detection/recognition, object detection) to Modal for GPU access, then wired them as agent tools accessible via the voice assistant
- Wired face detection to Supabase pgvector to score how similar a new face is to already saved faces, enabling real-time face recognition with vector similarity search
- Built a JWT token server on Vercel for secure LiveKit room access; managed real-time WebSocket communication and implemented drop-stale-frames strategy to avoid processing outdated video frames
Reyada
AI coaching platform for startup founders
- Full founder journey coverage: business name suggestions, content generation, answer evaluation with scoring, course recommendations, strength/weakness analysis, and answer refinement for clarity and impact
- Cross-phase context mapping: the platform has multiple phases (idea, market, model, etc.) and we manually mapped which fields depend on context from previous phases, so the LLM pulls exactly what it needs and nothing more
- LLM factory routing layer that identifies which phase and field a request is coming from, then automatically fetches only the relevant previously-filled data as context. No bloated prompts, no irrelevant noise
- Strict request/response contract between AI layer and backend: every LLM call has a defined input schema and output schema. LangSmith tracing for observability; AI layer receives flat serialized strings while structured data stays in the DB
Visualizations
A picture is worth a thousand tokens. Click to inspect.

CRM Chatbot, LangSmith Evals & Datasets
Production monitoring of the intent router, tracking intent_accuracy, tool_subset_precision, and tool_subset_recall across an 87-example bilingual dataset.

CRM Chatbot, Latency Tracing
End-to-end latency breakdown per agent call, from intent classification through tool execution to final response generation.

Done Egypt, Investment Analysis
Interactive Plotly visualization analyzing real estate investment patterns across Egypt, comparing zones, price distributions, and developer performance.
Let's build something.
I'm always open to new opportunities, interesting projects, or just a conversation about AI systems and engineering. Drop me a message and I'll get back to you.