Entrevista amb Google

Avui fa un mes que no escrivia res al blog. És que no ha passat res d’interessant aquest mes? Res més lluny de la realitat.

Durant aquestes dues setmanes he estat ocultant passant per alt un xicotet secret: avui a les 15.00h tenia una entrevista amb Google. Quasi (gràcies per tot, Ivan) ningú sabia d’aquesta entrevista: ni amics, ni família. I ha sigut així perquè no volia posar-me més pressió damunt (els qui em coneixen ja saben com sóc), volia concentrar-me en l’entrevista.

Des de ja fa temps em ronda pel cap la idea de passar una temporada fent pràctiques en una empresa a l’estranger (res d’Espanya) i sabia que Google ofereix posicions d’Intern en diferents de les seves oficines. Així que em vaig dir: “I per què no?”.

El dia 12 d’Octubre els enviava el meu CV junt a una cover letter utilitzant el formulari que tenen en la seva pàgina web d’ofertes de treball i dos dies després rebia un correu electrònic d’un dels seus University Programmes Specialist.

En el correu em preguntava diverses coses com: quin eren els meus llenguatges de programació preferits, les meves principals àrees d’interés, disponibilitat horària, oficines de preferència per a fer l’Internship, etc.

A l’endemà vaig rebre un correu electrònic que em comunicava que m’havien concertat una entrevista per a la posició de Software Engineering, Google.com Intern en Europa.

Estava súper content perquè pel que havia llegit normalment tardaven prou en atendre les peticions, i jo en dos dies ja tenia una entrevista concertada! Però també estava acollonat, perquè m’oferien una oferta en una posició a la qual no havia enviat petició i tot per una frase dels requisits: “Strong understanding of IP networking, including the ability to analyze network behavior, performance and application issues using standard tools like tcpdump.”

“Oh gosh! Jo no tinc un super coneixement del protocol IP! Com vaig a afrontar l’entrevista? a la primera pregunta estic fora!”

Però bo, ja que m’havien contactat tan ràpidament, no perdia res intentant-ho, així que em vaig posar a indagar per Internet per conèixer més a fons el procés de contractació de Google i a repassar apunts de la Universitat sobre estructures de dades, programació, xarxes i sistemes operatius. Inclús he hagut d’estudiar els apunts de Xarxes del segon quadrimestre!

I com ha anat la cosa? Doncs a les 14.56h m’han trucat des de Dublin per a l’entrevista. Estava molt nerviós, massa nerviós. Mai havia fet una entrevista en angles, és més, mai havia fet una entrevista! El enginyer que m’entrevistava ha notat que estava un poc nerviós i m’ha dit mig en broma: “OK, there’s nothing to be scared! Relax!”. I ha començat les preguntes. Com? Amb xarxes!

Arg! Se m’ha caigut el món damunt. He pensat: “ja la tenim!”. Però bueno, m’havia estat preparant així que m’he dit: “anem a jugar”. Primera pregunta: “quina diferència hi ha entre un hub i un switch?”. Li ho he explicat tant bé com he sabut i semblava prou convençut. Ha seguit amb preguntes de xarxes com: “com sap un switch on enviar exactament els paquets?”. Jo sabia que un switch sols necessita de la capa d’enllaç (protocol Ethernet), així que he suposat que tindria alguna cosa a veure amb el protocol ARP i li he explicat com creia que funcionava. Ell m’ha dit que no era necessari el protocol ARP perquè el switch emmagatzema en una taula la correspondència “adreça MAC – port”, però que tenia bastant clara la diferència entre hub, switch i router. :P

Bueno, altres preguntes: quin és el rang d’adreces IP reservat a les xarxes privades, com em connecte a un ordinador d’una xarxa privada des de fora d’aquesta, etc. Esta última pregunta ha estat bé, perquè primer li he dit que utilitzant una VPN. Ell m’ha dit que és una opció, però imaginem que no en tenim una configura, li he explicat que en m’ha casa tinc un servidor casolà que funciona fent port forwarding i ha dit que ben pensat, que li agradava la solució i que podria funcionar, però m’ha preguntat si coneixia alguna altra forma i ací m’ha pillat, perquè no he recordat el tunneling! Algunes preguntes més han sigut sobre el funcionament de les ordres ping i traceroute de Linux. Eixes si que les sabia.

Ha seguit amb preguntes de sistemes operatius: què és un procés zombie, què és el que passa quan el pare mor abans que els seus fills, etc. I he anat contestant de les coses que recordava de SO1&SO2.

Després hem passat a les preguntes sobre estructures de dades i ací m’ha tornat a pillar. M’ha preguntat sobre arbres Red-Black Trees, B-Trees i R-Trees (a part de Binary Trees, llistes enllaçades i taules hash). Li he contestat sense problemes els dos últims casos, però dels RB-Trees, B-Trees i R-Trees li he donat una resposta que no n’estava segur. M’ha preguntat si sabia què era un arbre balancejat, i li he dit que sí. M’ha preguntat per quin no era balancejat entre un RB-Tree, un B-Tree i un Binary Tree i li he dit que el Binary Tree i llavors m’he donat compte que havia contestat mal la pregunta anterior (“I see your point“, li he dit), perquè havia dit que en el pitjor cas un arbre binari té cost O(log n), quan en realitat és O(n), que ocorre quan l’arbre està totalment desequilibrat. Li he contestat les dues preguntes de nou i xim-pum.

