Blog

Blog je mesto gde možeš da čitaš o navikama IT-evaca, najavama IT dešavanja, aktuelnostima na tržištu, savetima i cakama kako da uspeš na ovom dinamičnom polju.
Mi pratimo trendove, na tebi je da se zavališ u fotelju i čitaš :)

Blog Angular
Tag: Angular (36 rezultata)
07.09.2023. ·
7 min

How I made the Spring Boot startup analyser

It's no secret that Spring applications can sometimes freeze at startup. This is especially noticeable as a project develops: the new service starts quickly and shows great responsiveness, then it acquires some serious functionality, and the final distribution package swells by dozens of megabytes. Now, to simply launch that service locally, you have to wait for half a minute, a minute, two... At such moments of waiting, the developer may ponder: why on Earth is it taking so long? What’s going on? Maybe I shouldn't have added that particular library? Hi, my name is Alexey Lapin, and I am a Lead Developer at Luxoft. In this article, I’ll talk about a web application for analysing the startup phase of Spring Boot services, which uses data from the startup actuator endpoint. This tool may help answer the questions above. Foreword I made this application for myself to understand a new Spring module that I hadn't seen before and practice on the front end. I saw various solutions on the internet, but they either did not work or have not been updated for a long time, and I wanted to create an up-to-date auxiliary tool for the Spring Boot functionality. Spring Boot Startup Endpoint Starting with version 2.4, Spring Boot has an ApplicationStartup metric that records events (steps) that occurred during the service startup and an “actuator endpoint” that makes a list of these events. Here's what it looks like: {     "springBootVersion": "2.5.3",     "timeline": {         "startTime": "2021-09-06T13:38:05.049490700Z",         "events": [             {                 "endTime": "2021-09-06T13:38:05.159435400Z",                 "duration": "PT0.0898001S",                 "startTime": "2021-09-06T13:38:05.069635300Z",                 "startupStep": {                     "name": "spring.boot.application.starting",                     "id": 0,                     "tags": [                         {                             "key": "mainApplicationClass",                             "value": "com.github.al.realworld.App"                         }                     ],                     "parentId": null                 }             },             ...             {                 "endTime": "2021-09-06T13:38:06.420231Z",                 "duration": "PT0.0060049S",                 "startTime": "2021-09-06T13:38:06.414226100Z",                 "startupStep": {                     "name": "spring.beans.instantiate",                     "id": 7,                     "tags": [                         {                             "key": "beanName",                             "value": "org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory"                         }                     ],                     "parentId": 6                 }             },             ...         ] ….} } A detailed description of all message fields can be found in the Spring Boot Actuator documentation, but I think it’s all in all pretty straightforward. The event has an “id” and a “parentId”, which allows one to have a tree view. There is also a “duration” field, which shows the time spent on the event + the duration of all associated events combined. The “tags” field contains a list of event attributes, such as the name or class of the generated bean. To enable the collection of data on load events, you must pass an instance of the BufferingApplicationStartup class to the setApplicationStartup method of SpringApplication. In this case, a constructor is used that accepts the number of events to record. All events above this limit will be ignored and will not be included in the startup endpoint’s output. @SpringBootApplication public class App {     public static void main(String[] args) {         SpringApplication application = new SpringApplication(App.class);         application.setApplicationStartup(new BufferingApplicationStartup(1000));         application.run(args);     } } By default, this endpoint has a path of /actuator/startup and supports GET methods for receiving events and POST for receiving events and clearing the buffer, so subsequent calls to this endpoint will return an empty list of events Okay, let's go. We will consider the information provided by the startup endpoint as our data for analysis. The analyser web application is a single-page application (SPA) without a back end. It works like magic: you just need to upload the events that occurred during the service startup, and it will visualise them. The uploaded data is neither transferred nor stored anywhere. I chose Typescript as my go-to programming language, as it seemed like a better option for a Java developer compared to Javascript due to its strong typing and object-oriented programming features. I found it very easy to switch from Java to Typescript and quickly write a working code. As my UI framework, I chose Vue.js 3. To be clear, I have nothing against React, Angular and other front-end frameworks, but at that time Vue.js seemed like a good option due to the low entry threshold and excellent preset tools. Then it was time to choose the component library. It needed to be compatible with Vue.js 3 and have components for working with tables. I considered Element Plus, Ionic Vue, and Naive UI, but due to the availability of customisable components for working with tables, I ended up using the PrimeVue library. The application has a navigation bar with Analyser elements (this is the main screen of the application), Usage (user instructions) and a link to the project's GitHub repository. The main page of the application displays a form for entering data, which can be done in three different ways. The first way is to put a link to the deployed Spring Boot service. In this case, an HTTP request will be made to the specified endpoint and the data will be uploaded automatically. This method is applicable for cases when the service is available from the internet or is deployed locally. Note that loading by url may require additional service configuration in terms of CORS headers and Spring Security. The second and third ways are loading a JSON file or its actual content. The deployed application is located at https://alexey-lapin.github.io/spring-boot-startup-analyzer/ For the analyser demo, I used my own Spring Boot service deployed on Heroku. This service implements the back end of the RealWorld project. The desired endpoint can be found at https://realworld-backend-spring.herokuapp.com/actuator/startup. The service is configured to send correct CORS headers to GET requests from the analyser. Once you load the events using one of the specified methods, the data is visualised in a tree structure. Note that all rows that have child items are hidden. To navigate through this tree, you can use the “>” icons to the left of the item ID, or expand/hide all rows simultaneously using the Expand All / Collapse All buttons. If there are many events, it may take some time to render the expansion of all rows. In the table view, all events are displayed at once. All columns, except for Tags, can be sorted. CI + hosting On one of the previous projects, I was involved in the global DevOps transformation of our client and worked on automating the release cycle processes and building CI/CD pipelines. It was an interesting experience, which now helps me to resolve issues related to writing the source code of products. In this case, as with most of my open-source software projects, I used GitHub as my git hosting, as it provides many useful tools for CI, artefact storage, documentation, project management, static site hosting, etc. For the needs of the analyser, I specifically used Actions and Pages. GitHub Actions is configured to run a workflow on events like “pull request”, “commit to master”, and “push a tag”. Pushing a tag will also deploy the assembled project to GitHub Pages, as well as build the Docker image and send it to Docker Hub. In addition to the analyser’s public instance on GitHub Pages, you can use the Nginx-based Docker image. The latter can be useful, for example, for those cases when Spring Boot services are located on the organisation's internal network, from which there is no internet access, but Docker is available and it is possible to load the image. To start the container, run the following command: docker run -d --name sbsa -p 8080:80 lexlapin/spring-boot-startup-analyzer If you need to access this container through a reverse proxy, then pass the path through the environment variable: (UI_PUBLIC_PATH): docker run -d --name sbsa -p 8080:80 -e UI_PUBLIC_PATH=/some-path lexlapin/spring-boot-startup-analyzer Things to improve In the future, I plan to refine the screen with the analysis results. Plus, it would be useful to add a tab with a summary of event types, their number and total elapsed time, such as the number and total time spent to create beans. Another possible feature is building charts on short pivot tables — especially since PrimeVue provides such an opportunity through the Chart.js library. In tree view and table view, colour coding can be done to highlight long events. Additionally, it is worth adding event filtering — for example, by type. Conclusion The proposed analyser allows one to conveniently visualise the data received from the startup actuator endpoint, estimate in detail the time spent on various types of events that occur during the service startup, as well as generally process startup information more efficiently. The application has a public instance on GitHub Actions and is also available as a Docker image. This application was successfully used on one of Luxoft’s projects to analyse the loading of slowed-down services and helped to detect several classes with suboptimal logic in the constructors.

