Kreatori i alati: Darko Marjanović, Things Solver

Darko se bavi razvojem big data proizvoda, a ovom prilikom deli alate koji mu pomažu pri programiranju u Python-u i u obradi podataka.

Marija Gavrilov - 9. April, 2016.

Darko Marjanović je CEO kompanije Things Solver, koja se bavim razvojem big data proizvoda. Pored toga je i big data inženjer i jedan od osnivača domaće Data Science zajednice.

Hardver

Koristim MacBook Pro 13, jer mi pruža mobilnost i odlične performanse. Pored toga navikao sam na Mac OSX. OSX je Unix-like što dotno olakšava testiranje nekih Big Data alata, npr. Spark ili Kafku pokrećete isto kao i na Linux-u.

Kad nisam u pokretu, tu je i Dell monitor od 24 inča koji mi mnogo olakšava posao, posebno kada kodiram. Što se telefona tiče, koristim iPhone. Volim taj zaokruženi ekosistem koji Apple nudi. Kako često odlazim kod klijenata, težina i dizajn MacBook računara mi potpuno odgovaraju.

Za hvatanje beleški i ideja uvek su tu papir, olovka i tabla, koja posebno dobro utiče na moju produktivnost.

Browser

Koristim Chrome, jer mogu lako da podelim poslovni i privatni profil, poslovne i privatne bookmark-ove. Takođe, OneTab je nešto što mi olakšava život. Naravno, tu su i neizostavni AddBlock i Pocket.

Pored Chrome-a, koristim i Safari, ali znatno ređe.

darko

Komunikacija

U firmi koristimo Google for Business, tako da je Gmail moj izbor. Probao sam razne e-mail klijente ali uvek se vratim Gmail-u. Kako je mail osnovno sredstvo komunikacije, “naoružan” je dodacima:

Boomerang za odlaganje slanja mailova.

MailTrack da ne bude izgovora da neko nije video mail.

Rapportive kako bih lakše kontakte pronašao i na Linkedin-u.

Za video komunikaciju koristim Google Hangouts. Naravno, tu je i neizostavni Slack za komunikaciju sa timom, ali i za potrebe Data Science zajednice.  

Terminal

Kako tehnologije kojima se bavim obično “žive” na Linux serverima, a gde GUI nije nešto što je podrazumevano, potreban mi je odličan terminal, kako za testiranje alata, tako i za komunikaciju sa našim razvojnim okruženjem. iTerm je od pre nekoliko meseci moj primarni izbor, prvenstveno zbog lake navigacije i jednostavnog splitovanja ekrana.

Razvoj softvera

Najčešće programiram u Python-u i za ovu priliku koristim PyCharm, koji je odličan alat. Iako nude besplatnu verziju, komercijalna vredi svakog dinara. Za programiranje u Scala-i koristim besplatnu verziju IntelliJ-a. Oba alata se lako koriste za razvoj Spark aplikacija.

Za rad sa bazama podataka toplo preporučujem DataGrip.

IPython koristim za eksploraciju podataka, jer je jako fleksibilan. Prvenstveno je namenjen za Python, ali moguće ga je koristiti za R, Scala-u… Zbog ovog alata gotovo da više ne koristim Sublime.

Skoro sam otkrio okruženje Data Science Studio, koje je odlično za rad sa podacima. Olakšava čišćenje i pripremu podataka, a tu su i osnovni algoritmi mašinskog učenja. Osim toga, pruža i osnovne vizualizacije.

Tehnologije i programski jezici

Primarni programski jezik koji koristim jeste Python, iz razloga što je odličan za manipulaciju podacima, a može da se koristi i za automatizaciju nekih procesa.

Takođe, odlično je podržan bibliotekama za mašinsko učenje. Neke od omiljenih biblioteka za rad sa podacima su mi Pandas, Numpy, Scikit Learn, a Django ukoliko mi je brzo potrebna neka web aplikacija. Koristim Anaconda verziju Python-a.

Spark, Hadoop, Kafka, HBase su samo neki od big data alata koje koristim. Ove alate čak imam i na svom računaru za brzinske testove.

Project management i verzionisanje koda

JIRA nam je primarni izbor u firmi i potpuno nam olakšava timski rad i planiranje razvoja aplikacija. JIRU smo povezali sa Slackom, tako da smo olakšali protok informacija između zaposlenih. Na sve to, koristimo BitBucket za verzionisanje koda. Pratimo principe Git Flow-a i to je svelo konflikte na minimum.

Naravno, tu je i Github za “forkovanje” nekih često korišćenih alata.

Ovde bih dodao i Wunderlist koji je odličan alat za taskove, posbebno sa svojim dodatkom za Chrome koji me uvek podseća na neodrađene zadatke kako uključim browser.

Informisanje

Flipboard je definitivno za mene nezamenljiv alat za praćenje svih tema koje me zanimaju.

Ostalo

Google Docs koristim za pisanje tekstova i za kolaboraciju, a često i za pisanje dokumentacije.

Lucid Charts je odličan alat za crtanje grafika i dizajniranje, ali dobra konkurencija mu je Cacoo koji ima odlične stencil-e. OSX native kalendar je nešto bez čega ne mogu da zamislim dan. MailChimp koristim za mailing listu i e-mail marketing, kako u firmi tako i za zajednicu.

Aplikacije koje dodatno koristim su Caffeine i iStat Menus.