Sari la conținut
Alexandru Lungu
Cum lucrez

Viteza AI, susținută de ingineria necesară unei livrări sigure.

Lucrez cu AI în proces din 2024. Primul proiect construit de la un capăt la altul cu un agent de programare a fost SocioHR Play, în 2025, folosind Google Antigravity. În timpul dezvoltării Timber Logistic am trecut la Claude Code, iar astăzi folosesc zilnic Claude Code și OpenAI Codex, cu Antigravity atunci când este utilă o a doua opinie. Agenții sunt conectați la aceleași instrumente pe care le folosesc și eu: git, interfețele CLI Firebase și Supabase și servere MCP pentru baza de date, browser și mediul de publicare.

Aceasta nu este partea cea mai interesantă. Oricine poate genera cod acum. Diferența dintre un produs și o sursă de probleme o face tot ceea ce înconjoară generarea: instrucțiunile primite de agent, limitele lui și condițiile care trebuie îndeplinite înainte ca munca să fie acceptată. Acolo se află ingineria și acestea sunt lecțiile reale ale ultimilor doi ani.

Cronologie
2024
Primele proiecte asistate de AI: Clinica Naturell, un produs pentru client pe care îl întrețin în continuare.
2025
SocioHR Play: primul proiect construit integral cu un agent de programare, folosind Google Antigravity.
Iun 2026
Timber Logistic: trecerea la Claude Code; instrucțiunile la nivel de repository și verificările automate devin standard.
Acum
Claude Code și Codex zilnic, Antigravity ocazional. Șase sisteme în producție, toate construite în acest mod.

01

Repository-ul conține propriile instrucțiuni de operare

Fiecare proiect are un fișier CLAUDE.md sau AGENTS.md: regulile pe care agentul nu are voie să le încalce, comenzile care dovedesc că o modificare funcționează și deciziile deja luate. Un fișier NEXT-SESSION.md transferă starea reală către sesiunea următoare: ce este publicat, ce rămâne blocat și ce nu a fost încă testat. Un agent care pornește fără context citește aceste instrucțiuni înainte de a modifica ceva.

Unde se vede: Timber Logistic păstrează lista pentru ziua lansării separat de backlog, deoarece mai multe puncte pot părea rezolvate fără să fie verificate în realitate.

02

Nimic nu este acceptat doar pe cuvântul agentului

Fiecare repository are o comandă de verificare: tipuri, lint, teste, build și auditul dependențelor. CI o rulează la fiecare push. Pentru proiectele cu bază de date, testele includ chiar proprietatea de securitate: două conturi reale confirmă că niciunul nu poate citi datele celuilalt, iar contul demo apelează funcția de ștergere și așteaptă un refuz. Dacă o garanție contează, există un test care eșuează clar atunci când ea nu mai este valabilă.

Unde se vede: FoodBoard: 193 de teste. Kinetiq: 34, inclusiv afirmațiile de accesibilitate din README. Timber Logistic: CI decodează fiecare JWT din bundle și eșuează dacă găsește o cheie de serviciu.

03

Baza de date menține limita de siguranță

Agenții scriu rapid cod pentru client, iar un filtru după proprietar poate dispărea prin omiterea unei singure condiții. De aceea autorizarea se află în politicile RLS din Postgres și în regulile Firestore. Clientul nu poate formula o interogare care traversează limitele dintre utilizatori. Această arhitectură permite agentului să se miște rapid în interfață: efectul unei greșeli rămâne o pagină defectă, nu un incident de securitate.

Unde se vede: Timber Logistic: RLS pe toate cele 20 de tabele, fiecare schimbare de stare prin proceduri SECURITY DEFINER și nicio politică UPDATE generică.

04

Testele descoperă erorile agentului și o fac în mod real

Două exemple recente: procesul de prerandare pentru previzualizarea meniurilor serializa descrierea restaurantului într-un bloc JSON-LD inline, iar testul a arătat că textul literal </script> putea închide blocul prea devreme. În alt caz, butonul de ștergere al contului demo era ascuns în antet, ceea ce ținea doar de prezentare, până când un test care a apelat efectiv funcția RPC a impus protecția în baza de date. Ambele probleme au fost descoperite prin scrierea unei aserțiuni, nu doar prin citirea codului.

Unde se vede: Ambele remedieri apar ca modificări separate în istoricul public FoodBoard, cu explicația deciziei în mesajul commit-ului.

05

Onestitatea este o funcționalitate a livrabilului

Fiecare README are o secțiune Known limitations scrisă direct, deoarece tocmai acele puncte merită discutate într-o evaluare. Un flux de plată a fost prezentat ca blocat până în ziua în care a devenit activ. Fereastra de actualizare a unui demo este exprimată în ore. Orice număr de pe acest site are o dată. Viteza oferită de AI are valoare numai dacă persoana care primește produsul poate avea încredere în descrierea lui.

Unde se vede: README-ul FoodBoard explică decizia arhitecturală pe care aș schimba-o dacă aș reconstrui proiectul și motivul acestei alegeri.

06

Vizibilitatea în motoarele de căutare și de răspuns este livrată odată cu produsul

Fiecare proiect destinat publicului primește o optimizare tehnică SEO și GEO adaptată arhitecturii sale. Aceasta include HTML indexabil atunci când o aplicație randată doar pe client nu este suficientă, titluri și descrieri specifice fiecărei rute, URL-uri canonice, sitemap-uri, reguli pentru roboți, date structurate și previzualizări pentru linkuri. Conținutul este organizat astfel încât motoarele de căutare și cele de răspuns să poată identifica produsul, publicul, capabilitățile și dovezile fără să ghicească dintr-un bundle JavaScript.

Unde se vede: FoodBoard prerandează câte o pagină distribuibilă pentru fiecare meniu, cu JSON-LD și sitemap. Clinica Naturell prerandează rutele serviciilor. Acest portofoliu publică metadate canonice și hreflang pentru engleză, română și rusă.

Instrumente

Ce folosesc efectiv în lucru.

Nu am construit încă un server MCP propriu. Folosesc servere MCP, dar nu am livrat unul.

Agenți
  • Claude Code
  • OpenAI Codex
  • Gemini Antigravity
Conexiuni
  • Model Context Protocol servers
  • git
  • Firebase CLI
  • Supabase CLI and MCP
  • GitHub Actions
  • headless browser
Dezvoltare
  • TypeScript
  • React 19
  • Vue 3
  • Vite
  • Next.js
  • Tailwind CSS
  • Vitest
  • Vue Test Utils
Date
  • PostgreSQL - RLS, triggers, pg_cron, SECURITY DEFINER
  • Supabase
  • Firebase - Firestore, Auth, Storage, Functions
  • Cloudinary
Operare
  • GitHub Actions CI/CD
  • Firebase Hosting
  • Cloudflare - DNS, Email Routing, Turnstile, SPF/DKIM
  • Google Workspace
  • Sentry
  • technical SEO and GEO
  • build-time prerendering
  • JSON-LD and sitemaps
Domeniu
  • Netopia card payments
  • Oblio and e-Factura/ANAF invoicing
  • GDPR and ePrivacy consent
  • EU DSA Article 16
  • MQTT and InfluxDB