HelloWorld
1
13.04.2023. ·
5 min

3 digitalne veštine koje će biti najtraženije u 2023.

Sajber bezbednost, kodiranje i upravljanje podacima su veštine koje kompanije vrednuju poput zlata, a potražnja za njim će u 2023. samo nastaviti da raste. Potražnja za digitalnim veštinama znatno se ubrzala u 2022. godini zahvaljujući sve većem broju kompanija koje su počele da se oslanjaju na tehnologiju kako bi inovirale svoje proizvode i spremile svoje poslovanje za budućnost. Sa druge strane, dostupnost zaposlenih sa ovim veštinama nastavlja da se smanjuje. Uprkos tome što će rizik od recesije pojedine kompanije sprečiti da dalje šire svoje timove kako bi optimizovale svoje poslovanje, efekat tih odluka na zapošljavanje tehnološkog kadra biće relativno mali. Čak i u ekonomski nestabilnim vremenima, tehnologija nastavlja da bude prilično bezbedno mesto. Jedan od sektora koji prosto vape za talentovanim radnicima jeste sajber bezbednost. Broj otvorenih pozicija u ovom sektoru između 2013. i 2022. godine porastao je za 350 odsto, sa jednog miliona na 3.5 miliona. Organizacije koje ne obraćaju pažnju na sajber bezbenost stavljaju sebe u prilično ranjivu poziciju kada su u pitanju sajber napadi i rizikuju gubitak profita i reputacije u očima korisnika. Sa druge strane, vrlo lako je okružiti zaposlene najnovijim firewall tehnologijama i anti-virus softverom, ali tek kada ih kompanije nauče da štite svoje onlajn identitete, mogu da kultivišu jaku kulturu sajber bezbednosti. Davno su prošli dani kada su zaposleni mogli da koriste ime svog ljubimca kao lozinku, uz nekoliko brojeva i karaktera na kraju. Ni najboljli bezbednosni softver ne može da uradi puno ako zaposleni nisu dovoljno edukovani. Velika potražnja za programerima Kodiranje i dalje nastavlja da bude jedna od najtraženijih profesija. Broj oglasa za pozicije data inženjera je u poslednje tri godine porastao za 116%, dok za kompjuterske analitičare taj broj iznosi 72 odsto, uz prilično stabilnu potražnju za developerima koji poseduju C#, C++, Angular, Node, Java, Google Cloud i Azure znanje. Sudeći po podacima koje je objavio hackajob, Java programeri obezbedili su sebi najbolju proporciju ponuda za posao i čine 15.8% svih zaposlenih između 2021. i 2022. godine. Odmah iza su C# developeri (15.3%), DevOps profesionalci (10.8%) i JavaScript programeri (10.6%). U poslednje vreme pojavljuje se i sve veći broj developera koji navode Golang u svojim CV-jevima, ne kao komercijalnu veštinu, već kao nešto što su savladali u svoje slobodno vreme. To može dovesti do određenih promena koje bi Golang mogle da, sa prostog interesovanja, pretvore u ključnu veštinu. Usled velike potražnje, visoke plate, bonusi i deonice su samo neke od stvari koje developeri očekuju pre dolaska u neku kompaniju, a vrlo često se može desiti i da ih odbiju ako im cifre nisu baš po volji usled velike potražnje. Posebno se izdvaja DevOps pozicija zbog centralne uloge koju ima u ubrzavanju puta kompanija do softverske vrednosti, menadžerskih sposobnosti i razumevanja operacija. Savladavanjem modernih procesa isporuke softvera, developeri mogu da pokažu da pružaju dodatnu vrednost i sposobnost da se suoče sa svim poslovnim izazovima koje kompanija može da ima. Novi tip softverskog developera? Kako se razvoj softvera ubrzava, uz sve veći uticaj AI tehnologije na programiranje, uloga softverskog developera se menja. AI menja svet programiranja na isti način na koji su digitron i kompjuter to uradili. Tehnološki napredak polako na sebe preuzima neke od najzamornijih poslova na koje su developeri trošili svoje vreme. Oni sada mogu da posvete više vremena većoj slici i rešavanju kritičnih problema. Brzi rast novih tehnologija neće samo promeniti način na koji ljudi rade, već i veštine potrebne da se napreduje u digitalnoj ekonomiji. Potreba za ljudima koji poseduju ove veštine se širi kroz sektore znatno brže u poređenju sa onima koji poseduju prosečne veštine. Ljudske osobine koje nas odvajaju od mašina, poput empatije i kreativnosti, i dalje ostaju ključne stvari prilikom zapošljavanja, i to je nešto što bi trebalo da se nađe u samom vrhu prioriteta, na samo zaposlenih, već i kompanija koje ih zapošljavaju. Izazovi za vodeće pozicije Ljudi na vodećim pozicijama će takođe imati veoma veliku ulogu u pružanju stabilnosti i rasta kompanije jer izazovi koji se odnose na angažovanje, zadržavanje i edukaciju talenta i dalje nastavljaju da predstavljaju problem za mnoge. Investiranje vremena i resursa u menadžerske veštine predstavlja najvažniju stvar kojoj bi kompanije i zaspoleni trebalo da se posvete. Vođe će biti zadužene za pružanje strukture i resursa za razvijanje novih veština unutar timova i njihovo dalje širenje unutar cele kompanije. Osobe na vodećim pozicijama će sada biti odgovorne za interakciju i osnaženje timova, koji svoj posao sada vrlo često obavljaju na daljinu. Sredine sa visokim nivoom produktivnosti sada pokreće visoka psihološka sigurnost unutar timova, i to će u budućnosti predstavljati jedan od najvećih izazova za sve lidere. Pogotovo jer mnogi od zaposlenih više nisu unutar same kompanije, već na udaljenim pozicijama, a vrlo često i u drugim zemljama i kontinentima. Situacija u Srbiji vs. Situacija na zapadu Zahvaljujući sve većem broju kompanija koje započinju svoje poslovanje, situacija u Srbiji donekle je povoljnija za sve tipove IT stručnjaka, prvenstveno zbog velike potražnje i manje ponude. Ovo možda najbolje oslikavaju i same ponude za posao. Posmatrajući ponude na sajtu HelloWorld, u Srbiji su trenutno najtraženije sledeće pozicije, koje proporcionalno zauzimaju i najveći broj oglasa u ponudi: Software Developer / Programer / Inženjer – 719 otvorenih oglasa (6.7% udeo u ukupnom broju oglasa) Frontend developer – 342 otvorene pozicije (3.20% udeo u ukupnom broju oglasa) IT Help Desk / Support – 341 otvorena pozicija (3.19% udeo u ukupnom broju oglasa) JavaScript Developer – 325 otvorenih pozicija (3% udeo u ukupnom broju oglasa). Sam broj ponuđenih pozicija jasno pokazuje da se IT stručnjaci nalaze u znatno boljoj situaciji nego njihove kolege u drugim zemljama. Ovo se posebno odnosi na medior i senior pozicije, jer se čini da su stručnjaci sa potrebnim znanjem izuzetno deficitarni. Ovakva situacija povoljna je i za sve na juniorskim pozicijama jer se pred njima otvara prilično jasan put i kompanije u nedostatku iskusnih radnika svoju pažnju moraju da znatno više poklanjaju početnicima ne bi li uspeli da ih za nekoliko godina pretvore u kadar koji im je trenutno izuzetno potreban, a sve su šanse da će se ovaj trend nastaviti i u budućnosti. Izuzetno mala ponuda stručnjaka koji razmišljaju o promeni posla dodatno podiže cene na tržištu, što se opet, povoljno odražava na zaposlene na svim pozicijama koji razmišljaju o daljem napretku.

