4. Posizioni per ingegneri in Google
Software Engineer - "programmatore"
Software Engineer in Test/QA - programmatore dell'infrastruttura di
testing
Site Reliability Engineer - si occupa dei server
UX Designer - rende i nostri prodotti facili da usare
Product Manager - coordina il lavoro con i non-ingegneri (marketing,
avvocati, PR, etc.)
Field Tech - "tuttofare dell'IT"
Operations - infrastruttura interna
Sales Engineer - lavora in partnership con i clienti
Hardware Engineer - progetta e costruisce i server su cui gira Google
Security Engineer - protegge i prodotti di Google dagli hacker
Webmaster - sviluppa le pagine web e disegna i 'Google Doodles'
Developer Programs Engineer - ingegneri "public-facing"
5. Come mi candido?
Per prima cosa dai un'occhiata a
questi due siti per verificare quali
posizioni sono aperte:
Professionisti: www.google.com/intl/en/jobs/locations
Studenti: www.google.com/jobs/students/emea
6. Aree di sviluppo
Aarhus (Danimarca) Munich (Germania)
V8 Engine, Java Virtual Engineering Tools
Machine Privacy
Client
Israel
Analytics St. Petersburg (Russia)
Insights & Trends, Forecasting Client
Oneboxes Toolbar & Annotations
Query Formulation Features /
Suggest Stockholm (Svezia)
Visualisation Technologies Talk Video
Networking Software
Krakow (Poland)
Dublin (Irlanda) Contacts
SRE Capacity Management
Data Processing and Analysis
7. Aree di sviluppo (cont.)
London (UK) Zürich (Svizzera)
Publisher Platform Search: Index, Quality,
Rich Media Advertising Ranking, Spam
AdSense for TV Geo:Infrastructure, Page,
Android HTML 5 Photos, Layers
Mobile Applications YouTube: Content ID, Ads,
Voice Search Infrastructure
Mobile Maps Apps: Gmail, Calendar, ...
Regional Engineering
Moscow (Russia) Google Base & Product Search
Client/ChromeOS
Product Search
Russian-market products
mobile, iGoogle, Search
8. Una selezione di progetti EMEA
Google Dashboard (Munich and Zürich)
Suggest (Israel)
Hot Topics (Israel)
Google Goggles (Israel)
YouTube Content ID (Zürich)
Place Page (Zürich)
Transit Layers (Moscow and Zürich)
Mobile web maps (London)
Google Tape (Zürich)
Safe Search (Zürich)
Talk video (Stockholm)
Kefir (Moscow)
Confucius (Zürich/Beijing)
Trader and SMS Tips for Africa (Zürich)
9. Priority Inbox, Zurich
Priority Inbox looks at 5 features:
Social, Label, Content, Spam, Thread
Teach Priority Inbox by
Priority Inbox
marking more or less
important
10. Google Chrome V8 Crankshaft, Aarhus
New compilation infrastructure for V8, Google's Chrome JavaScript
Boosts V8's performance by 50%
With Crankshaft
11. Google search app for iOS, London
● Search by voice
● Search by image
(Google Goggles)
● Access other Google
apps (Gmail, Maps, Calendar,
etc.)
● Search near my location
Third most downloaded app ever
12. Google Dashboard, Munich
‘Che informazioni ha Google su di me?’
Organizzata per prodotto
Mostra i dati associati al tuo account Google
Link alle pagine dove puoi
Nome del prodotto o controllare i dati per questo
servizio Google prodotto (ad es. decidere di non
salvare la cronologia delle chat in
Gmail)
www.google.com/dashboard
16. YouTube Content ID, Zürich
Il problema della gestione dei contenuti:
20 ore di video caricate su YouTube ogni minuto
diritti e richieste di "takedown"
più facile mostrare pubblicità quando possiamo identificare
il proprietario
19. Mobile Web Maps, London
Da un'applicazione che usa Maps a Maps direttamente nel
browser mobile
Esperienza migliorata: navigazione 3D, StreetView, ricerca
lungo il percorso, ricerca vocale, vista del traffico
20. Google Tape, Zürich
● Utility facile da usare per trasferire grandi quantità di
dati da GFS (Google File System) o un altro
meccanismo di storage su nastro e relativo ripristino dei
dati da nastro.
● Progettato per gestire data set grandi diversi petabytes
(1PB = 1015 bytes) per archiviazione e backup
periodico.
● Usato da più di 100 progetti, ad es. Gmail e YouTube
21. Safe Search, Zürich
● Safe Search supporta 39 lingue
● Opzione Safe Lock
● Riconoscimento della pornografia (anche nella ricerca
immagini) usando machine learning automatico
23. Kefir, Moscow
Trova tutti i
Find all
prodotti venduti
products
online ...
da tutti i
sold online ...
venditori online
by all online
...
retailers
in tutto il
... world-wide
mondo
24. Confucius (Google Q+A), Zürich/Beijing
Q+A social
Lanciato in Russia (sviluppato originariamente in Russia),
Cina, MENA (in Arabo)
non presente in USA
questi mercati hanno bisogno di piu contenuti online -
Confucious crea questi contenuti
26. Come collaboriamo con gli studenti
Scholarships
Doctoral Fellowships
Internships
Full-time positions
Ambassador programme
Per maggiori informazioni http://www.google.com/university/emea/
27. Come collaboriamo con gli accademici
Visiting Faculty programme
Research Awards
Faculty Summit
Post-doc positions
CS4HS (Computer Science for High Schools)
Google Code University
Per maggiori informazioni http://www.google.com/university/emea/
30. Curriculum e lettera di presentazione in Google Docs
● Modelli di curriculum (anche uno
specifico per gli studenti) disponibili
online su docs.google.
com/templates
○ Click su Resumes & Cover
Letters
● Facile da convertire in altri formati
○ HTML
○ PDF
○ Text
○ Office o Open Office
31. Processo di assunzione
● Ti candidi online o tramite referral
● Noi valutiamo il curriculum
● Prima serie di colloqui telefonici o nel campus
● Colloqui onsite presso una sede di Google
● Offerta di assunzione
Gli ingegneri di Google sono coinvolti attivamente nel processo di
assunzione e si occupano di valutare i curricula, effettuare i colloqui
ed esprimere valutazioni per rendere più facili le decisioni relative
all'assunzione.
32. Parlando di Google Docs…
Se avete un colloquio telefonico con Google, aspettatevi di dover
scrivere del codice in Google Docs, un editor di testo web-based che
permette di condividere il proprio lavoro online e facilita la
collaborazione in tempo reale.
33. Preparazione al colloquio
Cosa aspettarsi
● Breve introduzione
● Una o più domande per valutare le competenze tecniche
● Chiusura con le tue domande
● Nessun quiz (non servono a valutare le vere competenze)
Valutazione delle competenze tecniche
● Sintassi del linguaggio, librerie principali, performance
● Algoritmi e strutture dati
● Capacita' analitiche
● Design di soluzioni informatiche
34. Preparazione al colloquio (cont.)
Come prepararsi prima del colloquio
● Ripassa i fondamenti dell'Informatica (pensa agli anni dell'Università)
● Ripassa algoritmi e strutture dati
● Fai pratica a scrivere codice, specialmente se sei fuori allenamento;
concentrati sul tuo linguaggio preferito
○ Scrivi su una lavagna o su carta
○ Il linguaggio non ha importanza - ti verra' chiesto di usare il tuo
linguaggio preferito
● Leggi qualche articolo online sui colloqui
● Conosci qualcuno in Google?
○ Chiedigli di parlarti della loro esperienza
○ Chiedigli di farti da referrer
35. Preparazione al colloquio (cont.)
Durante il colloquio
● Siamo interessati al tuo approccio al problem-solving. Pensa ad alta
voce. Fai domande.
● Le nostre domande andranno in profondità. Vogliamo vedere come
affronti dei problemi complessi.
● La risposta corretta e' apprezzata ma non sempre necessaria - il
ragionamento e' più importante.
36. Preparazione al colloquio (cont.)
Come prepararsi per un colloquio fra un paio di anni
● Sviluppa delle solide basi di informatica
● Impara uno o più linguaggi di programmazione
○C
○ C++
○ Java
○ Python
○ C#
● Fai esperienze al di fuori dell'aula
○ Associazioni o club di Informatica
○ Competizioni di programmazione
○ Stage
○ Progetti Open Source (e non dimenticarti di Google Summer of
Code)
37. Esempio di quesito tecnico
“Inverti l'ordine delle parole in una frase.”
L'obiettivo e' quello di scrivere una funzione che prende una stringa e
inverte l'ordine delle sue parole senza invertire l'ordine delle lettere
all'interno di ogni parola. Sii pronto a testare la tua funzione!
38. Risolvere il problema – Parte 1
Rendi più chiaro il problema
● Considera un esempio ricco a sufficienza ma non noioso:
“Fight, don’t compromise.”
● Definisci il risultato atteso: “compromise. don’t Fight” …
● Chiarisci quali sono le tue assunzioni: risultato atteso,
linguaggio, requisiti di memoria o performance, se la
soluzione sara' distruttiva, etc...
● Definisci la signature della funzione.
39. Risolvere il problema – Parte 2
Inizia con la prima soluzione che ti viene in mente.
● Afferma pure che la tua prima soluzione verra' raffinata in
seguito.
● Normalmente questa sara' una soluzione basata su brute-
force.
● Prova a far girare il tuo codice con un paio di esempi per
testarne la correttezza.
● Verifica i casi limite.
● Prova ad usare nomi di variabili adeguati o di ripulire il codice
dopo la prima passata.
● Valuta la complessità dell'algoritmo
● Chiedi all'intervistatore se ha delle domande prima di passare
all'ottimizzazione.
40. Risolvere il problema – Parte 3
Raffina la soluzione.
● Rendi chiare le tue assunzioni e i tuoi obiettivi (ad es.
migliorare le performance)
● Ricomincia dall'inizio.
● Confronta le due soluzioni.