Kuinka palkata ensimmäinen Android-kehittäjä käynnistystäsi varten - Gaurav Navgire, AirCTO-asiantuntija

Matkapuhelinteollisuus muuttuu erittäin nopeasti. Käyttäjät viettävät suurimman osan ajastaan ​​matkapuhelimiinsa, ja kun Android vaatii 65 prosentin markkinaosuutta, on välttämätöntä, että yrityksillä / startup-yrityksillä on omat android-sovelluksensa, jotka on lueteltu leikkikaupassa, kasvattaen sekä jättiläisiä.

Suurimmat haasteet, joita perustajilla / palkkaamispäälliköillä on edessään Android-tehtävien palkkaamisessa, on päättää, mitä odottaa seuraavalta Android-kehittäjältä ja miten arvioida, sopivatko hänet työhön sekä teknisesti että käyttäytymisellisesti. Odotukset voivat myös vaihdella yrityksen koosta, teknisistä stäkeistä jne. Riippuen. Tällainen ratkaisu ei ole kuin "yksi sääntö sopii kaikille".

Joten miten valitset?

AirCTO: lla olemme suorittaneet satoja Android-haastatteluja ja olemme nähneet satojen ehdokkaiden hylkäävän, jotka jatkamisensa perusteella näyttivät olevan kunnolliset mahdollisuudet, elleivät jopa loistavat. Kenen palkata kysymys ratkaistaan? Kuinka palkata? päätimme haastatella tähtiasiantuntijamme, Gaurav Navgiren, joka on konsultoinut meitä jo yli 1,5 vuotta ja tehnyt monia haastatteluja eri yrityksille, joista suurin osa on saanut aikaan suuria palkkauksia.

Haastattelussaan Gaurav puhuu siitä, miltä ihanteellisen Android-kehittäjän profiili tulisi näyttää, tapoista haastatella häntä ja validoida hänen projektinsa sekä punaisten lippujen välttämiseksi kokonaan.

Aloitit ohjelmistoinsinöörin uran ja siirryt sitten Androidiin. Mikä kiinnosti sinua eniten tästä tekniikasta?

Liikkuvuus oli mielessäni siitä lähtien, kun isäni lahjasi minulle Nokia-laitteen, jolla oli Symbian OS. Mikä kiehtoi minua siitä, että laitteella toimivat sovellukset saavat Java-virtaa. Ja koska olin jo opiskellut Java-tekniikkaa tekniikassa, vuosi oli 2007–2008, sain sen kiinni hetkessä.

Suunnittelun jälkeen päätin hypätä syvemmälle JAVA: han ja liikkuvuuteen, mikä oli mahdollista vain, jos opin J2ME: n. Joten aloin jatkaa kurssia siitä, mutta koska onnea olisi, Infosys antoi minulle liittymispäivän (minut sijoitettiin kampukselle). Suoritin opintojani kiireessäni liittyäkseni tuolloin unelmayritykseesi. Vuosi oli 2008. Se oli sama vuosi, kun Android esiteltiin maailmalle.

Infosysissa, tuoreempana, minulla ei ollut muuta vaihtoehtoa kuin jatkaa SAP BI: ssä seuraavia 2 ja puoli vuotta ohjelmistosuunnittelijana. Tänä aikana Android aloitti uutisten tuottamisen Intiassa. Kun sain tietää siitä, otin vapauden oppia se omalta ja harjoittelin itseäni olemaan valmis ja työllistettävissä liikkuvuusteollisuudessa.

Pidin Androidista siitä, että voit luoda mobiilisovelluksia CORE JAVA -sovelluksella. Sinun ei tarvitse oppia J2ME: tä jne. Se oli myös AVOIN LÄHDE. Voit luoda yksinkertaisen pelin monimutkaisille yrityssovelluksille mukautettujen ROM-luomiseen. Onneksi olen työskennellyt kaikissa Android Ekosysteemin paradigmoissa. Joten minulle se oli tiedon ja mahdollisuuksien kultakaivos. En ole katsonut taaksepäin siitä lähtien.

Kuinka ihanteellisen Android-tuotevalikoiman pitäisi näyttää?

Ihanteellinen Android-tuotevalikoima on työskennellyt joidenkin perusrakenteiden, kuten aktiviteetit, fragmentit, palvelut jne., Monimutkaisille ominaisuuksille, kuten prosessienväliseen viestintään AIDL: ää käyttämällä.

Haluaisin nähdä portfolion, jossa kehittäjä on luonut sovelluksia käyttämällä puhtaita Android-sovellusliittymiä eikä käyttänyt kolmansien osapuolien kirjastoja vain ohjelmointitehtävän nopean ratkaisemisen vuoksi. Jos hän käyttää sellaisia ​​kirjastoja kuten esimerkiksi Picasso, heidän on kyettävä selittämään, kuinka todellinen tehtävä käsitellään ohjelmallisesti.

Olet tehnyt lukuisia haastatteluja AirCTO: lle, mikä on prosessi tarkastaa ehdokas?

Keskityn ensisijaisesti perusteisiin. Ja on perusteita testaamiseksi. Ensimmäiset ovat olio-ohjelmoidut konseptit. Toinen on Core Java. Ja viimeisenä ovat Android-arkkitehtuuri ja sen rakennuspalikat. Kun ehdokas on käynyt läpi perusteet, vain edistyneillä kysymyksillä on järkeä.

