Emanuel Dan
EN CV

Emanuel Dan

Software developer · București · din 2009

Derulează ca să începi

Plimbă mouse-ul prin particule

01Abordare

Întâi înțeleg problema. Apoi o rezolv simplu și solid.

Fac software pentru web din 2009, iar de șapte ani lucrez la sisteme de vânzare pentru restaurante: un kiosk de comandă folosit în patru țări, ecranul din bucătărie, o aplicație pentru livrări și un front end nou pentru back office. Sunt implicat direct în decizii, de la arhitectură până la ultima linie din log-uri.

17
ani de cod scris pentru producție, din 2009
30+
branduri folosesc kioskul la care lucrez, toate pe același cod
4
țări Ungaria, Franța, Polonia și România
25+
site-uri pentru hoteluri și restaurante, plus motoare de rezervări

Sunt pragmatic, analitic și mă interesează rezultatul. Țin la calitatea și performanța a ceea ce construiesc, dar la fel de mult contează ce schimbă pentru utilizatori, pentru clienți și pentru oamenii care lucrează zilnic cu el. Prefer să fiu implicat direct în deciziile tehnice și în implementare: vreau să înțeleg cum funcționează lucrurile, nu doar să dau mai departe sarcini.

02Ce fac

Cod, debugging și deciziile din jurul lor.

01

Dezvoltare și arhitectură

Aplicații web, back end-uri, integrări și API-uri, mai ales în PHP și JavaScript, plus bazele de date din spate. Construiesc pentru termen lung, iar performanța o măsor, nu o ghicesc.

  • Un kiosk de comandă folosit de peste 30 de branduri, același cod configurat pentru fiecare client
  • Integrări cu sisteme POS, terminale de plată și imprimante fiscale
  • Un motor de reguli prin care am mutat 117 automatizări din casă în cod testat
02

Analiză și debugging

Găsesc cauza problemelor care trec prin mai multe sisteme: citesc log-uri, fac ipoteze și le testez și văd ce afectează o schimbare înainte să ajungă în producție. Soluția trebuie să rezolve problema, nu să ascundă simptomul.

  • Suport în producție, de la prima investigație până la release
  • Modificările la plăți și la partea fiscală, verificate pe configurația fiecărui client înainte să plece
  • Un banc de test care a rulat din nou cam 12.400 de evenimente, ca să dovedească faptul că o migrare n-a schimbat nimic din ce nu trebuia
03

Coordonare tehnică

Stabilesc prioritățile de dezvoltare, estimez efortul, lucrez cu echipele tehnice și pun pe masă, clar, compromisul dintre timp, complexitate și beneficiul pentru business.

  • Fiecare tichet de suport urmărit de la raportare până la release
  • Modificări planificate pe client și pe țară, ca o rezolvare pentru unul să nu strice la altul

03Kiosk

Bitsoft · din 2019

Kiosk de comandă

Aplicația de kiosk din restaurantele fast-food, folosită de mai mulți clienți. Clientul alege din meniu, își personalizează produsele, plătește cu cardul și primește bonul fiscal, iar comanda ajunge direct în casa de marcat (POS) și în bucătărie.

  • Același cod, configurat pentru fiecare client, folosit de peste 30 de branduri, printre care Burger King, Popeyes, Subway, Bellozzo și Pep&Pepper
  • Integrări cu sisteme POS, terminale de plată și imprimante fiscale, inclusiv cu regulile fiscale franceze (NF525)
  • Build-uri Electron pentru Windows și Linux, cu actualizări de la distanță
  • Teste automate care parcurg toată comanda pentru fiecare variantă de brand (Jest, Playwright)

VueQuasarElectronNode.jsJestPlaywrightDocker

04Platformă

Bitsoft · platforma pentru restaurante

În jurul kioskului

Kioskul e doar o etapă din drumul unei comenzi prin restaurant. Lucrez și la celelalte aplicații prin care trece.

  1. ComandăSite de comenzi onlinecomenzi de mâncare de pe web (o perioadă)
  2. BucătărieKDSecranul din bucătărie, în prezent
  3. LivrareDispatchaplicația pentru livrări, în prezent
  4. RapoarteBreeze Reportingaplicație Flutter pentru iOS și Android