17.01.2023. ·
9 min

Front-end developers are not just designing user interface, they are influencing user behaviour

U doba kada mnoge aplikacije dobijaju svoju web verziju a ljudi traže da aplikacije budu vizualno lepe, lake i intuitivne za korišćenje, front end development dobija sve više na značaju.

HelloWorld
0
21.09.2022. ·
6 min

Top 10 Visual Studio Code Extensions for 2022

As is well-known, Visual Studio Code (VS Code) is a powerful, lightweight code editor available for free on Windows, macOS, and Linux. It’s one of the most popular code editors coming with a robust set of features out of the box. The capabilities of VS Code can be extended, which in return will enhance your working productivity in many ways.

HelloWorld
0
20.09.2022. ·
2 min

Mojih mesec dana u TNationu

Ćao svima, ja sam Dragan Petaković, violinista….Zanimljivo, zar ne prenosim vam svoje iskustvo iz TNationa i to kako sam postao developer…

HelloWorld
0
21.04.2022. ·
5 min

Web Components - prolazni trend ili budućnost

Neretko na javascript konferencijama, barem jedan termin dnevno zauzimaju teme kao što su PWA, web3 i, tema ovog teksta Web Components. Iako, po nekom mom subjektivnom osećaju, interesovanje prema njima nije još dovoljno konstantno, neki eksperti u polju su optimistični, a caniuse.com odiše prijatnim zelenilom. 