Després m’ha preguntat quins arbres solien utilitzar-se en les bases de dades per construir els índex i aquesta me la sabia perquè he estat treballant recentment amb MySQL. La resposta és R-Trees i B-Trees. I m’ha preguntat una altra pregunta mortal: I per què no s’utilitzen Red-Black trees? I aquesta si que no l’he sabuda contestar perquè no hem estudiat aquests arbres en la universitat! Però bo, m’ha dit “don’t worry” i m’ha explicat quina era la diferència entre aquests arbres i perquè s’utilitzaven per a les bases de dades (bàsicament perquè no són binaris i són necessaris menys accessos a disc).

Última pregunta “formal”: com crearia una llista a partir d’una altra eliminant els objectes duplicats. La meva solució: utilitzant una taula hash per saber si un determinat item ja l’hem inserit en la llista. Cost temporal O(n) (suposant que la taula hash està ben distribuïda), cost espacial O(n). I m’ha dit: “OK. Perfect.”

M’ha preguntat també si havia col·laborat amb algun projecte open-source i li he dit que com a programador no. Que havia llançat alguns projectes personals de codi obert i que esperava que algun dia algú s’unís a mi. M’ha preguntat sobre algun d’aquests projectes i li he parlat de l’Oracle de Woody Allen. Li he explicat com funcionava, m’ha preguntat sobre els algorismes que utilitzava, etc. “That’s cool!“, ha dit.

Al final m’ha preguntat si tenia alguna pregunta per a ell i li n’he fet algunes com ara: quina era la localització exacta per a l’oferta (Dublín o Zuric), en quins productes de Google estan involucrats els SRE, etc. Sobre la localització no m’ha sabut dir, però ell treballava en Dublín i que segurament seria allí. Després m’ha dit que els SRE (Software Reliability Engineers) en Dublín treballen sobre la infraestructura distribuïda de Google, no en cap producte en particular, però que segurament eixe no seria el treball d’un Intern perquè requereix bastant coneixement de com funciona la xarxa de Google i m’ha contat que un Intern que havia estat al seu càrrec l’any passat havia desenvolupat una aplicació semblant al top de Linux però que funcionava remotament.

Finalment li he preguntat si sabia quan rebria alguna notícia sobre el resultat de l’entrevista i m’ha dit que segurament en un parell de dies rebria un correu del Recruitment Manager donant-me el resultat i segurament convocant-me per a una segona entrevista. No sé si aquesta última part l’ha dita perquè ha quedat satisfet o si simplement ha sigut políticament correcte.

Coses a millorar: no haig de posar-me tant nerviós per a aquestes coses (em tremolaven les mans!), especialment quan no sé la resposta, perquè em limita la capacitat de pensar! En qualsevol cas, ha sigut una experiència gratificant. Ara ja sé com és una entrevista en una gran empresa (Google!), sé que entenc perfectament l’anglès oral i sé que em poden entendre a mi (espere no haver soltat molta espardenyada amb el meu nerviós) i, fins i tot, he aprés algunes cosetes sobre xarxes i arbres!

Sols faltaria que em digueren que passe a la següent fase, això ja seria l’hòstia!

Aquesta entrada s'ha publicat en Google, Informàtica, Jo i etiquetada amb , , , , , , , , , . Afegiu a les adreces d'interès l'enllaç permanent.

12 comentaris a l'entrada: Entrevista amb Google

  1. Eckreth diu:

    Tota una experiència i que be t’ho tenies guardat….Molta sort amb la resposta i demà ja em contarás més en primera persona :)

  2. Adrià diu:

    Fer un cim, fer un 8000, fer quelcom difícilment igualable.

    Molta sort en la pròpera entrevista (que segur que n’hi haurà!)!

  3. Warning diu:

    2 dies per a que al Joan entre a Google!. Es molt fort això de lentrevista hahaha eres un maquina tio ;)

  4. Blai diu:

    Enhorabona, Joan! Que callat que t’ho tenies, redéu! Molt bé, farem força tots i voràs com et tornaran a entrevistar i tot anirà bé.

    I ja saps, si t’agarren ens hauràs de convidar a alguna cosa! ;-)

  5. Joan diu:

    Gràcies a tots!

    @Eckreth demà us conte tots els detalls que vulgueu conèixer.
    @Warning Falta un poc més de 2 dies per a que m’agafen…
    @Blai Si m’agafen us convidaré a venir a Zuric/Dublín a tots! (però no a tots al mateix temps, que no cabrem!)

  6. Ivan diu:

    Moltes felicitats Joan!! Espere que acabes formant part de la competència! ;)

  7. Joan diu:

    @Ivan Hahahaha. Jo també!

  8. Gustavo diu:

    Espere que sàpiguen apreciarte i pugues anar una temporadeta a Dublín, per cert serà casualitat, o no , però desprès de llegir el teu post e vist aquest vídeo, fixat en les transparencies del segon 45 XD

    http://www.flickr.com/photos/briandunlay/5111670411/

  9. Joan diu:

    Gràcies Gustavo.

    ARgh! Red-Black tree!!!

  10. Retroenllaç: Últim mes | El vol de l'home ocell

  11. vinz diu:

    me n’alegro molt que et moguis per aquests àmbits, joan :) i espero que t’agafin!

  12. Joan diu:

    Gràcies vinz. A veure si els reis vénen carregats!

Deixa un comentari

L'adreça electrònica no es publicarà Els camps necessaris estan marcats amb *

Podeu fer servir aquestes etiquetes i atributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>