Sunteți pe pagina 1din 5

Professional:

1. Poti sa-mi povestesti un pic despre tine ?


Acum 3 ani am facut un training de javascript si m-am angajat la prima firma, acuma se numeste
Life is Hard. Acolo am lucrat pe un proiect, poate ati auzit de eOkey, folosind AngularJS si ocazionat PHP.
Dupa aceea m-am angajat la 3Pillar unde am lucrat pe diverse proiecte, folosind React, Angular si Node.
Unul dintre cele mai interesante proiecte a fost pentru National Geographic care avea cateva feature-uri
foarte interesante, cum ar fi ca in stanga puteai sa citesti un articol iar in dreapta aveai imagini sau harti,
iar in timp ce faceai scroll harta se completa cu drumul pe care l-au facut cercetatorii, precum o harta de
pirati. Acuma lucrez pe unul din proiectele de la Cisco, insa nu prea avem taskuri si simt ca stagnez, si ca
sa nu-mi rugineasca skilurile de tot mai lucrez seara la un proiect.

2. Povesteste-mi despre acest proiect.


Sigur. Este vorba de o platforma care genereaza site-uri web folosind un builder. Ca tehnologii
folosesc Angular si Node, iar ceea ce genereaza sunt pagini statice folosind PUG (Jade).

3. Ce stii despre Greppy ?


Nu tare multe. Am auzit de la un coleg ca de fapt numele firmei este grep.py si ca faceti mult
python. Puteti sa-mi povestiti despre politica firmei ?

4. Ce asteptari ai de la compania noastra ?


Sa pot invata mai mult. Sunt foarte curioasa de Angular si Node si vreau sa lucrez pe un proiect
cu amandoua. Desigur, pot sa invat singura acasa lucrand la proiectul meu, dar e obositor sa am "2
joburi" in acelasi timp.

5. Care sunt slabiciunile si atuurile tale ?