04.04.2022. ·
4 min

Iskustva kolega koji su završili Internship program

Stefan Jovanović (Java Developer) - “Odlično iskustvo za nekog ko želi da usavrši svoja znanja, ali i nauči nove stvari u poslovnom okruženju. Tu su i mentori koji pomno prate napredak i daju smernice za dalje usavršavanje i izvan obima prakse.” Aleksandra Đorđević (Frontend Developer) - “Internship program mi je pružio mogućnost da radim na pravom projektu sa ostalim praktikantima, uz stalno praćenje našeg napretka i dobijanja smernica od strane mentora. U toku prakse sam se svakodnevno susretala sa novim pojmovima i problemima, što može da bude frustrirajuće za početnike u svetu programiranja. Međutim, komunikacijom sa ostalim članovima tima i mentorima koji su bili uvek tu da pomognu i usmere ka lakšem pronalaženju rešenja, ovi izazovi nisu predstavljali poteškoću, već priliku da se unaprede znanja i veštine potrebne za dalji rad.” Uroš Aleksandrović (.NET Developer) - “Praksa u Prime Software-u pružala mi je kao odlična odskočna daska u svet profesionalizma. Program mi je pomogao da uz pomoć mentora i odlično dizajniranih projekta svoje teoretsko znanje pretočim u praktično na veoma zanimljiv i produktivan način.” Jelena Cvetković (.NET Developer ) - “Internship program je odlična osnova za dalji napredak u karijeri. Velika prednost ove prakse jeste jedna pozitivna, radna atmosfera kao i odlični mentori od kojih sam naučila mnogo stvari koje su mi i danas primenjive u radu na realnim projektima.” Zdravko Čolić (Flutter Developer) - “Veoma mi je drago što sam imao priliku da budem deo ovog Internship programa, gde sam upoznao sjajne ljude i eksperte koji su mi pomogli da razvijem i unapredim kako sebe tako i svoje znanje. Sama organizacija Internship programa je dobro osmišljena, počeli smo sa nekim osnovnim stvarima a zavrsili smo radom na realnom projektu za samo dva meseca što je stvarno sjajno iskustvo i priprema nas za dalje(posao) veoma dobro.” Nikola Vacić (.NET Developer) - “Praksa je za mene bila zanimljiva jer smo radili 3 projekta, 2 samostalna i jedan timski. Svaki projekat je bio teži od prethodnog, ali izvodljiv uz pomoć mentora koji su nam pomagali. Takođe dobra stvar je i to što smo primenjivali ono što smo naučili u prethodnom projektu na novi projekat." Milan Josifović (Frontend Developer) - “Praksa omogućava spoznaju tehnologija koje možda do sada niste imali priliku da koristite. Rešavanje raznovrsnih problema, timskim radom, praćeni su od strane mentora čiji savet imate na raspolaganju svakog trenutka. Pored prijatne atmosfere u kancelariji, omogućen je i rad od kuće, što je dodatna prednost za ljude iz različitih krajeva. Osim neizostavnog dnevnog sastanka tokom dvomesečne prakse, radno vreme je fleksibilno, koje pruža lakšu organizaciju vašeg vremena. Završena praksa nudi brži pristup ka željenoj poziciji u firmi.” Aleksandar Dojčinović (Frontend Developer) - “Praksu u Prime Software-u sam počeo u novembru 2021. godine, posle uspešnog procesa selekcije koji je trajao oko dve nedelje. Prvi deo prakse za javascript trajao je dve nedelje, i imali smo dvadesetak zadataka iz vanila javascripta, koje smo rešavali, onda pushovali na gitlab, i tražili code review od mentora. Drugi deo prakse je bio za backend, trajao je tri nedelje, i tu smo pravili api server u node.js-u, što je bila potpuno nova stvar za mene, nikad ranije nisam pokušavao da radim ništa sa backend tehnologijama, i ovo iskustvo mi je baš prijalo, ne samo da sam završio projekat na vreme, već sam i mnogo bolje razumeo kako api funkcioniše. Treći i primarni deo prakse gde se radio angular je trajao pet nedelja. Praksa se završila zajedničkom prezentacijom projekta, i objašnjavanjem funkcionalnosti backenda, i prezentacijom funkcionalnosti frontenda. Moj konačni utisak o firmi je 10/10, a o praksi, recimo 12/10! :) Lazar Ristić (Flutter Developer) - “Na praksi mi se najviše dopao finalni projekat na kom smatram da sam najviše naučio kako funkcioniše veliki sistem i razvojni ciklus jednog proizvoda, kao i pristupačnost i dostupnost mentora u svakom trenutku (čak i van radnog vremena). Mislim da je program prakse super odrađen za ljude koji su skroz novi u Flutter tehnologiji.” Milica Milekić (Java Developer) - “Učestvovala sam na praksi u martu 2021. godine. Kao apsolutni početnik, uz mnogo rada i truda, stekla sam dovoljno znanja i veština za 3 meseca, nakon čega sam dobila ponudu za posao u Prime Software i sada sam junior Java developer nakon godinu dana rada. Utisak o praksi je generalno odličan, mentori su veoma posvećeni i uvek spremni da pomognu, projekti na kojima smo radili su bili zanimljivi i samo radno okruženje je prijatno i bez napetosti.” Ognjen Atlagić (Frontend Developer) - “Internship program je odlično osmisljen. U početku se utvrđuje poznavanje osnova programskog jezika sa kojim se radi. Nakon toga se dobija projekat na kojem se uči odabrani framework i na kraju svi praktikanti timskim radom prave aplikaciju, simulirajući realan svakodnevni rad na poslu, u timu, na realnom projektu. Naravno sve ovo uz nadzor mentora koji svojim iskustvom i savetima ubrzavaju proces učenja. Druga faza prakse je rad na realnom projektu / aplikaciji koja se koristi unutar firme. Dobivši posao nakon oba kruga prakse, rekao bih da su ispunili moja očekivanja, možda malo i preko toga. :) Za više informacija o kompaniji, posetite profil Prime Software! 