Minulle nämä sisältävät monisäikeiset, suunnittelumallit jne. Arvioinnin välissä pyrin yleensä esittämään muutamia näennäiskoodauskysymyksiä, jos kyse on puhelinsoitosta. Tai täydelliset ohjelmointikysymykset, jos kyseessä on henkilökohtainen haastattelu. Mielestäni on kunnossa, jos koodi ei ole 100% täydellinen määräajassa. Tärkeää on, että jos ehdokas pystyy selittämään koodin perusteellisesti.

Suunnittelumallien ja langankäsittelyn merkitys Android-kehityksessä?

Ohjelmoija ei voi soittaa itselleen, joten jos hän ei tiedä, mitkä ovat suunnittelumallit, tietorakenteet ja monisäikeinen lanka. JAVA on tarkoitettu monisäikeiseen ja Android käsittelee synkronista ja asynkronista työtä kauniisti.

On selvää, että se on toteutettava siten, että se toimii kauniisti, ts. Ilman muistivuotoja, ajan kulutusta jne. Ehdokkaan on tiedettävä, miten käsitellä tietokannan esiintymää käyttämällä joitain klassisista suunnittelumallista. Hänen on tunnettava, kuinka käsitellä asynkronisia viestejä lankojen välillä. Mikään ei poista minua, kun ehdokas sanoo, että android-sovellus toimii oletusarvoisesti kahdessa säikeessä.

Hankkeiden merkitys? Kuinka validoida ne?

Kun skannaan ansioluetteloa, keskityn viimeisimpään projektiin, jonka kanssa ehdokas on työskennellyt / työskentelee. Aloitan haastattelun ehdokkaan selityksen kanssa hänen nykyisestä / viimeisimmästä projektistaan ​​ja hänen tehtävästään sen kehittämisessä.

Jos joukkue on iso, mistä komponenteista hän oli vastuussa, tunteeko hän sovelluksen heidän omien komponenttiensa lisäksi? Jos he kehittivät sen yhdellä kädellä, niin se antaa minulle paljon tilaa validoida pieniä yksityiskohtia, kuten tietokantataulukkojen muutoksia, Play Store -alfa- ja beta-julkaisuja jne. Tämä antaa minulle selkeän kuvan siitä, kuinka haastattelua voidaan viedä eteenpäin.

Olet tehnyt paljon haastatteluja aloittaville ja isoille yrityksille. Kuinka lähestymistapa eroaa kussakin tapauksessa?

Suuremmissa yrityksissä työtehtävä on hyvin selkeä. Se on hyvin kartoitettu odotus kyseiseltä roolilta. Tarkoittaa, jos minun on palkattava vanhempi Android-insinööri suurelle yritykselle, hänen odotetaan olevan osa joukkuetta toimittamaan osan / muutamat komponentit sovelluksesta.

Käynnistyksen yhteydessä näin ei ole. Täällä olemme tarkistaneet, pystyykö ehdokas toimimaan ryhmän jäsenenä, ja määrittelemme parhaita käytäntöjä vertaiskäyttäjille, koodikatsauksia, lähteen repo-hallintaa ja jopa muutamaa DevOps-tehtävää.

Joten vaikka roolimerkki voi olla sama, mutta odotus on erilainen käynnistyksessä. Lisäksi saman kehittäjän on oltava osa web-sovellusliittymien suunnittelua ja jopa kehittämistä. Niin paljon vanhempi rooli. Mutta jopa raikasteilla on vaikeuksia aloittavissa yrityksissä kuin suurissa yrityksissä.

Suosikkisi ongelmanratkaisukysymyksesi ehdokkaan kognitiivisten taitojen testaamiseksi?

Yksi suosikkikysymyksistäni koskee tietojen pysyvyyttä. On olemassa useita tapoja, joilla kehittäjä voi leikkiä laitteella tietokantaan tallennetuilla tiedoilla, jaetuilla prefi-tiedostoilla, tiedostoilla sisäisessä / ulkoisessa tallennuksessa. Kysyn heiltä yleensä perinteisiä tapoja käsitellä pysyvyyttä.
Esitän heille myös kysymyksiä modernista Android-arkkitehtuurista, kuten huone jne.. Tämä antaa minulle oikeudenmukaisen kuvan siitä, onko hakijalla oikea asenne jatkuvasti muuttuvaan mobiilitekniikkamaisemaan.

Ehdotuksesi aloittaville perustajille, kuinka he palkkaavat ensimmäisen Android-kehittäjänsä?

Perustajana sinulla on paljon ideoita. Haluat jonkun, joka voi tuoda nämä ajatukset todellisuuteen. Haluat ratkaisun ongelmiin ja ideoihin silloin siellä itse tai ainakin kyky löytää optimaalinen ratkaisu nopeasti.

Ja sen tekeminen ei riipu arvaamisesta. Joten haluat ensimmäisen Android-kehittäjäsi, joka voi suunnitella sinulle vaatimattoman teknisen ratkaisun ja esitellä sinulle varmasti. Sitten kaikki kehittäjät tarvitsevat toimittaa ratkaisun asteittain ja jatkuvasti.

Yksi temppu perustajille on tietää joitain teknisiä ratkaisuja joihinkin vakioongelmiin. Esimerkiksi push-ilmoitusarkkitehtuuri, tai kannattaako kehittää hybridi- tai natiivisovellus, reaaliaikaisia ​​sovelluksia tai offline-sovelluksia? Tietäen nämä ratkaisut itse auttaa sinua arvioimaan ensimmäisen Android-kehittäjän.

Joten etsitkö palkata mahtavia Android-kehittäjiä, jotka voivat lisätä todellista lisäarvoa joukkueeseesi? Suorita aikataulu puhuaksesi palkkaamisasiantuntijamme kanssa nyt.