v8.0 · 8 ans en production, maintenant des agents IA en plus

Je construis des outils alimentés par l'IA sur 8 ans d'expérience fullstack en production.

Ingénieur fullstack senior (PHP / Laravel / Flutter). J'apporte aujourd'hui le SDK Claude et les LLM open-source aux problèmes e-commerce et PME que je résous depuis presque une décennie.

$ npm i @anthropic-ai/sdk·Disponible en CDI remote et freelance·FR / EN
app/api/agent/route.ts
import Anthropic from "@anthropic-ai/sdk";

const claude = new Anthropic();

const reply = await claude.messages.create({
  model: "claude-opus-4-7",
  tools: shopTools,        // search_orders, refund...
  system: shopContext(),   // catalog, policies, FAQs
  messages: [{
    role: "user",
    content: "Last week's PrestaShop refunds over €100?",
  }],
});

// → agent reasons, calls tools, returns the answer.
AiSupportController.php
// app/Http/Controllers/AiSupportController.php

public function ask(Request $request): JsonResponse
{
    $answer = $this->claude->messages()->create([
        'model'    => 'claude-sonnet-4-6',
        'system'   => $this->shopContext(),
        'tools'    => $this->shopTools(),
        'messages' => [
            ['role' => 'user', 'content' => $request->prompt],
        ],
    ]);

    return response()->json(['answer' => $answer->content]);
}
claude_scorer.py
# career_os/scorer/claude_scorer.py

def score_job(job: Job) -> JobScore:
    prompt = render_scorer_prompt(job, profile=USER_PROFILE)

    resp = claude.messages.create(
        model="claude-sonnet-4-6",
        system=SYSTEM_PROMPT,
        messages=[{"role": "user", "content": prompt}],
        max_tokens=512,
    )

    return parse_score(resp.content[0].text)
    # → {"fit": 87, "pros": [...], "cons": [...], "angle": "..."}
career-os · cli
$ career-os fetch
  ✓ 224 jobs from 3 sources

$ career-os score
  ✓ scored 224 jobs · top fit: 92

$ career-os draft
  ✓ drafted 4 outreach emails

$ career-os digest --send
  ✓ sent to me@bak-dev.com
0
annees_en_production
Je livre en PHP / Laravel / Flutter depuis 2018.
0
stacks_actives
PHP · Laravel · Flutter · Vue · Python — rotation quotidienne.
0h
temps_de_reponse
Première réponse · email & LinkedIn · jours ouvrés.
// intégrations

La stack avec laquelle je travaille au quotidien

Anthropic
OpenAI
Ollama
Hugging Face
Laravel
PHP
Python
PrestaShop
Flutter
Dart
Vue
Next.js
TypeScript
Tailwind
Firebase
SQLite
// ce que je construis

Du prompt à l'endpoint en production.

Je ne vous laisse pas avec un notebook et un vœu. Je livre toute la stack autour du modèle — APIs typées, queues, observabilité, déploiements.

01

Brancher l'IA sur votre stack existante

Brancher Claude ou un LLM open-source à votre app Laravel / PrestaShop / Vue / Flutter, sans réécriture. Tool use, prompt caching, sortie structurée — des patterns éprouvés en production.

app/api/agent/route.ts
import Anthropic from "@anthropic-ai/sdk";

const claude = new Anthropic();

const reply = await claude.messages.create({
  model: "claude-opus-4-7",
  tools: shopTools,        // search_orders, refund...
  system: shopContext(),   // catalog, policies, FAQs
  messages: [{
    role: "user",
    content: "Last week's PrestaShop refunds over €100?",
  }],
});

// → agent reasons, calls tools, returns the answer.
02

Construire la couche contrôleur qui le gère

Huit ans de PHP/Laravel en production. Je conçois l'endpoint, la queue, les rate limits et les modes de défaillance — pas seulement le prompt.

AiSupportController.php
// app/Http/Controllers/AiSupportController.php

public function ask(Request $request): JsonResponse
{
    $answer = $this->claude->messages()->create([
        'model'    => 'claude-sonnet-4-6',
        'system'   => $this->shopContext(),
        'tools'    => $this->shopTools(),
        'messages' => [
            ['role' => 'user', 'content' => $request->prompt],
        ],
    ]);

    return response()->json(['answer' => $answer->content]);
}
03

Livrer le système d'agent complet

Career-OS en est l'exemple : scrapers Python, scorer Claude avec prompt caching, store SQLite, drafter d'outreach, CLI. Sous licence MIT, chaque commit public.

claude_scorer.py
# career_os/scorer/claude_scorer.py

def score_job(job: Job) -> JobScore:
    prompt = render_scorer_prompt(job, profile=USER_PROFILE)

    resp = claude.messages.create(
        model="claude-sonnet-4-6",
        system=SYSTEM_PROMPT,
        messages=[{"role": "user", "content": prompt}],
        max_tokens=512,
    )

    return parse_score(resp.content[0].text)
    # → {"fit": 87, "pros": [...], "cons": [...], "angle": "..."}
// pourquoi moi spécifiquement

Pas un "prompt jockey", pas une agence générique.

CapacitéAgence IA génériquePrompt engineer soloTravailler avec Akram
8+ ans en production
Domaine e-commerce / PME réel (PrestaShop, Laravel)
Prise en charge end-to-end (pas seulement les prompts)
SDK Claude + LLM open-source (Ollama, vLLM)
Construit en public — code sur GitHub
Bilingue français / anglais
Ligne directe, pas de couche commerciale
Je construis actuellement

Career-OS — un tableau de bord à base d'agents IA, en public.

Scrape les opportunités remote et freelance, score le fit avec Claude, rédige les outreach, suit le pipeline de bout en bout. Python, SDK Claude, SQLite. Sous licence MIT.

pythonclaude-sdksqliteclimit
akrambak/career-os
# quick start
$ pip install -e ".[dev]"
$ career-os fetch
$ career-os score
// prenez contact

Construisons quelque chose ensemble.

Vous recrutez un fullstack / ingénieur IA senior, ou vous avez besoin d'un agent SDK Claude greffé sur votre stack e-commerce ? Envoyez-moi le brief.

ou envoyez un email à me@bak-dev.com
Akram Bakhouche — Fullstack + AI engineer for e-commerce & SMBs