Overview
Technical skills
Timeline
Roles

Overview

A pragmatic data engineer with applied ML experience who builds end-to-end ingestion and retrieval pipelines and lightweight model training/inference components. The strongest proven skill is document ingestion and semantic search - demonstrated by PDFProcessor chunking, PubMedFetcher and a ChromaDB-backed VectorStore. There is limited evidence of formal statistical rigor, automated tests, reproducible CI pipelines or large-scale distributed data engineering in public code.

Technical skills

Python• Middle • 4y+
Python
FastAPI
Requests
Uvicorn
Pydantic
Databases
FAISS
Chroma
AI/ML
Embeddings
LLM
Mistral
Mistral SDK
MLFlow
QLoRA
RAG
Streamlit
LoRA
PEFT
TF-Keras
OpenCV
Sentence-Transformers
Falcon
Pandas
NumPy
Deep Learning
LangChain
AI Agents
Copilot
Prompt Engineering
Function Calling
DevOps
Docker
Rest API
Vector
Analytics
Power BI

Timeline

May 2026 to May 2026 0 Months

Multi-agent AI system designed to automate the analysis of medical literature and answer complex clinical questions with full source traceability.


LangGraph-orchestrated architecture with four specialized agents:


* Agent 1 — Document Intelligence: semantic search in ChromaDB using sentence transformers

* Agent 2 — Research Analyst: structured information extraction based on the PICO framework (Population, Intervention, Comparison, Outcome)

* Agent 3 — Synthesis: cross-paper comparison, contradiction detection, and consensus identification

* Agent 4 — QA Agent: evidence-based answers with source citations and confidence scoring


Key features:

→ PubMed API integration for automated paper ingestion

→ FastAPI REST API with synchronous and asynchronous modes

→ Streamlit dashboard with real-time pipeline visualization

→ Docker containerization for reproducible deployment


Stack: LangGraph · Mistral AI · ChromaDB · sentence-transformers ·

FastAPI · Streamlit · PyMuPDF · Docker · Python


https://github.com/HatimOMp/medgenai-clinical-assistant

LangGraph
Mistral SDK
Chroma
Sentence-Transformers
FastAPI
Streamlit
Docker
Python
Apr 2026 to Apr 2026 0 Months

End-to-end MLOps platform covering the entire machine learning model lifecycle.


How it works:

→ Experiment tracking with MLflow: four machine learning models (Random Forest, Gradient Boosting, Logistic Regression, and SVM) are compared, with automatic logging of hyperparameters and performance metrics

→ Model serving through a FastAPI REST API exposing `/predict`, `/predict/batch`, `/health`, and `/experiments` endpoints with automatically generated OpenAPI documentation

→ Streamlit dashboard for experiment visualization, model comparison, and real-time prediction testing

→ Docker containerization for fully reproducible deployment


Key engineering decisions:

→ Pydantic for strict request validation across API endpoints

→ Plotly for interactive model performance visualizations

→ MLflow Model Registry for model versioning and rollback support


Stack: MLflow · FastAPI · Scikit-learn · Docker · Streamlit · Plotly · Pydantic · Python


https://github.com/HatimOMp/mlops-platform

MLFlow
FastAPI
Scikit-learn
Docker
Streamlit
Plotly
Pydantic AI
Python
Apr 2026 to Apr 2026 0 Months

Full RAG pipeline built entirely from scratch without LangChain or any high-level framework to answer questions about any PDF document with page-level source traceability.


How it works:

→ PDF ingestion and text extraction using PyMuPDF

→ Text is split into overlapping chunks to preserve context across segment boundaries

→ Each chunk is embedded using Mistral AI (1024-dimensional embeddings) and indexed in a FAISS vector store

→ For each query, the most relevant chunks are retrieved and passed to Mistral AI for answer generation

→ Responses include precise page-level citations, allowing users to verify the source of every piece of information

→ Multi-turn conversational memory enables follow-up questions while preserving the full conversation context


Key technical decision:

→ Built without LangChain to gain full control over every stage of the pipeline, including chunking strategy, embedding generation, vector indexing, and retrieval logic


Stack: Mistral AI · FAISS · PyMuPDF · Streamlit · Python


https://github.com/HatimOMp/rag-pdf-chatbot

Python
Mistral SDK
FAISS
Streamlit
Feb 2025 to Mar 2026 1 Year 1 Month

