iOS

02 kolovoza 2021

iOS

Kako izgleda posao iOS developera u Factoryju


Koje tehnologije koristimo 

Swift, RxSwift, Realm, SnapKit

Koje alate koristimo 

XCode, Proxyman/Fiddler, Postman, Figma

Kakve projekte radimo 

Portofolio projekata na kojima radimo pokrivaju razna područja interesa te razne kompleksnosti projekata. Kao partneri radimo na nizu aplikacija koje nadopunjuju kompleksne web sustave s mobilnom varijantom sustava. Tako radimo na vodećoj aplikaciji za farm management (Agrivi) gdje aktivno s web timom razvijamo farm management proizvod. Osim vodeće farm management aplikacije aktivno radimo na velikom sustavu za upravljanje građevinskim materijalom i potrebama gradilišta. Razvili smo mobilnu aplikaciju koja omogućuje dobivanje pravovremenih informacija o materijalu na gradillištu te jednostavnom praćenju i naručivanju novog materijala.

Osim rada na velikim sustavima, radimo i reprezentativne aplikacije, e-commerce aplikacije te specijalizirane aplikacije. Kao primjer reprezentativnih aplikacija koje smo izradili naveli bi niz turističkih aplikacija koje informiraju turiste o zanimljivostima lokacija diljem Hrvatske (Explore Lika). Naše e-commerce mobilne aplikacije odlikuje sposobnost dohvaćanja dinamičnog sadržaja s API-a i slaganje prikaza na temelju postavki u administraciji. Osim spomenutih aplikacija, razvijamo i aplikacije za traženje poslova te aplikaciju koja omogućuje digitalizaciju medicinske dokumentacije.

Što radimo na projektima 

Od osmišljavanja rješenja za poslovne probleme - razrada i definiranje razvoja funkcionalnosti koja će klijentu riješiti problem; definiranja tehnologija; korištenje api-a/ korištenje lokalne baze pa do izrade atraktivnog custom View-a.  

Koji je naš pristup

Svjesni smo toga da su nepoznanice tijekom developmenta najveći izvor glavobolja. Stoga smo odlučili riješiti što više nepoznanica prije nego se developeri uključe u razvoj projekta. Unutar Factoryja imamo posebne timove koji se bave razradom projekta. Zadaća tima je razraditi dokumentaciju koja definira kako projekt funkcionira. 

U samu razradu projekta uključeni su i samostalniji developeri Android platforme koji definiraju kako će aplikacija raditi. Rezultat pripreme je tehnička dokumentacija i raspisani zadaci od strane developera koji uključuju grupu skicu kako se određena funkcionalnost treba riješiti. 

Nakon što su zadaci spremni, PM će onboardati developere na projekt. Objasniti će im širu sliku i što će projekt biti na kraju developmenta. Developeri onda kreću u proučavanje specifikacije i dizajna te postavljaju pitanja. Nakon što su developeri onboardani, developeri preuzimaju i počinju rješavati svoje zadatke. Kako su nepoznanice == glavobolja, developeri si prije samog kucanja koda naprave pripremu - oglednu skicu rješenja i validaciju bi li to riješilo konkretni problem. 

Mlađim kolegama u razradi pomažu stariji kolege i voditelj tima. Iskusniji kolege najčešće rade sami ali se ne ustručavaju pitati za pomoć ili savjet druge kolege. Nakon što je developer zadovoljan s idejom, pretvori ju u kod. Kada je gotov, svoj kod još jednom testira i usporedi s specifikacijom. Ako je pokrio sve stvari iz specifikacije radi merge request te prebacuje task QA timu.

Kako doprinosimo projektima/firmi 

Projekti omogućuju firmi da proširi suradnju s već postojećim klijentima na način da njihovo poslovanje koje je primarno na web-u proširi i na mobilne uređaje. Zahvaljujući tome klijenti su zadovoljniji jer imaju partnera koji im može isporučiti sva rješenja koja trebaju. Osim toga, većina samostalnih mobilnih projekata zahtjeva i web komponentu, pa na taj način proširujemo poslovanje na web.