Back office · un front end refăcut peste sistemul existent

Unelte MCP pentru suport. Servere MCP prin care agenții AI pot citi baza de date POS, ca tichetele de suport să fie investigate pe date reale.

05Casa

Personal · Home Assistant · în lucru

O casă care se descurcă singură

Casa mea ia singură decizii. Încălzește fiecare cameră separat, pornește aerul condiționat când panourile solare produc în plus, udă grădina doar dacă nu urmează să plouă, trage fiecare rulou când soarele bate în geamul lui și merge mai departe pe baterie când se ia curentul. În spate sunt 190 de dispozitive, peste 3.000 de entități și șase integrări scrise de mine în Python.

ÎncălzireFiecare zonă are rolul ei: moduri de confort, somn și eco, eco cât stă un geam deschis sau nu e nimeni în cameră, încălzire pornită dinainte după program, mod de plecat de acasă și protecție la îngheț.
Solar și aer condiționatCe produc panourile în plus decide care aparat de aer condiționat are voie să încălzească sau să răcească. Când scade soarele, aparatele se opresc pe rând, iar dacă invertorul nu mai trimite date, sistemul consideră că nu e soare.
IrigațiiPrograme pe zone, cu pompă și electrovalve. Udatul se anulează dacă se anunță ploaie sau deja plouă, iar după un restart se închid întâi toate electrovalvele.
RulouriFiecare rulou știe unde e soarele față de geamul lui: azimut, înălțime, o corecție pentru fiecare lună și temperatura maximă din prognoză. În nopțile cu îngheț se închid, iar dacă le miști de mână, regulile stau pe pauză până seara.
VremeaO integrare pentru stația meteo (Wunderground sau Tempest, citită printr-un mic server PHP) dă prognoza de ploaie pe care o folosesc irigațiile și celelalte reguli.
Curent și prezențăAlerte de la UPS și pentru tensiunea din rețea, revenire după o pană de curent, rutine la plecare și la venire acasă, tag-uri NFC, detectarea persoanelor pe camere și patru panouri pe perete, cu ecrane diferite vara și iarna.
190
dispozitive
3.066
entități
6
integrări proprii
117
automatizări mutate în cod

06Cum lucrez

Fapte înainte de păreri, pași mici înainte de salturi mari.

Când lucrurile se complică, caut întâi cauza reală, apoi cea mai simplă soluție care o rezolvă cu adevărat. Complexitatea nu e un merit în sine, așa că nu adaug mecanisme care aduc prea puțin.

Derulează în continuare: cardurile vin din lateral →

01

Pragmatic

O soluție stabilă și suficient de rapidă e de obicei mai bună decât una perfectă care costă dublu. Complexitatea trebuie să-și merite locul.

02

Întâi dovezile

Log-uri, măsurători și teste, nu impresii. Când două variante arată la fel pe hârtie, le măsor.

03

Cauza reală, apoi soluția simplă

Aflu ce s-a stricat de fapt, apoi fac cea mai mică schimbare care rezolvă problema de tot. A ascunde simptomul nu se pune.

04

Schimbări mici, reversibile

Pași mici, verificați înainte de producție, fiecare cu o cale de întoarcere. Fiecare migrare din casa mea a avut o restaurare dintr-o singură comandă.

05

Optimizare cu măsură

Performanța contează, dar o pun în balanță cu costul dezvoltării, cu mentenanța și cu ce are nevoie firma acum.

06

Pe limba tuturor

Explicații clare, fără limbaj de corporație, ca oamenii care răspund de un sistem să-l înțeleagă și să poată decide singuri.

∞

Când se strică ceva

  1. Observ Reproduc problema, strâng log-uri, metrici și ore exacte și notez separat ce e sigur și ce e doar presupunere.
  2. Fac ipoteze Scriu cauzele posibile, începând cu cele mai probabile și mai ușor de verificat.
  3. Testez Fac cel mai mic experiment care poate confirma sau elimina o cauză.
  4. Repar Rezolv cauza reală cu cea mai simplă corectură care ține, reversibilă și verificată înainte de producție.
  5. Verific Compar înainte și după și adaug un test, ca problema să nu mai apară fără să observe nimeni.