End-to-end pipeline combining classical computer vision and deep learning to extract and structure handwritten digits from document images.


How it works:

→ Image preprocessing with OpenCV: adaptive thresholding to handle uneven lighting conditions, followed by morphological operations for noise removal and image enhancement

→ Contour detection to isolate individual digit regions within each document

→ Each detected region is classified by a CNN model (TensorFlow/Keras) trained on the MNIST dataset, achieving 99.22% classification accuracy

→ Structured predictions exported in CSV format

→ End-to-end application deployed with Streamlit


Key engineering consideration:

→ The project includes an in-depth discussion of domain shift, the gap between the clean MNIST benchmark dataset and real-world document images and its impact on model performance in production environments


Stack: OpenCV · TensorFlow · Keras · Streamlit · Python


https://github.com/HatimOMp/mnist-digit-recognition

OpenCV
TensorFlow
Keras
Streamlit
Python
Data Scientist Middle
International Omega Consulting Full-Time
Nov 2025 to Jan 2026 2 Months In office
Université Paris Cité
Master's Degree Machine Learning for Data Science
2023–2024 Paris, France
Data Engineer & Data Scientist Middle
Gourmey Full-Time
Oct 2023 to Oct 2024 1 Year In office
Worked on data processing pipelines focused on cleaning, type casting, mapping, and deduplication, and supported bulk imports into a lab data platform. Contributed to R&D traceability and analysis work, and improved analytical workflows to reduce processing time. Also supported business and research planning through cross-validation and Bayesian optimization for model-related decisions.
May 2024 to Jun 2024 1 Month

Variational Autoencoder (VAE) trained on the CelebA dataset (200,000+ images) to generate realistic human faces and explore the latent representation space.


How it works:

→ The encoder compresses input images into a structured latent space, learning a probability distribution by predicting the mean and variance instead of a single latent vector

→ The reparameterization trick enables backpropagation through the sampling process, allowing the model to be trained end-to-end

→ The decoder reconstructs realistic facial images from sampled latent vectors

→ Latent space interpolation generates smooth transitions between two faces by linearly interpolating between their latent representations

→ End-to-end application deployed with Streamlit for interactive face generation and latent space exploration


Key engineering concept:

→ The project demonstrates probabilistic latent representations and generative modeling, highlighting how continuous latent spaces enable meaningful interpolation and the generation of novel, realistic samples


Stack: TensorFlow · Python · Streamlit


https://github.com/HatimOMp/vae-face-generation

TensorFlow
Python
Streamlit
Data Scientist Middle
Ziwig Biotech Full-Time
Oct 2022 to Oct 2023 1 Year In office
Performed data preparation and statistical workflows on large biomedical datasets, including batch effect correction, imputation, and distribution transformations. Built and evaluated feature selection methods and statistical filters, and validated results on real clinical data involving university hospitals and partner labs. Used Python-based pipelines for the analysis and modeling tasks.
Python
Business Intelligence Assistant Middle
Ingelec Full-Time
Apr 2022 to Aug 2022 4 Months In office
Assisted with reporting and analytics-related tasks, supporting internal data workflows used for business updates. Contributed to preparation of information for stakeholders and supported day-to-day analytics needs.
Jan 2022 to Jul 2022 6 Months

Computer vision web application capable of automatically detecting, analyzing, and digitizing photographed documents.


What I built:

→ Automatic document boundary detection using perspective transformations with OpenCV

→ Image correction and enhancement using NumPy and image processing techniques

→ TensorFlow-based machine learning model to improve document detection accuracy

→ Conversion of processed images into PDF documents using img2pdf

→ Web application built with Flask, Bootstrap, and Jinja, providing a responsive interface and seamless interaction between the user and the backend


Stack: Python · OpenCV · TensorFlow · NumPy · Flask · Bootstrap · Jinja · img2pdf

Python
OpenCV
TensorFlow
NumPy
Flask
Bootstrap
Apr 2022 to May 2022 1 Month

Full-stack e-commerce web application covering all components of a modern software architecture from the user interface layer to data persistence.


What I built:

→ Product catalog homepage, secure authentication module, and user account creation system

→ Responsive and user-friendly interface built with HTML5, CSS, and Bootstrap

→ Business logic and application layer developed using Java EE

→ Data persistence management through Hibernate ORM

→ Relational database integration (MySQL / Oracle Database) using SQL for product and user data storage