Kakva je naša ekipa iOS developera?

Imamo pecaroša s puno iskustva, volje i znanja. Samo mu riba nedostaje! Ako pecanje nije tvoj đir uvijek možeš popričati o vježbanju i prehrani s timskim coach-em koji će te uputiti u vježbe i prehranu :D Za ostale se uvijek nađe koja rasprava o novim igrama, Formuli i auto utrkama :)

Kako surađujemo međusobno 

Na projektu radimo u paru. Ukoliko imamo poteškoću sa zadatkom komuniciramo s kolegama na projektu i voditeljem tima. Osobe koje imaju manje iskustva imaju svog mentora, koji im pomaže razjasniti zadatak na projektu te im pomaže u pronalaženju rješenja. Svi smo susretljivi, uvijek nađemo par minuta da porazgovaramo i riješimo problem. Aktivno dijelimo znanje s projekata kroz dvotjedne interne talkse, te unaprjeđujemo vlastito znanje kroz interne projekte i radionice.

Kako surađujemo s drugim platformama / područjima 

Primarno surađujemo s backend timom. Zajedno s backend timom dogovaramo tehničku izvedbu funkcionalnosti, zajedno definiramo kako će izgledati API koji koristi mobilna aplikacija. Kako bi nam bilo jednostavnije raditi s APIjem, backend uvijek uz sam API isporuči i tehničku dokumentaciju. Ovisno o projektu, dokumentacija je napisana u ApiCurio-u ili je riječ o postman kolekciji u koju su uključeni primjeri requesta. Ukoliko se tijekom developmenta pojavi potrebe za izmjenom na API-u, konzultiramo se s backend timom da nađemo rješenje koje svima odgovara. Zahvaljući pripremi i dokumentaciji, rad s APIjem nam jednostavan i bez stresa :)

Dolazim li u postojeći tim ili stvarate novi tim?

Trenutno imamo 3 web tima i 1 mobile tim (u kojem imamo Android i iOS tim). Novi kolega ili kolegica doći će u postojeći tim. Svi novi dolaze u neki od postojećih timova da uz podršku kolega nauče naš stack i onboardaju se na projekte i firmu. S vremenom kako primijetimo da su se osobe osamostalile i imamo sve potrebno za uspješan tim, onda krećemo u organizaciju novog tima.

Kako izgleda tim i koliko je ljudi u njemu 

Timovi imaju od 8 do 10 članova. Uključuju Backend i Frontend developere u web timovima, odnosno Android/iOS developere u mobile teamovima; Project managera, Voditelja tima (senior dev), Dizajnera, QA.

Imate li developera s više od X godina iskustva? 

Svaki tim je kombinacija seniora i juniora. Imamo seniore u firmi s preko 9 god. iskustva te juniore od nekoliko mjeseci. Također, imamo developere koji su full stack i one koji se fokusiraju samo na 1 platformu. 

Što očekujemo od kandidata?

  • Dobro poznavanje Swifta
  • Poznavanje reaktivnog programiranja
  • Iskustvo rada s REST API i bazama podataka (npr. Realm, Room ili druge)
  • Napredno korištenje i razumijevanje UIKit-a
  • Programatsko pisanje UI elemenata
  • Iskustvo rada na MVVM arhitekturi
  • Iskustvo rada na više projekata

Na kojoj poziciji ću raditi 

Zadaci ovise o samostalnosti. U koliko si samostalan developer primarno ćeš se susresti s kompleksnijim zadacima - pomoći ćeš timu u pripremi projekata, definirati ćeš tehničko rješenje i smjer projekta te ćeš aktivno developati na projektu. Ako imaš manje iskustva, raditi ćeš na projektu uz samostalnog developera; razrađivati ćeš podfunkcionalnosti projekta te se educirati kako bi mogao napredovati.