07AI

Un coleg, nu o scurtătură.

Mă atrag tehnologiile noi și automatizarea, iar AI-ul îl folosesc ca pe un partener tehnic cu care gândesc, nu ca pe o mașină de generat conținut. Vreau să lucrez mai repede fără să pierd din calitate sau control: ce scrie AI-ul trece prin același review, aceleași teste și același scepticism ca orice alt cod.

  • Să dezvolt și să fac debugging mai repede
  • Să analizez probleme tehnice complicate
  • Să automatizez partea repetitivă a muncii
  • Să compar obiectiv mai multe variante tehnice
  • Zi de zi, în fluxul de lucru: agenți de programare, servere MCP prin care citesc sistemele pe care le întrețin, lint și teste după fiecare modificare

Deschis la nou, dar atent să nu iau de bun tot ce generează.

08Carieră

Patru firme, aceeași meserie

  1. 2019 – prezent

    Senior Full-Stack Developer la Bitsoft

    Software pentru lanțuri internaționale de restaurante fast-food: kioskul de comandă, ecranul din bucătărie (KDS), o aplicație pentru livrări, front end-ul refăcut pentru back office, site-ul de comenzi online și o aplicație Flutter pentru rapoarte. Integrări cu plăți, case de marcat și sisteme POS, teste automate, release-uri și suport.

  2. 2017 – 2019

    Web Developer la Red Route Digital

    Motoare de rezervări, un CMS propriu, integrări prin API și SEO pentru hoteluri și resorturi. Peste 25 de proiecte livrate, printre care și site-ul premiat cu Best Hotel Website la eTravel Awards 2018.

  3. 2011 – 2017

    Web Developer la Expremio Technology

    Site-uri și aplicații web pentru clienți locali, mai ales lanțuri hoteliere din România, de la dezvoltare până la mentenanță pe termen lung.

  4. 2009 – 2011

    Web Developer la Tecksoft Concept

    Primele site-uri puse în producție, de la zero până la mentenanță.

09Tehnologii

Cu ce lucrez

Front endVue.jsQuasarJavaScriptHTMLCSSSassElectronMobileFlutterDart
Back endPHPLaravelNode.jsAPI-uri RESTMySQLNoSQLCalitate și livrareJestPlaywrightESLintDockerGitCI
Tehnologie pentru restauranteIntegrare POSTerminale de platăImprimante fiscaleNF525Configurare per clientAI și automatizăriAgenți AI pentru codServere MCPPythonHome Assistant

Și: SEO, WordPress · Română (nativ), engleză (C1)

10În timpul liber

Curiozitatea nu se oprește la 6.

Și după program e aceeași curiozitate, doar pe alt hardware: electronică, sisteme audio-video, automatizarea casei și infrastructura mea digitală. Îmi place să experimentez, să configurez și să îmbunătățesc sisteme complicate, iar proiectele personale le iau la fel de în serios ca pe cele de la job.

  • O casă care se descurcă singură vezi cum →
  • Rețeaua de acasă, făcută ca la un birou mic: pfSense, VLAN-uri, VPN, failover pe mai multe conexiuni
  • Eficiență energetică și panouri solare
  • Audio, video și electronică
  • Fotografie vezi galeria →
  • Snowboard și mașini

Analitic și curiosCaut explicații logice și mecanisme pe care le pot verifica.

Direct și pragmaticConcluzii clare și recomandări pe care le poți pune în practică.

IndependentVreau să înțeleg o soluție destul de bine încât să pot decide singur ce fac cu ea.

Exigent cu calitateaVăd detaliile, nepotrivirile și soluțiile făcute pe genunchi.

Mereu caut ceva mai bunDe obicei se poate și mai bine, așa că nu mă opresc din căutat.

Deschis la argumenteDacă vii cu dovezi mai bune, îmi schimb părerea. Iar puțin umor sec nu strică.

11Contact

Ai un proiect care trebuie dus la capăt?

Kioskuri, aplicații web sau mobile ori integrările dintre ele. Spune-mi la ce lucrezi și îți răspund în câteva zile.

Telefon și vCard Descarcă CV-ul LinkedIn