Stack: Java EE · Hibernate · MySQL · Oracle Database · SQL · HTML5 · CSS · Bootstrap

Java
Hibernate
MySQL
Oracle
SQL
kotlinx.html
CSS Modules
Bootstrap
Jan 2021 to Apr 2021 3 Months

Intelligent driver drowsiness detection system combining computer vision and deep learning to improve road safety through real-time monitoring.


What I built:

→ Real-time face and eye region detection using Haar Cascade classifiers with OpenCV

→ Visual feature extraction and processing using NumPy and image processing techniques

→ CNN model (TensorFlow/Keras) classifying the driver's state: alert or drowsy

→ Automatic audio alert triggering when drowsiness is detected (Pygame)

→ Modular architecture designed to adapt to other monitoring scenarios, such as hand-on-wheel detection or automated emergency stopping systems


Stack: Python · OpenCV · TensorFlow · Keras · NumPy · Pygame

Python
OpenCV
TensorFlow
Keras
NumPy
PyGame
Middle AI/ML Engineer Confidence: Medium LLM Engineer
A practical mid-level LLM/AI engineer who builds end-to-end prototypes combining CV pipelines and multi-agent RAG systems. The strongest proven skill is engineering retrieval-driven agent workflows and vector-store integration, evidenced by the multi-agent orchestration (graph.py) and ChromaDB-backed VectorStore (utils/vector_store.py). There is limited evidence of production-grade MLOps (CI/CD, monitoring), rigorous experiment tracking or novel research contributions in the public code.
Model Architecture & Training
4/10
How well models are designed and trained
Conventional model architecture and training are implemented with TF-Keras, data augmentation and sensible callbacks; no custom layers, distributed training or advanced optimizer/schedule design.
Evidence
mnist-digit-recognition/model.py: build_model()
mnist-digit-recognition/train.py: training loop with EarlyStopping and ReduceLROnPlateau
Data Pipeline & Feature Engineering
5/10
How data is prepared for models
Clear, practical data pipelines and feature engineering: OpenCV-based document preprocessing, contour-based digit detection and PDF chunking with traceable metadata for downstream retrieval.
Evidence
mnist-digit-recognition/pipeline.py: DigitExtractionPipeline.preprocess and detect_digits
medgenai-clinical-assistant/utils/pdf_processor.py: PDFProcessor.chunk_text and process
Experimentation & Evaluation
3/10
How results are measured and tested
Basic experimentation and evaluation are present (training metrics, saved plots, test accuracy) but no experiment tracking, ablations, or reproducible experiment configs are integrated.
Evidence
mnist-digit-recognition/train.py: plotting training history and saving training_history.png
mnist-digit-recognition/app.py: displays Test Accuracy metric (99.22%)
MLOps & Deployment
3/10
How models are shipped to production
Evidence of serving and integration (FastAPI skeleton, Streamlit UIs, persistent ChromaDB usage) but limited deployment automation, monitoring, CI/CD or production hardening shown in code.
Evidence
medgenai-clinical-assistant/api.py: FastAPI endpoint signatures (run_pipeline_job, ingest_pubmed_endpoint)
medgenai-clinical-assistant/utils/vector_store.py: Persistent chromadb client and collection management
Computational Efficiency
2/10
How efficiently computing resources are used
Minor efficiency considerations (batching for embeddings, sensible batch sizes for training) but no profiling, quantization, GPU memory/throughput optimization or latency/budgeting work.
Evidence
medgenai-clinical-assistant/utils/vector_store.py: embed(..., batch_size=32)
mnist-digit-recognition/train.py: model.fit(..., batch_size=128)
Research Depth & Innovation
2/10
Depth of research and new ideas
Applies known research patterns (multi-agent RAG, retrieval + grounding, CV heuristics) but there is no novel algorithm, paper reproduction, custom layer or rigorous research evaluation.
Evidence
medgenai-clinical-assistant/agents/qa_agent.py: agent prompt construction and LLM call
medgenai-clinical-assistant/graph.py: orchestration of multi-agent pipeline (build_graph/run_pipeline)
Verified artifacts
Expertise
AI Agents & Agentic Workflows• Middle
RAG• Middle
Document Intelligence & OCR• Middle
Industries
Commerce• Middle
Health Care• Middle
Technologies
Rest API
FAISS
LoRA
Embeddings
Mistral SDK
PEFT
QLoRA
Falcon
NumPy
Docker
LLM
RAG
Vector
CNN• mentioned only
Data Augmentation• mentioned only
LangGraph• mentioned only
Mistral• mentioned only
RAG• mentioned only
Recommendations
  • Develop RAG-based search and multi-agent prototypes where retrieval, citation and traceability are primary requirements.
  • Build document intelligence systems (OCR + post-processing) and productionize ingestion pipelines using the existing PDFProcessor and VectorStore patterns.
  • Own end-to-end POCs that integrate LLMs, embeddings and lightweight serving (FastAPI + Streamlit) while hardening deployment (CI/CD, monitoring) progressively.
  • Avoid assigning large-scale distributed training, low-level CUDA optimization or formal ML research tasks without additional evidence of profiling and experiments.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Middle Data Scientist Confidence: Medium Data Engineer