Što ako ne znam vaš stack koji koristite, a imam X godina iskustva 

Ako smo si match, rado ćemo te provesti kroz našu akademiju i onboardati na naš stack. :)   

Kada planirate zaposlenje novog kolege/kolegice? 

Mi trenutno imamo prostora za zaposliti novog kolegu ili kolegicu tako da što se nas tiče samo trebamo naručiti opremu i pripremiti onboarding, što možemo riješiti unutar tjedan-dva. Obično trenutak zaposlenja više ovisi o obvezama kandidata i kada je u prilici zaposliti se.

Kako učimo i razmjenjujemo znanje 

Smatramo da je učenje i razmjenjivanje znanja ključno za napredak. Razmjenu znanja provodimo kroz radionice i interne dev talkse. Kako bi lakše pratili sve što nas zanima, imamo evidenciju u kojoj bilježimo sve ideje za radionice i talkse. Svaki član tima može predložiti temu i demonstrirati problem/rješenje. Na kraju kao tim analiziramo ideje i donesemo zaključke o daljnjoj upotrebi. Na ovaj način svi sudjeluju u određivanju tehničkog smjera u kojem gradimo tim.  

Kako potičemo razvoj znanja i vještina developera 

Kroz mentoriranje, plan učenja za svaku poziciju, interne dev talkse, vanjske konferencije i tutoriale; polugodišnje reviewove kompetencija, 1 on 1 s team leadom te 360 feedback unutar tima.

Imam li priliku kao mid/senior developer mentorirati druge kolege/praktikante? 

U Factoryju stavljamo velik naglasak i ponosni smo na kulturu mentoriranja i podrške jedni drugima u procesu učenja i razvoja - kroz npr. mentoriranje, peer code review, interne dev talkse. Svaki član tima koji ima potrebno znanje i iskustvo može postati mentor. Kod mentora se vodi računa o obujmu posla tako da se u raspored stavlja vrijeme posebno za mentoriranje. No, ako se netko ne osjeća komforan u ulozi mentora to nije obavezno.

Zašto bi se netko trebao pridružiti Factoryju kao iOS dev?

Ako želiš raditi u mladom timu, sviđa ti se ideja da tvoje mišljenje "vrijedi" i imaš mogućnost utjecati na stvari. Ako ti se sviđa ideja da radiš više projekata koji nisu iz istog područja i nisu monotoni, Factory je za tebe!

Je li posao full remote ili moram dolaziti do ureda svaki tjedan?

Posao je u potpunosti remote s mogućnošću korištenja ureda u Osijeku ili Virovitici. Imamo kolege i kolegice iz različitih krajeva Hrvatske koji rade u potpunosti remote te imamo i one koji vole kombinirati rad u uredu i remote. Nema nikakvih ograničenja, u potpunosti je fleksibilno i svatko si sam određuje odakle će raditi.

Kolika je plaća? 

Plaća za osobu koja može kvalitetno i samostalno odrađivati projekte (Mid) kreće od 9 000 kn neto, za seniora kreće od 13 000 neto.

Kako izgleda razvoj karijere u Factoryju za developere? 

Dev pozicije kreću od Početnika, Mlađeg programera, Samostalnog, Višeg programera, Softverskog arhitekta i Team leada. Svatko može birati sukladno svojim ambicijama smjer razvoja prema Tech lead ili Team lead poziciji. Također, imamo više full stack developera i onih koji su fokusirani na neku određenu platformu. U razvoju vještina i karijere svakog developera prati njegov Team lead. Način na koji to radi je kroz redovan code review, 1 on 1 razgovore te svakih 6 mjeseci radi procjenu kompetencija kroz naš interni model kompetencija za developere. Pri tome član tima dobije feedback i smjernice za daljnji razvoj te podršku Team leada u tome.

Prijavi se na:

iOS Developer