HelloWorld
0
25.03.2022. ·
3 min

FON Hakaton powered by Levi9 je uspešno završen!

Levi9 je imao čast da podrži i aktivno učestvuje na FON Hakatonu, 24-oro časovnom takmičenju u kreiranju softverskih rešenja na zadati problem. Popularnost takmičenja ove godine pokazuje rekordan broj timova koji su se prijavili za učestvovanje, čak 65! Nakon prvog kruga selekcije koji je podrazumevao rešavanje algoritamskog zadatka, 10 najboljih timova je dobilo svoju “ulaznicu”  za takmičenje. Temu hakatona - Razvoj ekološke svesti i primena principa zaštite životne sredine, definisao je naš PHP Tech Lead, Vuk Stanković koji je ujedno bio i član žirija. Tri ekipe su se istakle kao najbolje -  “Delegacija”, “MIDL” i “It works on my machine”, te su i osvojile 1, 2. i 3. mesto redom. “Devojke i momci ovih timova deluju kao geekovi kojima se programiranje mnogo dopada! Tehničke implementacije ideja su bile jako interesantne za firmu poput naše. Koristili su brojne raznovrsne i moderne tehnologije kao što su React, Angular, Ionic, Typescript, Docker, NodeJS, Java, Kotlin, PHP ali i mnoge druge” podelio je sa nama Vuk. Članovi pobedničkog tima “Delegacija”, radili su na aplikaciji za podsticanje reciklaže. “Razmišljali smo sa aspekta građanina koji želi da bude ekološki odgovoran ali da mu to ne oduzima previše vremena. Naša aplikacija omogućava svima da učitaju bilo koji proizvod i vide od kojih materijala je on napravljen, gde i kako može da se reciklira. Za 24 sata susreli smo se sa problemima koje smo kao tim, uz pomoć stručnih mentora, brzo i efikasno rešili.” Dodali su da im je učešće na takmičenju bio veliki izazov - Najzad smo imali priliku da pokažemo sve što smo godinama učili i testiramo naše sposobnosti rada u timu pod pritiskom. A rezultatima su, verujemo, prezadovoljni! 😊Jedno veliko bravo za Miloša Ninković, Nemanju Pavlovića, Ognjena Pejčića i Aleksu Miletića, kojima je nagrada za uložen trud i vreme za osmišljavanje svog rešenja - prednost prilikom odabira za stručnu praksu u Levi9. Ponosni smo i na Najnere koji su, zajedno sa zaposlenima Fakulteta za organizacione nauke, bili dostupni takmičarima za konsultacije i davali najbolje savete i smernice za razvijanje rešenja, po rečima učesnika. 😊 Hvala Marku Rajeviću, Jeleni Milev i Marku Nikoliću! Dobro znamo da mozak ne može da razmišlja bez dobrog obroka! Zbog toga je Burger House Bros restoran obezbedio posluženje svim učesnicima - i to ne bilo kakvo! Takmičari su imali priliku da probaju dizajniran po specijalnoj recepturi i ukusu Najnera - Hacker Burger by Levi9. Organizacija samog događaja je bila na zavidnom nivou. Predstavnici Udruženja studenata informatike FON-a su bili uvek spremni za dogovor, korektni i tačni! “Od trenutka kad smo poslali prijavu pa sve do proglašenja pobednika, imali smo sjajnu komunikaciju sa svima i zaista je FON Hakaton prevazišao naša očekivanja.” podelili su sa nama svoj utisak učesnici. Jako nam je važno da delimo znanje, mentorišemo i podstičemo mlade u svim koracima na putu njihovog profesionalnog razvoja. Baš zbog toga što znamo koliko je taj put težak i zahtevan, želimo da svojim aktivnostima mladim ljudima zainteresovanim za IT indutriju olakšamo start. Razlog #139: You don’t have to be great to start, but you have to start to be great. To learn more about the company Levi9, visit their profile! 

HelloWorld
1
23.02.2022. ·
4 min

Živ je PHP, umro nije!

Dobar dan. Na početku, jedno malo upozorenje. Zamisao PR službe ili kako volim da ih zovem u orvelovskom stilu, službe za kontrolu stvaranja naše stvarnosti, bila je da napišem tekst o svom ličnom i kodnom razvitku, pokušaću to da ispunim, nemojte mi zameriti ako skrenem sa teme.

HelloWorld
2
Da ti ništa ne promakne

Ako želiš da ti stvarno ništa ne promakne, prijavi se jer šaljemo newsletter svake dve nedelje.