A pragmatic data engineer with applied ML experience who builds end-to-end ingestion and retrieval pipelines and lightweight model training/inference components. The strongest proven skill is document ingestion and semantic search - demonstrated by PDFProcessor chunking, PubMedFetcher and a ChromaDB-backed VectorStore. There is limited evidence of formal statistical rigor, automated tests, reproducible CI pipelines or large-scale distributed data engineering in public code.
Statistical Rigor
2/10
Correct use of statistics
Minimal statistical rigor - model training and simple confidence heuristics are present but no formal assumption checks, significance testing, calibration or uncertainty quantification beyond naive confidence thresholds.
Evidence
mnist-digit-recognition/train.py
medgenai-clinical-assistant/agents/qa_agent.py
Data Wrangling & Cleaning
6/10
Preparing and cleaning data
Strong practical data wrangling and ingestion - robust PDF extraction, chunking, PubMed fetching and a ChromaDB vector-store integration with batching and metadata handling.
Evidence
mnist-digit-recognition/pipeline.py
medgenai-clinical-assistant/utils/pdf_processor.py
medgenai-clinical-assistant/utils/pubmed_fetcher.py
Exploratory Analysis & Visualization
5/10
Exploring and visualizing data
Exploratory results and visualizations are present and application UI surfaces findings, but EDA is largely applied/operational rather than hypothesis-driven statistical exploration.
Evidence
mnist-digit-recognition/app.py
mnist-digit-recognition/train.py
medgenai-clinical-assistant/app.py
Predictive Modeling
5/10
Building models that predict
Solid predictive modeling practice for an applied project - custom CNN, data augmentation, callbacks, evaluation and a production-oriented inference pipeline; lacks advanced CV/robust CV schemes or calibration experiments.
Evidence
mnist-digit-recognition/model.py
mnist-digit-recognition/train.py
mnist-digit-recognition/pipeline.py
Business Insight & Impact
3/10
Turning analysis into business value
Some product framing and domain-aware outputs (PICO, citations, domain-shift warnings) but limited explicit business-impact analysis or error-cost reasoning.
Evidence
medgenai-clinical-assistant/app.py
medgenai-clinical-assistant/README.md
Reproducibility & Notebook Hygiene
3/10
Clean, repeatable analysis
Basic reproducibility measures - requirements files, model save, dotenv config usage and Streamlit caching; missing pinned environment hashes, CI, tests, data versioning or explicit seed control.
Evidence
mnist-digit-recognition/requirements.txt
medgenai-clinical-assistant/requirements.txt
medgenai-clinical-assistant/config.py
Expertise
Analytics• Middle
Industries
Artificial Intelligence• Middle
Health Care• Middle
Technologies
Deep Learning
LangChain
Chroma
OpenCV
Sentence-Transformers
MLFlow
Power BI
Mistral
Pandas
TF-Keras
Streamlit
CNN• mentioned only
Data Augmentation• mentioned only
LangGraph• mentioned only
RAG• mentioned only
Recommendations
  • Develop production ETL components that include unit tests and integration tests around PDF ingestion and vector-store writes (focus on pdf_processor.py and vector_store.py).
  • Add reproducibility and CI - pin exact environment (lockfile), add tests and pipeline scripts to reproduce model training and vector-store builds.
  • Implement model evaluation best practices - cross-validation, calibration plots, and more rigorous uncertainty quantification for the QA and digit pipelines.
  • Harden production endpoints - validate inputs, narrow exception handling, and add logging/metrics for the FastAPI endpoints.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Middle Backend Developer Confidence: Medium API Engineer
