All services

LLM and AI integration for PHP and Symfony applications

AI integration for existing PHP applications: assistants, retrieval, structured extraction and streaming — built around cost, latency and failure modes, not demos.

The prompt is the easy part. What decides whether an LLM feature survives is everything around it: what it costs at real volume, how it behaves when the provider is slow, what happens when it returns something malformed, and how you know it got worse after a change.

That is the part I own.

What this looks like

  • In-app assistants streaming over SSE, with provider-neutral tool use so you are not rebuilding the feature when you change models.
  • Retrieval over your own content — knowledge-base lookup and live introspection of application data, rather than a model guessing.
  • Structured extraction — turning CSV, Excel, PDF and DOCX uploads into typed, validated application data.
  • Server-side model routing, role-based gating and cost budgeting, so a feature cannot quietly become your largest line item.
  • Evals — the thing that separates "we changed the prompt" from "we improved the feature".

Where I fit

I am a backend engineer who ships AI features, not an AI specialist who also writes some backend. If the feature has to live inside an existing PHP or Symfony application, talk to the person who has done the integration rather than the model work in isolation — the integration is where these projects actually fail.

Other services

Most engagements touch more than one of these.

Symfony & API development

Freelance Symfony developer, 15 years in production PHP. API Platform, REST/JSON design, third-party integration, and the tests that keep it maintainable.

Security & authentication

Symfony security consultant: OpenID Connect SSO, two-factor authentication, and role-based access control, shipped into applications that already have users.

Architecture & modernization

Moving long-lived PHP applications onto Symfony and Doctrine incrementally — container, routing, then data — while the team keeps shipping features.

Start a project

Tell me what you are working on and I will come back with a view on scope, sequence and what I would do first.