Dragi frontend programeru,
"Reč, dve" o našem softveru…
Postojeći softver za poslodavce je dobro poznat u HR krugovima domaćih kompanija, ali smo mi uvek gladni modernizacije i inovativnosti pa kuvamo nešto novo.
Šta čini ovaj software modernim i inovativnim?
S obzirom na to da želimo našim klijentima na što bolji i brži način da prikažemo podatke koje traže, odlučili smo da koristimo ReactJS. Kako je naš proizvod po definiciji SaaS ka krajnjem korisniku, tako je i interno napisan kao sistem koji podeljen na mikro servise. Ova SPA React aplikacija komunicira sa pozadinskim servisima koristeći moderan GraphQL u kombinaciji sa ponekim REST endpoint-om. Koristeći moderne funkcionalnosti browsera, naša aplikacija je dostupna uvek, čak i u slučaju one tužne poruke “Nemate Internet”. Da bi aplikacija izgledala lepo koristimo styled-components što nam dozvoljava da brzo i jednostavno menjamo izgled komponenti a i cele aplikacije.
... a zašto je pouzdana?
Sve vreme izvršavanja aplikacije stanjem se upravlja kroz Redux, a objekti su Immutable. Ovako se smanjuje mogućnost pojave nepredviđenih situacija a povećavaju performanse React aplikacije.
Kako korisnici ostaju zaštićeni tokom korišćenja ovog software-a?
Naša odgovornost prema sigurnosti podataka, ali i dolazak GDPR-a, naveli su nas na OAuth2 kao sistem za autentifikaciju i autorizaciju resursa, kako eksterno prema našim korisnicima, tako i interno između naših servisa.
A kako sve to radi zajedno sa backendom?
Sve ovo se vrti na Kubernetes klasteru u obliku Docker kontejnera. A kontejnerizovane aplikacije same izlaze sa trake našeg automatizovanog Jenkins build procesa koji vodi računa da sve što programeri napišu i sačuvaju u lokalni GitLab, zaista i radi kako treba pre nego što završi u rukama naših klijenata. Metodologija kojom se vodimo je 12factor.net koja nam omogućava fleksibilnost u radu i da uvek izaberemo odgovarajući alat za svaki posao.
Ovo mi deluje komplikovano, kako ću se ja snaći ovde?
U timu radi ekipa koja sve vreme zajedno uči i usavršava se. Projekat smo počeli kao početnici u nekim tehnologija, ali zajedničkih radom smo se međusobno gradili. Code review, refaktorizacija, dokumentacija, testiranje i analiza koda su svakodnevni posao našeg tima. A što sami ne znamo da rešimo, za to pronađemo obuke i pokupimo znanje od onih koji ga imaju više.
Dosta o nama, haj’mo sad o tebi…
Navedene tehnologije nisu striktno zakucane, već predstavljaju mogućnost za tebe da se pronađeš u nekom nivou našeg stacka.
Bilo bi dobro da:
- Znaš JavaScript (ES6) na naprednom nivou. ReactJS je ono što se radi, ali ne gadimo se ni na Angular developere
- Razumeš koncepte immutability i Redux store-a
- Znaš CSS/LESS (ne moraš biti dizajner, koristimo framework, ali moraš da znaš da ga modifikuješ po potrebi)
- Znaš GraphQL, a ako ne znaš naučićemo te
- Koristiš Git. Ko još ne zna da koristi Git?
Srdačno,
senior programer