Senior JavaScript Developer


Zanimanje Senior JavaScript developera i sve što ono podrazumeva može da varira u odnosu na konkretnu industriju ili proizvod na kom se radi, od vrste kompanije, i mnogih drugih faktora, te na pitanje šta je to što oni treba da rade ili znaju nema jednostavnog odgovora.

Pregledom oglasa za posao koji traže ovu poziciju, može se steći uvid u neka od tipičnih zaduženja:

Tipična zaduženja

  • Dizajn, razvoj ili poboljšanje postojećih softverskih rešenja ili pravljenje novih 
  • Održavanje, ažuriranje ili modifikacija postojećih složenih aplikacija
  • Dizajn, razvoj, održavanje ili poboljšanje performansi front-end aplikacija, poput vebsajtova
  • Integracija servisa ili APIja u postojeće aplikacije ili servise
  • Pisanje i sprovođenje testova
  • Učešće u diskusijama o dizajnu
  • Kreiranje tehničke dokumentacije
  • Revizija koda
  • Rad sa front-end i back-end web developerima

Imajući u vidu raznovrsnost pozicija i potreba, gotovo je nemoguće popisati sve stavke koje je potrebno da senior JavaScript developeri ispunjavaju, ali se konsultacijom relevantnih izvora mogu izdvojiti sledeće:

1. Dubinsko poznavanje JavaScripta

Svi obrađeni izvori slažu se da senior javascript programer treba da poznaje JavaScript, njegove funkcije i idiosinkraze, sintaksu, semantiku, kao i pojmove i koncepte, poput Closure, Hoisting, Prototype, Promise, scope, Concurrency model, event loop, JSON, Regex, ES6, itd.

2. Praćenje trendova i poznavanje relevantnih frejmvorka

Pored toga, obrađeni izvori slažu se i da senior programer treba da bude u toku sa razvojem jezika, novim mogućnostima, kao i da poznaje i prati razvoj relevantnih frejmvorka i alata koji su dostupni za rad u JavaScriptu, kako u bekendu (React, Angular JS, Redux), tako i u frontendu (Node.js, Express, NestJS).

3. Poznavanje TypeScript-a

Zbog kompatibilnosti sa JavaScriptom, i prednostima koje nudi u tome što sledi principe OOPa, neki izvori navode da senior javascript programer treba da poznaje i  TypeScript, jer to može da donese veću fleksibilnost u radu.

4. Poznavanje HTMLa, CSSa i drugih srodnih tehnologija

Nekoliko izvora kao relevantnu stavku navodi i poznavanje web developmenta, HTMLa i CSSa, osnova dizajna, i drugih znanja koja utiču na izgled sadržaja na internetu, jer ova znanja mogu da pomognu pri komunikaciji oko tehničkih, dizajn ili drugih ograničenja tokom rada na razvoju softvera.

5. Debagovanje i cross-browser tehnologije

Pojedini izvori navode i poznavanje brauzera, relevantnih APIja, kao i znanje u pisanju cross-browser koda kao važne veštine. Pored toga, neki obrađeni izvori navode i debagovanje JavaScripta u brauzeru kao važnu stavku koje mogu izdvojiti seniornije developere.

6. Svest o bezbednosnim i drugim faktorima

Pored poznavanja jezika i drugih alata, neki izvori spominju i svest o drugim standardima, poput WCAG 2.0 ili drugih smernica koje uređuju pristupačnost sadržaja na internetu, a koje mogu da utiču na kodiranje.

Pored toga, neki izvori spominju i praćenje relevantnih dešavanja oko pitanja privatnosti, bezbednosti i mera zaštite, kako bi se tokom rada izbegli nepotrebni rizici.

7. Poznavanje softverske arhitekture i konteksta razvoja

Većina obrađenih izvora slaže se da senior programeri treba da budu u stanju da razmišljaju o okruženju u kom kod treba da radi, kao i da prema tome mogu da naprave adekvatan izbor frejmvorka i pristupa.

Pored toga, zbog iskustva koje su tokom godina seniori stekli, pojedini izvori navode i pravljenje različitih vrsta proizvoda, poznavanje razvojnog i production ciklusa, razumevanje i iskustvo rada u timovima, ili rada na pisanju testova kao relevantne faktore koji izdvajaju seniore.

Većina izvora u tom kontekstu spominje i stavke poput:

  • Razumevanje softverske arhitekture, sposobnost za planiranje i mapiranje funkcija
  • Logičke i algoritamske veštine i način razmišljanja
  • Strukturiranje podataka za što brže izvršavanje koda, bez kompromitovanja mogućnosti održavanja
  • Sposobnost pisanja čitkog koda, koji se lako može razumeti i unaprediti
  • Sposobnost pisanja skalabilnog koda
  • Poznavanje mikroservisa i distribuisanih sistema

8. Komunikacijske i druge meke veštine

Većina izvora slaže se da su veštine komunikacije ključne za seniornije pozicije. One obuhvataju sposobnosti prezentovanja rešenja i analize koda, komunikacije sa timom, diskusije o zadacima, itd, koje su naročito važne zbog saradnje sa menadžerima projekata ili drugim saradnicima, poput dizajnera ili web developera.

Pored toga, poznavanje poslovnog ciklusa, zahteva softverskih rešenja, efektno upravljanje zahtevima, upravljanje očekivanjima, i poznavanje vremena koje je potrebno da se zadaci obave neke su od stavki koje se spominju kao relevantne za senior JavaScript developera.

9. Relevantno obrazovanje ili profesionalno iskustvo

Iako može delovati očigledno, za ovo zanimanje važno je imati bogato radno iskustvo, te većina oglasa za ovakve pozicije traži preko 4 godine relevantnog iskustva. 

U zavisnosti od potreba pozicije, može se tražiti i diploma softverskog inženjerstva ili druge relevantne oblasti. Ponekad se, u zavisnosti od okolnosti, može tražiti i preciznije iskustvo rada na određenom softveru ili tehnologiji (na primer, poznavanje baza podataka) ili iskustvo sa nekom od metodologija (Agile, Scrum).

Izvori

https://www.itpro.com/business-strategy/careers-training/356608/how-to-become-a-senior-javascript-developer

https://elitex.systems/blog/what-javascript-experts-should-know/

https://benmccormick.org/2017/07/19/ten-things-javascript/

https://www.reddit.com/r/javascript/comments/6mlc9d/what_10_things_should_a_serious_javascript/

https://www.reddit.com/r/javascript/comments/3nzbmx/how_to_tell_if_someone_is_an_advanced_js_developer/

https://www.collectiveray.com/javascript-developer-skills

https://javascript.plainenglish.io/the-most-important-skills-you-need-to-know-as-a-javascript-developer-d0b5d54c8fda?gi=d0253ea71d45

https://dev.to/blessingartcreator/5-important-skills-you-need-as-a-javascript-developer-in-2021-4bk1

https://bytescout.com/blog/4-key-skills-in-javascript.html

https://zendev.com/2019/06/04/top-skills-to-learn-junior-javascript-developer.html

https://www.traffit.com/en/job-description-templates/it-en/senior-javascript-developer-2/

https://www.jobsity.com/careers/senior-backend-nodejs-developer

https://jooble.org/job-description/computer-and-information-technology/senior-javascript-developer/