(Retarded question, interviewer has no idea what she's doing)

6. Ai de gand sa ramai insarcinata in curand ?


Nu ne-am hotarat in privinta asta inca. Momentan si eu, si sotul meu, ne concentram pe cariera
noastra, si trebuie sa recunosc ca-mi place sa ma distrez. Un copil ar aduce un sfarsit stilului nostru de
viata si nu vrem asta inca.

Note: Evita discutiile despre salariu pana la sfarsitul interviului. Nu raspunde la intrebari de genul "cat
castigi acuma", "cate zile de concediu mai ai" si nu mentiona de vacanta din Thailanda.

7. Cum te-ar descrie prietenii tai ?


(Retarded question, try to be funny)

8. Folosesti cod de pe GitHub sau Stackoverflow ? Contribui ?


Folosesc foarte des dar nu am contribuit niciodata. (Simple and honest this time)

Note: Raspunde la intrebari cu incredere (chiar si atunci cand nu esti sigura pe tine) si fi naturala. Ia-ti
cateva secunde sa te gandesti cand trebuie sa povestesti ceva, precum un challenge pe care l-ai avut sau
ceva ce te-a enervat. Respira adanc si vorbeste normal, poti incerca sa faci o gluma sau sa fi sarcastica,
it's all good.

9. Ai intrebari pentru noi ?


- voi putea lucra pe un proiect cu tehnologiile pe care mi le doresc sau dupa 2 luni voi fi mutata
pe Backbone sau altceva ?
- cum isi petrec colegii vostri pauzele ?
-

10. Povesteste-mi cateva proiecte la care ai lucrat si ce ti-a placut la ele.


Note: La genul asta de intrebare povestesti business-ul aplicatiei si challenge-ul care ti-a placut
National Geographic, dupa cum am zis mai devreme, un site cultural care mi-a si dat batai de
cap cand am implementat harta cu articolele ce se incarcau lazy loading, eOkey care a fost primul meu
mare proiect pentru care pot sa zic ca totul a fost nou si super interesant, iar acum pe proiectul de la
Cisco, din pacate nu va pot da multe detalii deoarece nu vreau sa incalc NDA-ul, dar ce pot sa va zic este
ca am folosit ultimile tehnologii, dedicam mult timp sa testam fiecare feature, facem scram in fiecare zi,
in mare este foarte strict si precis.
Definition: NDA - Non Disclosure Agreement - un contract prin care esti deacord sa nu oferi date
sensibile din afacerea clientului

Note: Daca mentionezi de NDA si nu dai detalii multe, angajatorii vor avea mai multa incredere in tine si
ca nu vei imparti informatiile cu oricine.

11. Ai zis ca ai lucrat cu Node, ce ne poti spune despre asta ?


Nu pot spune ca e o diferenta uriasa intre a lucra pe front-end sau back-end cu javascript. Marea
diferenta o fac librariile pe care le folosesc, de exemplu: Express pentru a crea rute, restrictiona acces,
pentru a crea un API, Mongoose, care este un ORM pentru MongoDB, pe care l-am folosit sa-mi creez
structura bazei de date impreuna cu toate functiile pe care le ofera (find, findOne, update, save, etc),
Multer pe care l-am folosit sa trimit fisiere catre server, PUG ca sa creez fisiere HTML din template-uri pe
server in loc de front-end, si multe altele.
Definition: ORM - Object Relationship Mapping - adica exista un tabel in baza de date care arata exact ca
obiectul tau si mapeaza fiecare coloana din tabel (username, password, etc) la un field din obiect.

Note: Daca vrei sa mai insiri librarii poti mentiona: mailer (trimite emailuri catre GMail, Yahoo, etc),
moment (precizie si parsare de timp), request (trimite requesturi catre un alt server), socket.io (web-
sockets), fs (file system - crezi fisiere, stergi, modifici, etc)

12. Unde te vezi in urmatorii 5 ani ?


(Retarded question) Cel mai probabil ca team-lead sau chiar arhitecta pe un proiect. Nu prea am
inclinatii spre project management.

13. Poti sa-mi descrii procesul prin care rezolvi un bug ?


Ah, depinde foarte mult de bug. Dar ca sa incerc sa fac o generalizare, intai incerc sa-l reproduc
apoi incerc sa-i gasesc cateva simptome: ma uit in consola daca este vreo eroare, verific in network daca
requesturile se executa in ordine, daca sunt url-urile corecte, metodele corecte (GET, POST, etc), daca se
trimit datele care trebuie si daca primesc de la server ce ma astept, urmaresc codul linie cu linie pana
ajung la o discrepanta. Alteori ma uit in DOM, nu o data mi s-a intamplat ca codul sa fie corect dar
actiunea sa fie ascunsa din cauza unei clase de CSS gresita. Alteori e o problema de pointeri, dar cele mai
frecvente sunt cazurile in care cineva a scris gresit un cuvant.

14. Ce tool-uri folosesti pentru a depista bug-urile ?


Consola si browserul. Nu am nevoie de nimic mai mult.
15. Ai fi dispusa sa lucrezi peste program cand e nevoie ?
De ce, e un lucru care se intampla frecvent ?
Nuuuu, nu, doar intreb.
Atunci sunt dispusa s-o fac intr-o situatie exceptionala, dar in niciun caz nu va deveni o
obisnuinta.

16. Cat de confortabila esti in a scrie HTML si CSS ?


(Red flag) Ma descurc destul de bine cu amandoua insa sper ca nu in asta consta acest job.

Note: Arata ca esti dispusa sa ajuti in cazuri grave, nu ca te doare-n cot, dar exprima ferm faptul ca te
astepti ca asta sa nu se intample.

Technical:

Note: Cand nu stii un raspuns incearca sa zici ce crezi ca ar fi decat sa spui "nu stiu". Efortul este mult
apreciat, inseamna ca ai incercat, indiferent daca raspunsul e la o mila distanta.

1. Ce este REST ?
Un protocol de comunicare intre client si server folosind ajax. In standard-ul REST se gasesc
metodele de GET (Read), POST (Create), PUT (Update) si DELETE (Delete). Altele de mentionat ar fi
OPTIONS si PATCH.

2. Care este diferenta intre Null si Undefined ?


Undefined este o valoare global setata de javascript cand o instanta nu primeste valoare, iar null
este o valoare setata de programator sa indice ca valoarea a fost stearsa.

3. Ce este Delegation ?
Delegation e des intalnit la meniuri sau liste, dar nu numai. In loc sa atasezi un event listern, de
exemplu click, pe fiecare item in parte, atasezi unul singur pe parinte si delegi itemurile, astfel incat sa
optimizezi codul.

4. Cum rezolvi un closure in loop ?


Pui un self executing function in loop:

let array = [1, 2, 3]


for (let i = 0; i < array.length; i++) {
setTimeout(function() {
console.log(i); // 3 3 3
}, 100);
}

for (let i = 0; i < array.length; i++) {


(function(index) {
setTimeout(function() {
console.log(index); // 0, 1, 2
}, 100);
})(i);
}

5. Ce sunt socketurile ?
Socketurile sunt canale de comunicare persistente prin care clientul si serverul pot timite mesaje
oricand, de exemplu daca ai nevoie de notificari in real time sau chat.

6. Ce este long pool ?


Solutia preistorica a socketurilor. Clientul face un request la care serverul va raspunde daca are
date noi. De indata ce datele sunt primite sau requestul expira, se face un altul.

7. Ai folosit vreodata prototype ?


Nu, dar inteleg conceptul. Atasezi functii si variabile unui obiect, e echivalentul creari claselor in
alte limbaje sau ceea ce face typescript acuma.

8. Ce este CORS ?
Cors este un protocol care permite share-urirea de resurse intre domenii.

9. Ce optimizari ai face ca sa cresti performantele unei aplicatii web ?


Optimizarea de imagini, cel putin pentru mobile si desktop.
Minifierea fisierelor de css si js, iar daca HTTP 2 nu este disponibil, combinarea lor intr-un singur
fisier.

Note: Mentioneaza cu orice ocazie de tool-uri pe care le folosesti: Atom ca IDE, librarii precum color
picker, file upload, harta, etc.

10. Ce sunt si daca ai folosit vreodata SVG-uri.


Nu am folosit, dar sunt imagini vectoriale generate folosind o formula matematica. In general
sunt folosite atunci cand se doresc animatii, dar procesul de creare a unui SVG e destul de lung.

11. Care este diferenta intre bind, apply si call ?


Toate 3 fac o functie sa fie apelata de oricine este desemnat ca "this". Bind creaza o functie
noua ce poate fi apelata oricand in timp ce Call si Apply apeleaza functia in acel moment. Diferenta intre
Apply si Call este ca unul primesti parametrii insiruiti normal, dupa this, iar cealalta primeste un array in
care se afla toti parametrii.

12. Cum creezi CSS responsive ?


Daca va referiti la framework-uri, Bootstrap. De obicei aplicatiile pe care le fac sunt atat de
custom incat Bootstrap nu ma ajuta, asa ca-mi fac propriul meu CSS responsive avand flex la baza. Flex
este un atribut destul de nou dar suportat de toate browserele care, impreuna cu width, max-width si
min-width, poate face un design responsive foarte usor si fara batai de cap.

Note: La toate intrebarile tehnice, chiar daca nu stii exact care-i raspunsul incearca sa faci o asociere cu
altceva ce stii. De multe ori o sa vezi ca stiai doar ca au folosit termeni la care nu te asteptai.

13. Cu ce te ajuta atributul de "data" intr-un tag ?


Atributul data este folosit pentru a asigna valori custom unui tag, spre exemplu de identificare
sau valori ascunse.
14. Poti sa-mi spui cateva API-uri din browser pe care le cunosti ?
Media API, Application Cache API, History API, Local Storage API, Geolocation API, etc.

15. Cum creezi un link catre un element din aceeasi pagina ?


Tagului de <a> va contine ca redirect un url care incepe cu # si se continua cu un id care exista in
aceeasi pagina. In acest caz, pagina se va deschide direct la id sau va face scroll la el.

16. Care este marea diferenta intre visibility: hidden si display: none ?
Visibility va ascunde obiectul dar inca va ocupa spatiul alocat lui, in timp ce display nu.

17. Ce este event bubbling ?


Event bubbling este ideea ca un event trece prin mai multe controllere, precum o bula de aer
prin mai multe straturi de apa. Mai exact, daca atat un tag cat si parintele sau are atasat cate un event
listener de click, ambele vor fi apelate in ordinea importantei, intai cel de pe tag apoi cel de pe parinte.
De asemenea, acest concept se aplica si pentru cand ai mai multe event listenere atasate aceluiasi tag,
ele executandu-se in ordine. Aceasta ordine poate fi oprita folosind functia de stopPropagation.

18. Ce este o functie anonima ?


O functie fara nume. (doooh)

19. Ai auzit de MVC ? Dar de MVVM ?


Ambele sunt design patterns. MVC inseamna Model View Controller si presupune ca ai un
Model, sa zicem un obiect user cu username si password, un View, sa zicem un formular cu cele 2 field-
uri, si un Controller, o clasa de javascript care injecteaza datele din model in view si invers. MVVM este
foarte asemanator doar ca lipseste controller-ul, lucru des intalnit in framework-uri precum Angular.

20.

Foreign Languages

1. Ce limbi straine cunosti ?


Engleza, etc, si romana (poti sa fi funny aici, etaleaza-ti umorul).

2. Poti sa-mi spui ceva in engleza ?


Sure. Let me see (gandeste-te vreo 2-3 secunde)... I enjoy reading, quite a lot, mostly romantic
or adventure stories. One of my colleagues recommended me a fantasy book, not a huge fan, but I gave
it a shot and to my surprise I actually enjoyed it more than I thought I would. So far I think I've read over
100 books.

S-ar putea să vă placă și