Izrađujem brze i skalabilne aplikacije u PHP/Go/Java programskim jezicima na backendu i Nuxt/Vue na frontendu. Hajde da ideje pretvorimo u pouzdane digitalne proizvode.
Pet oblasti koje pokrivam od šeme baze do pipeline-a za isporuku.
Baze podataka
Dizajn baze i modelovanje šeme uz primenu pravila normalizacije. Optimizovani i brzi upiti sa mogućnošću obrade velike količine podataka.
Backend
Brz i skalabilan backend — PHP na prvom mestu, uz Go i Javu tamo gde priroda posla to traži — uz bezbedan dizajn API-ja i integraciju sa eksternim alatima i sistemima, po SOLID principima.
Frontend
Responzivni i korisnički prijatni interfejsi sa Nuxt-om i TypeScript-om, uz komponente za višekratnu upotrebu i Tailwind dizajn sistem, sa fokusom na UX, pristupačnost i moderne standarde.
DevOps
Pouzdana i automatizovana isporuka na namenske servere uz Docker, CI/CD pipeline i bezbedne SSH procedure — uz redovna ažuriranja i održavanje servera radi stabilnosti i optimalnih performansi.
Domeni i email
Administracija pouzdanih i bezbednih domena i email naloga kod proverenih provajdera, skaliranje i čišćenje sandučeta i primena SSL sertifikata.
Zašto ovo stoji
Dubina tehnologije i poslovna pravila ispod nje
Frejmvorci se menjaju na nekoliko godina. Ono što ostaje jeste razumevanje kako se domen zaista ponaša i kako ga održati ispravnim pod opterećenjem.
Kroz osiguranje, e-commerce, zakazivanje, fitnes i hosting, teži deo retko je bio frejmvork. Teža su bila pravila: šta se dešava sa obnovom kada plaćanje pukne na pola, između kojih stanja narudžbina sme da pređe, šta biva sa domenom kada registrar API padne u timeout nakon što je zahtev već prihvatio.
To modelujem pre nego što napišem ijedan handler. Invarijante žive u domenu, a ne razbacane po kontrolerima; prelazi stanja su eksplicitni i testabilni; granični slučajevi do kojih je biznisu stalo imenovani su u kodu, umesto da se otkrivaju na produkciji. Kada je zahtev dvosmislen, vraćam se ljudima koji ga poseduju umesto da nagađam — ta jedna navika sprečila je više grešaka nego bilo koji alat.
PHP sa Symfony-jem, Mezzio-om i Laminas-om ostaje moj najoštriji alat i mesto gde idem najdublje, a Go i Java stoje uz njega tamo gde priroda posla to traži. Oko toga: PostgreSQL i MySQL šeme projektovane da budu normalizovane i brze, Redis i Elasticsearch gde čitanje mora biti trenutno, Kafka i RabbitMQ za posao koji mora da preživi restart, i Docker i Kubernetes jer kod koji radi samo na mojoj mašini nije završen.
Produkcioni sistemi isporučeni u osiguranju, e-commerce-u, zakazivanju, HR-u, tehničkoj dokumentaciji i web hostingu.
Funkcionalnosti vođene od početka do kraja — šema, API, frontend i deploy — bez predaje na prvoj granici.
SOLID struktura, code review, CI/CD i dvonedeljni sprintovi kao podrazumevan način rada, a ne naknadna misao.
Modelovanje domena
Poslovna pravila pretvaram u eksplicitne modele i automate stanja, tako da je logika čitljiva, testabilna i teško je narušiti slučajno.
PHP prvo, polyglot kada se isplati
Najdublje u PHP-u i njegovom ekosistemu, uz Go i Javu tamo gde konkurentnost, propusnost ili postojeća platforma čine da bolje odgovaraju.
Napravljeno da izdrži
Indeksirane, normalizovane šeme, upiti koji se mere a ne pretpostavljaju, keš i redovi postavljeni tamo gde zaista skidaju opterećenje.
Isporučeno, ne samo napisano
Komotno sa stejkholderima, code review-om i pritiskom rokova — od dnevnih sastanaka do puštanja na produkciju kroz CI/CD.
Alati
Iskustvo sa
Programski jezici
PHPfokus
Go
Java
TypeScript
JavaScript
Frejmvorci
Laravel / Symfony
MezzioSwoole / Laminas(Zend)
Gin
Spring Boot
Nuxt 4
Vue 3
Tailwind CSS
SQL baze podataka
PostgreSQL
MySQL
MariaDB
NoSQL baze podataka
Elasticsearch
MongoDB
Redis
Verzionisanje koda
Git
GitLab
Bitbucket
GitHub
Message brokeri
RabbitMQ
Beanstalk
Event streaming
Apache Kafka
Alati za isporuku
Jenkins
Bamboo
Gitlab CI
Radna okruženja
Linux
Docker
Kubernetes
Karijera
Radno iskustvo
Radim preko DevTech-a kao outsource inženjer za Dogado GmbH — deo group.one grupacije, jedne od najvećih evropskih grupa za web prisustvo i hosting. Radi se o platformi na koju se hiljade korisnika oslanjaju svakodnevno, pa su ispravnost, kompatibilnost unazad i pažljivo puštanje izmena važniji od same brzine isporuke.
Najveći deo mog rada tamo pokrivaju dve oblasti:
Hosting platforma i control panel: Razvoj i održavanje korisničkog dela za upravljanje nalozima i servisa iza njega — provisioning, ograničenja resursa i automatizacija koja održava pakete, nadogradnje i otkazivanja usklađenim između control panela i same infrastrukture.
Domeni, DNS i SSL: Registracija, transferi i obnove domena preko registrar API-ja, upravljanje DNS zapisima i izdavanje i obnavljanje SSL sertifikata — oblast puna asinhronih stanja, otkaza third-party servisa i pravila kod kojih se korisnički domen nikada ne sme tiho izgubiti.
Radio sam kao Backend Developer na sistemu postavljenom na Kubernetes-u i zasnovanom na mikroservisnoj arhitekturi za klijenta iz oblasti osiguranja (Real Garant GmbH Garantiesysteme, Denkendorf), fokusirajući se na stabilnost sistema, performanse i bezbednost. Razvijao sam i održavao funkcionalnosti koristeći čist, dobro strukturiran kod u skladu sa SOLID principima. Sarađivao sam sa DevOps i QA timovima u CI/CD okruženju kako bih osigurao pouzdanu isporuku verzija, uz učešće na dnevnim sastancima i isporuku funkcionalnosti u dvonedeljnim sprintovima.
Pored projekata iz oblasti osiguranja, radio sam kao Web Developer na razvoju i održavanju projekata iz raznih drugih oblasti:
Fitnes i društvene mreže: Razvijao sam API-je i backend servise za platformu baziranu na fitnesu, omogućavajući upravljanje korisničkim profilima, deljenje sadržaja, čet u realnom vremenu i personalizovano praćenje treninga.
Sistemi za zakazivanje: Kreirao sam module za bukiranje, pregled dostupnosti i plaćanje na platformama fokusiranim na zakazivanje termina i upravljanje podacima o uslugama i objektima, sa podrškom za vremenske zone i integracijom kalendara.
Webshop platforma: Aktivno sam razvijao osnovne e-commerce funkcionalnosti: upravljanje katalogom proizvoda, funkcionalnost korpe, obradu narudžbina i integraciju plaćanja, uz fokus na optimizaciji performansi, sigurnosti transakcija i boljem korisničkom iskustvu.
HR platforma: Razvijao sam funkcionalnosti za onboarding proces zaposlenih, planiranje smena, praćenje sertifikata i evidenciju prisustva, uz obezbeđenje usklađenosti sa standardima vazduhoplovne industrije i internim bezbednosnim protokolima.
Sistem za tehničku dokumentaciju: Izradio sam centralizovano rešenje za upravljanje priručnicima za održavanje, servisnom evidencijom i tehničkim biltenima, sa verzionisanjem dokumenata, kontrolom pristupa i pretragom za podršku svakodnevnim operacijama i revizijama.
Bio sam odgovoran za praćenje izvršenja projekta od planiranja do isporuke, obezbeđujući da se zadaci završavaju na vreme, u okviru definisanog obima i u skladu sa očekivanjima.
Pratio sam napredak projekta koristeći interni alat za upravljanje zadacima, pratio rokove i proaktivno identifikovao potencijalna kašnjenja ili rizike.
Organizovao sam dnevne i nedeljne sastanke tima radi pregleda statusa, razjašnjenja prioriteta i uklanjanja prepreka u radu.
Održavao sam stalnu i transparentnu komunikaciju sa spoljnim izvođačima u vezi sa statusom projekta, rokovima, izmenama obima i ciklusima povratnih informacija.
Usko sam sarađivao sa ostalim zainteresovanim stranama kako bih uskladio isporuke sa ciljevima projekta.
Vodio sam računa da su sva dokumentacija, povratne informacije i zahtevi pravilno zabeleženi i upisani u sistem za upravljanje zadacima.
Obrazovanje
Obrazovanje
Diplomirani inženjer mašinstva
Univerzitet odbrane
09.2015 — 06.2019
Pisanje
Najnoviji članci
Skorašnji tekstovi o backend arhitekturi, frontend zanatu i isporuci.
Securing a dedicated server that you manage over SSH involves layering multiple defenses: strong authentication, a locked-down configuration, a firewall, and intrusion detection with alerting. This guide walks through the full process step by step, from creating a non-root user to setting up Fail2ban with email notific
Svi reprezentativni projekti na kojima sam do sada radio su u privatnom vlasništvu i njihov kod nije javno dostupan. Većina njih takođe nema javnu web adresu i može se pristupiti samo unutar određene organizacije ili preko odgovarajuće VPN konekcije.