Tehnološki Stack
Naš tehnološki pejzaž
Tehnologije prikazane ispod najčešće koristimo kroz naše projekte, pri čemu Java i JVM ekosistem čine značajan deo našeg razvoja aplikacija. Naš rad nije ograničen na ovaj stack; izbor tehnologija zavisi od sistema, njegovih zahteva i problema koji treba rešiti.
Inženjering aplikacija
Java i Spring Boot čine značajan deo našeg rada na razvoju aplikacija, uz Kotlin, Android i Swift tamo gde to zahtevaju platforma i sistem. Gradimo i razvijamo backend servise, API-je, konkurentne workload-e, distribuirane aplikativne komponente i mobilne aplikacije, uz arhitektonske odluke zasnovane na ponašanju u runtime-u, korišćenju resursa i operativnim zahtevima.
Podaci, AI i računarski sistemi
Python koristimo za analizu podataka, modelovanje i specijalizovane računarske workload-e, uključujući sisteme za energetiku i pametne elektroenergetske mreže. Naš rad obuhvata i neuronsko računarstvo, mašinsko učenje, physics-informed pristupe i druge računarske metode tamo gde softver treba da odražava kompleksno ponašanje domena. C++ i druge specijalizovane tehnologije koristimo kada karakteristike workload-a ili zahtevi performansi to opravdavaju.
Podaci i perzistencija
PostgreSQL je često naš primarni relacioni izbor, dok Oracle i MySQL ostaju relevantni kada postojeći sistemi ili specifični zahtevi to nalažu. Radimo i sa MongoDB, Cassandra, Neo4j i Elasticsearch tehnologijama kada dokumentno, distribuirano, grafovsko ili pretraživačko opterećenje opravdava drugačiji model perzistencije.
Razmena poruka i distribuirani sistemi
Kafka, RabbitMQ i Redis koristimo u skladu sa ulogom koju imaju u sistemu — od event streaminga, CDC-a i asinhrone obrade do work queue-ova, koordinacije, keširanja i distribuiranog stanja sa malom latencijom. Razmenu poruka i konkurentno izvršavanje projektujemo uzimajući u obzir semantiku isporuke, redosled, backpressure, ponašanje pri otkazu i operativnu vidljivost.
Infrastruktura i runtime
Kubernetes, containerd, Terraform i Linux čine značajan deo našeg rada na infrastrukturi, od deklarativnih okruženja i kontejnerizovanih workload-a do isporuke i rada sistema. Infrastrukturu tretiramo kao deo sistemskog inženjerstva, uz pažnju posvećenu ponašanju resursa, odstupanjima u konfiguraciji, ograničavanju posledica otkaza, operativnoj vidljivosti i ponovljivoj isporuci.
Tehnologija je deo arhitekture
Izbor tehnologija treba da prati sistem, a ne obrnuto. Ako procenjujete novi stack, razvijate postojeću platformu ili se suočavate sa tehničkim ograničenjima koja zahtevaju dublje inženjerstvo, možemo razgovarati o sistemu i odlukama koje stoje iza njega.