A pragmatic mid-level backend engineer focused on ML/AI pipelines and prototype service integrations. The strongest proven skill is building end-to-end ingestion and embedding pipelines for research documents, demonstrated by utils/pdf_processor.py and utils/vector_store.py which implement extraction, chunking, embedding batching and metadata tracking. The public code lacks production-grade operational concerns - tests, structured observability, hardened auth and deployment/SCIM-style controls are not evidenced.
API Design
3/10
How well APIs are designed
Basic API integration and routing are present (FastAPI endpoints referenced and a Streamlit client), but there is limited evidence of deliberate API design - no versioning, idempotency keys, standardized error contract, or pagination patterns.
Evidence
medgenai-clinical-assistant/app.py: Streamlit client calling /analyze, /ingest/pubmed and handling HTTP errors
medgenai-clinical-assistant/api.py: FastAPI endpoint signatures (QueryRequest, PubMedIngestRequest, analyze, ingest_pubmed_endpoint)
Data Layer & Database
4/10
Working with databases
A clear data-layer component handles embeddings and metadata (ChromaDB client wrapper, batching and metadata preservation), but there is no migration history, advanced transactional logic or tuned SQL.
Evidence
medgenai-clinical-assistant/utils/vector_store.py: PersistentClient usage, batch add, metadata handling and embed() batching
medgenai-clinical-assistant/utils/pdf_processor.py: chunk_text() produces traceable chunk metadata used by the vector store
Scalability & Performance
3/10
Handling load and speed
Some scalability considerations exist (batching embeddings, encode batch_size), but no queueing, rate-limited ingestion pipeline, caching/invalidation strategy or measured performance tuning.
Evidence
medgenai-clinical-assistant/utils/vector_store.py: add_chunks() adds embeddings in batches of 100 and embed() uses batch_size=32
medgenai-clinical-assistant/utils/pubmed_fetcher.py: search/fetch includes time.sleep to avoid hammering external API
System Architecture
4/10
Overall system structure
Reasonable modular decomposition - agents, graph orchestration, ingestion and utils are separated - showing conscious architecture for an agent pipeline, but service-level contracts, graceful degradation and deployment/ops patterns are not fully realized.
Evidence
medgenai-clinical-assistant/graph.py: multi-agent orchestration (should_continue, build_graph, run_pipeline)
medgenai-clinical-assistant/agents/*.py: separated agent responsibilities (document_agent, research_analyst_agent, synthesis_agent, qa_agent)
Security & Auth
2/10
Protecting data and access
Secrets are loaded via dotenv and API keys are used, but there is minimal evidence of hardened auth, token lifecycle, input validation, or explicit defenses against injection/SSRF/SQLi.
Evidence
medgenai-clinical-assistant/config.py: load_dotenv usage for configuration
medgenai-clinical-assistant/agents/qa_agent.py: uses MISTRAL_API_KEY when instantiating Mistral client
Reliability & Observability
3/10
Stability and monitoring
Basic error handling and logging via prints and try/except blocks exist across components, but there is no structured logging, correlation ids, retry/backoff strategies with jitter, metrics or health-check driven graceful shutdown.
Evidence
medgenai-clinical-assistant/app.py: try/except around API calls and timeout handling for requests
medgenai-clinical-assistant/agents/qa_agent.py: try/except around external LLM calls with fallback error state
medgenai-clinical-assistant/utils/pdf_processor.py: per-file try/except in process_directory with printed error messages
Expertise
Backend AI & LLM• Middle
Databases & Vector Storage• Middle
Microservices & API Architecture• Middle
Python• Middle
Industries
Health Care• Middle
Technologies
Python• Middle • 4y+
FastAPI
Pydantic
Uvicorn
Requests
Recommendations
  • Develop production-grade ML APIs and services - add OpenAPI contracts, versioning, idempotency keys and explicit error response schemas for the /analyze and /ingest endpoints.
  • Harden ingestion and vector pipelines - add retry/backoff with jitter, rate limiting or queue-based ingestion (Celery/RabbitMQ) and metrics around embedding throughput and latency.
  • Add observability and reliability - structured logging with correlation ids, Prometheus metrics, health endpoints and graceful shutdown handling for long-running model calls.
  • Convert prototype agents into testable components - add unit and integration tests, and CI pipelines to validate behavior and prevent regressions during model and schema changes.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories: