
„Razlikujemo šta je ružno od toga šta je skupo.“
Tehničko vodstvo, četiri godine: od servera koji pada do četiri smjene bez prekida
Marketing platforma za servisere kamiona u SAD-u. Preuzeli smo proizvod koji je padao na hostingu bez skaliranja i vodili ga kroz četiri tehnološke smjene — a da nijedan korisnik nikad nije vidio stranicu koja ne radi.
Američki marketplace za usluge kamionima. Preuzeli smo proizvod koji je padao na hostingu bez skaliranja, sa propustima kroz koje su prolazile SQL injection, i vodili ga četiri godine kroz četiri tehnološke smjene — PHP na Node.js i NestJS, jQuery na React i Next.js, native Android na Expo, jedan server na ECS. Nijedan korisnik u tom periodu nije vidio stranicu koja ne radi.
Prve dvije godine nismo prepisivali ništa. Stabilizovali smo zatečeno: AWS, WAF, email na SQS, slike na S3, indeksi na dvadesetak najsporijih upita. Prihod nije mogao čekati da rebuild završi. MySQL je ostao jedina fiksna tačka kroz sve četiri faze, a stare Android aplikacije radile su dok promet s njih nije pao na nulu.
Ishod: Lighthouse performanse sa 60 na 90+, SEO sa 30 na 90+, dvadeset najsporijih upita 90% brže — na platformi koja živi od organske pretrage.
Problem
Ograničenje
Šta smo uradili
Prvo stabilizovati ono što donosi novac
Dva mjeseca: prelazak na AWS, email na SQS, slike na S3, WAF ispred svega i zatvoreni naslijeđeni propusti. Dvadesetak najsporijih upita ubrzano indeksiranjem — bez ijedne linije prepisane unaprijed.
Upiti 90% bržeRebuild bez prekida — oba sistema žive uporedo
PHP zamijenjen Node.js-om pa NestJS-om sa TypeScriptom; React web, Next.js sajt, Expo aplikacije, ECS autoskaliranje. Okidači na staroj bazi prosljeđivali su izmjene u novu, a stare aplikacije radile su dok promet nije pao na nulu.
Rollback: nekoliko sekundi, CloudFrontJedan dizajn sistem za web i mobilno
Vlastita UI biblioteka: 200+ komponenti u monorepou, dijeljenih između React weba i Expo aplikacija — primitivi i forme zajednički, odvojeni samo sporedni efekti.
Web i mobilno se ne mogu razićiAI ugrađen u proces, standardi u CI
Inženjerska pravila provjerava pre-commit hook i CI: bez any, komponenta do 200 linija, tipovi na svakom API pozivu. Claude Code u svakodnevnoj upotrebi — testovi se više ne pišu ručno.
Tim radi oko 50% brže
Dva mjeseca spašavanja: prelazak na AWS (email na SQS, slike na S3, WAF ispred svega), zatvoreni sigurnosni propusti, dvadeset najsporijih upita ubrzano 90% indeksiranjem — bez ijedne linije prepisane unaprijed.
Rezultat
Ovo je bila oglasna platforma čiji kupci dolaze iz pretrage.
Šta bismo uradili drugačije
Mjerili bismo od prvog dana. Imamo Lighthouse i vremena upita, ali nemamo brojku za postavljanje oglasa prije i poslije — a to je tok koji oglašivač zapravo osjeti. Dvije štoperice u prvoj sedmici dale bi nam najbolju brojku u cijelom portfoliju.
I ranije bismo ugasili stare Android aplikacije. Čekanje da promet padne na nulu bilo je ispravno prema korisniku, ali je dvije godine držalo dvije klijentske aplikacije na istom API-ju.
- Node.js
- NestJS
- TypeScript
- React
- Next.js
- Expo
- styled-components
- MySQL
- AWS: ECS, S3, SQS, RDS, CloudFront, WAF
- Claude Code