Skip to content

bacemhmoudi.com/en/ai-developer-tunisia

Bacem Hmoudi, Java / PHP Tech Lead in TunisBacem HmoudiJava / Spring Boot · PHP / Symfony Tech Lead

AI developer: RAG, vLLM, agents and OCR in Tunis

I put AI into production in business software. In a management software suite: OCR and classification of incoming documents, a RAG assistant that answers with its sources, self-hosted LLMs with vLLM, and AI agents acting on its APIs. I am open to a role in Paris, on site or hybrid, and to freelance or nearshore missions from Tunis.

Tunis, TunisiaTEAMWILL

What I build

AI wired into the business

The AI I care about is not a demo: it is a feature in production that reads and classifies documents, answers questions with its sources and acts inside the software the teams already use.

In a management software suite built on microservices, whose interfaces and document management I lead, AI is in production: OCR and automatic classification of incoming documents, with their data extracted; a RAG assistant that answers users’ questions from the software’s documents and content; self-hosted LLMs with vLLM; AI agents that chain actions on its APIs. I run the workshops with the client to align technology and business, one use case at a time.

The models are self-hosted and served by vLLM, so that clients’ documents stay on the infrastructure. RAG answers link back to their sources, and the agents only use the tools within their scope.

I start from the process: which document comes in, who reads it, what decision it triggers. Then I pick the simplest technique that holds: OCR and rules when they are enough, a language model when documents vary too much, RAG when the answer is in the documents, an agent when the task chains several actions.

For documents: OCR with Tesseract and OCRmyPDF, classification, barcode reading, matching each scanned document to its order and its document type, structured extraction. For RAG: document chunking, embeddings, vector search and generation with sources. For models: vLLM for self-hosted LLMs, Anthropic Claude, Mistral, Ollama, the OpenAI API and LangChain, TensorFlow for machine learning. For integration: Java / Spring Boot, Kafka and REST APIs, so that AI fits into reliable processes.

AI that is measured, controlled and under human oversight

  • Documents stay on the infrastructure

    Self-hosted LLMs, served by vLLM: clients’ documents stay on the infrastructure.

  • Answers with sources

    Every RAG answer links back to the documents it comes from: users can check before relying on it.

  • Agents within a defined scope

    An agent only uses the tools it has been given on the software’s APIs: its actions stay within a defined and controlled scope.

  • Human validation

    For data extraction, the model’s outputs are proposals: a human validates before anything is created in the system. Prompts are versioned, like code.

  • Structured outputs

    Extraction validated against JSON Schema, with one repair attempt, then checked against the document’s text and arithmetic.

  • Provider-independent

    One interface, several adapters: Anthropic, Mistral to keep data in Europe, Ollama for local models, the OpenAI API. The provider is chosen per client.

  • Costs under control

    Monthly token quotas per client and a usage log per feature, visible in the admin console.

  • Measure before rolling out

    A rule proposed by the model is kept only once validated, replayed on anonymised samples, and proven better than a rule-based version.

  • Inside reliable processes

    AI fits into enterprise workflows: approval circuits and SLAs, Kafka and a transactional outbox.

Case studies

Three uses of AI in production in the same software suite, described without client names: the context, what I built, the technologies and the result.

Classifying and reading incoming documents automatically

Automotive dealership groups

Context

A new management software suite, built on microservices, for automotive dealership groups. It receives documents that have to be sorted and whose data has to be entered: the goal is to cut that manual data entry.

What I built
  • OCR reading and automatic classification of incoming documents
  • Extraction of their useful data, to cut manual data entry
  • Integration into the software suite, alongside its document management, the partner interfaces and the document and data archiving
  • Regular workshops with the client to scope each use case
Technologies
  • OCR
  • Document classification
  • Java
  • Spring Boot
  • Microservices
  • Kafka
  • REST API
Result

AI in production in the software suite: documents classified and read automatically, to cut manual data entry.

A RAG assistant in production on a business software suite’s documents

Automotive dealership groups

Context

In a management software suite for automotive dealership groups, the answers to users’ questions are in the software’s documents and content. The goal: answer from those sources, citing them, without clients’ documents ever leaving the infrastructure.

What I built
  • Document ingestion: chunking, embeddings and indexing for vector search
  • Retrieval of the relevant passages, then a generated answer that links back to its sources
  • Self-hosted LLMs, served by vLLM: the documents stay on the infrastructure
  • The software’s access rights enforced in searches and answers
  • Integration into the software suite, alongside document OCR and classification
Technologies
  • RAG
  • Embeddings
  • Vector search
  • vLLM
  • LLM
  • Java
  • Spring Boot
  • REST API
Result

A RAG assistant in production: answers drawn from the software’s documents and content, with their sources, on models that run on the infrastructure.

AI agents acting on a software suite’s APIs

Automotive dealership groups

Context

In the same software suite, some tasks require chaining several actions on its APIs. AI agents can carry them out, provided they stay within a strict frame: using only the tools they are given.

What I built
  • Tools defined from the software’s APIs: the agents’ scope
  • Agents that chain actions on those APIs to carry out a task
  • Control over the actions: nothing outside the defined set of tools
  • Integration into the microservices software suite, through its REST APIs
Technologies
  • AI agents
  • LLM
  • REST API
  • Java
  • Spring Boot
  • Microservices
Result

AI agents in production, chaining actions on the software’s APIs within a defined and controlled set of tools.

How we work together

Three ways to work together: a role in Paris, on site or hybrid, a remote mission from Tunis, or a collaboration.

  • A role in Paris

    I am open to new Tech Lead or architect opportunities in Paris, on site or hybrid. A role elsewhere in France, in Europe or working remotely from Tunis is also possible.

  • Freelance mission

    Tech Lead or senior developer on your project, on a time-and-materials or fixed-price basis, or to strengthen an existing team: remotely from Tunis, nearshore, and on site for workshops, kick-offs and go‑lives.

  • Collaboration

    A product to launch, an architecture to rethink, AI to wire into your data, a technical partnership: we shape the setup together.

For remote work, Tunisia is on UTC+1 all year round: the same time as Paris in winter, one hour behind in summer. We can work in French or in English.

My other areas of expertise

  • Java / Spring Boot development

    Spring Boot microservices, DDD and hexagonal architecture, the web services, external APIs and document management of a software suite, a migration to Azure.

    Approach and case studies
  • PHP / Symfony development

    PHP / Symfony since 2017: the portal of a network of more than 100 dealerships migrated from Symfony 1.4 to 5, with its document management, an ERP, public sector applications.

    Approach and case studies