UNEaprès avoir obtenu un baccalauréat en informatique de l’UCLA Samueli en 2005, Josh Hyman (’05, MS ’08, Ph.D. ’10) a accepté une offre de travailler à temps plein chez Google après avoir effectué un stage en génie logiciel au printemps de sa première année. Depuis, il fait partie du géant de la technologie. Hyman a poursuivi ses études à l’UCLA après ses études de premier cycle pour sa maîtrise et son doctorat. en informatique tout en travaillant chez Google. Aujourd’hui, il travaille en tant qu’ingénieur logiciel principal sur des projets tels que Google Assistant. Il enseigne également le CS130 à l’UCLA, qui couvre les pratiques de génie logiciel évolutives et met l’accent sur l’aspect pratique sous la forme de déploiement de serveur Web en C ++. Nous avons rencontré Hyman pour une mise à jour.
Q: Sur quoi travaillez-vous actuellement chez Google?
UNE: Je suis le responsable technique de l’équipe qui construit l’infrastructure pour Google Assistant.
Q: Sur quelles parties de ma recherche Google et de mon expérience utilisateur avez-vous travaillé?
UNE: J’ai travaillé sur la recherche d’images et de vidéos dans une perspective d’infrastructure. Mon travail sur l’Assistant Google s’est concentré sur la création d’éléments tels que l’infrastructure de compréhension du langage naturel et l’infrastructure de reconnaissance vocale. Je travaille également sur la plateforme de développement de fonctionnalités qui permet aux gens d’ajouter de nouvelles fonctionnalités à Assistant. Par exemple, avec les récents incendies en Californie, les gens peuvent ajouter une fonction pour la qualité de l’air ou les rapports météorologiques. Mon équipe jette les bases de l’expansion de la plate-forme, qui est similaire à la façon dont les routes et la plomberie sont la base de l’infrastructure d’une ville.
Q: Comment pensez-vous que votre travail évoluera dans un proche avenir?
UNE: Eh bien, je fais partie de l’équipe Google depuis un peu plus de 15 ans et j’ai travaillé sur l’infrastructure de l’Assistant Google pendant environ deux ans. Je pense que je travaillerai probablement sur Assistant Infrastructure pendant au moins deux ans, et après cela, qui sait? J’aime diriger de grandes équipes pour résoudre des problèmes complexes et difficiles. Mon équipe actuelle compte environ 200 ingénieurs, et j’apprécie vraiment l’ampleur des défis que nous pouvons relever ensemble. J’espère avoir l’opportunité de continuer à travailler à cette échelle pour les années à venir.
Q: Pourquoi avez-vous décidé d’enseigner à l’UCLA et comment conciliez-vous une carrière bien remplie de travail chez Google et d’enseignement?
UNE: Un ami et moi avons eu la chance d’enseigner le génie logiciel (CS 3) à Caltech il y a plusieurs années alors qu’ils essayaient de redémarrer la classe en utilisant des professeurs de l’industrie. Lorsque l’occasion s’est présentée d’enseigner à mon alma mater, j’ai sauté sur l’occasion. J’aime vraiment enseigner, à la fois dans le cadre académique et au travail, pour aider les gens à grandir et à apprendre. L’équilibre entre le travail et l’enseignement est assez difficile pendant le trimestre où j’enseigne. J’essaie d’alléger ma charge au travail en déléguant de manière agressive, ce qui contribue également à faire grandir ceux de mon équipe. J’essaie de m’appuyer sur nos assistants techniques et mes co-conférenciers pour répartir la charge d’enseignement et de notation. C’est très amusant, mais c’est aussi beaucoup de travail.
Q: Si vous pouviez enseigner à une autre classe à l’UCLA autre que CS130, quelle serait-elle et pourquoi?
UNE: Je pense que j’enseignerais CS111 à UCLA, qui est un cours sur les principes de la conception de systèmes d’exploitation, ou une classe de systèmes distribués comme CS188 parce que le domaine d’expertise que j’ai développé concerne la construction de systèmes distribués à grande échelle.
Q: En général, quel est l’objectif des étudiants qui suivent le CS 130? Et pouvez-vous expliquer pourquoi il se concentre sur C ++, par rapport à d’autres langages de programmation?
UNE: Le grand avantage de CS130 est l’exposition au développement de logiciels professionnels. Le type de logiciel que les élèves construisent généralement en classe est souvent jetable: vous écrivez le code d’un projet, puis ne le touchez plus une fois qu’il est remis. Nous essayons de donner aux élèves la possibilité de travailler avec un code qui simule le changement au fil du temps et le évolution d’un projet sur lequel un développeur professionnel travaillerait dans la vraie vie. L’objectif est de fournir aux étudiants les outils dont ils ont besoin pour réfléchir et gérer ce changement au fil du temps, de sorte que cela ressemble moins à une tâche de codage qu’à quelque chose qu’ils verraient au travail.
La raison pour laquelle CS130 se concentre sur C ++ au lieu de langages de programmation peut-être plus modernes est simplement parce que les professeurs sont plus familiers avec C ++. Nous l’utilisons tous les jours au travail; en fait, la majorité du code chez Google est écrit en C ++. La vérité est que les langages de programmation n’ont pas vraiment d’importance, pratiquement parlant. Les techniques de génie logiciel qui comptent sont généralement applicables dans toutes les langues. Lorsque je recrute des membres de l’équipe ou participe à des processus de recrutement, le langage de codage principal du candidat ne joue pas beaucoup dans ma décision.
Q: Vous avez débuté en tant qu’assistant de recherche à l’UCLA et effectué des stages en génie logiciel chez Universal Studios et IBM avant de travailler chez Google. À quoi ressemblait le processus de recherche de carrière après l’UCLA?
UNE: J’ai assisté à un salon de l’emploi à l’UCLA au cours du trimestre d’automne de ma première année et j’ai remis à quelqu’un mon CV, ce qui m’a valu mes stages chez Universal Studios, IBM et Google. Pendant le trimestre d’hiver, j’ai développé des outils d’analyse et de remédiation de la sécurité pour Universal Studios en tant que stagiaire en génie logiciel. Après avoir terminé cela, j’ai organisé mes cours du trimestre de printemps afin de pouvoir commencer à travailler à temps partiel chez Google en avril, où j’ai travaillé sur des compilateurs. J’ai ensuite quitté Google pour l’été pour faire un stage chez IBM Extreme Blue dans la région de la Baie, travaillant sur des déploiements Linux. IBM Extreme Blue a été un stage fantastique; J’ai vraiment apprécié mon temps là-bas. Ma recherche de carrière a été un peu un tourbillon – j’ai essayé de tout faire en même temps – mais ces stages m’ont vraiment aidé à me concentrer sur le type de travail que je voulais faire et le type d’entreprise pour lequel je voulais travailler au moment où j’ai obtenu mon diplôme. avec mon baccalauréat au printemps 2005.
Q: Vous êtes un triple Bruin! Pourquoi avez-vous choisi UCLA pour votre BS? Et pourquoi avez-vous décidé de continuer ici pour des études supérieures?
UNE: Eh bien, j’ai grandi à Los Angeles et presque tout le monde dans ma famille proche a fréquenté l’UCLA – mes parents, ma sœur cadette, mon oncle, mes neveux… la liste est longue. Nous avons même grandi en fréquentant Bruin Woods, donc l’UCLA est dans l’ADN de ma famille. Je suis aussi un athlète guerrier du week-end et un fan de longue date de UCLA Sports – revenir à UCLA avait du sens.
Q: Quel a été l’impact de votre formation à l’UCLA sur votre carrière? Y a-t-il une classe particulière que vous avez trouvée la plus utile et pourquoi?
UNE: Il est difficile d’exagérer l’importance de mes études à l’UCLA. Mon travail de premier cycle m’a donné toutes les bases pour raisonner sur les problèmes d’ingénierie et comment créer des logiciels. Mon travail de diplômé m’a aidé à devenir plus autonome grâce à la recherche autodirigée et m’a appris à lire et à écrire à un niveau professionnel. J’utilise tous ces outils au quotidien au travail. Les cours comme CS 111, 118, 130, 132 et plusieurs classes supérieures sur les systèmes étaient les plus utiles et les plus agréables. Ce n’est probablement pas une surprise que ma concentration professionnelle sur les systèmes et l’infrastructure soit née de certaines de mes classes préférées. Ces classes m’ont donné une carte de la manière dont les composants système les plus basiques sont construits et m’ont donné une idée de la façon d’encapsuler des problèmes complexes dans des interfaces simples.
Q: Avez-vous des conseils pour les étudiants qui envisagent des études supérieures ou postulent à des stages / emplois?
UNE: Lorsque j’ai obtenu mon stage chez Google et IBM pour la première fois, je n’avais aucune expérience de stage ou connexion préexistante. Ainsi, il est possible de simplement assister à des salons de l’emploi, de faire connaissance avec les recruteurs et de décrocher un emploi. Avec l’ingénierie logicielle, vous pouvez écrire du code à partir de votre ordinateur portable sans travail actif, je vous recommande donc de simplement trouver des moyens de jouer avec vos propres projets. Trouvez un problème qui vous passionne et allez-y. Cela peut également être une histoire que vous pouvez ensuite partager lors d’entretiens ou avec des recruteurs. Cela vous permet de vous démarquer en tant que candidat d’avoir pris des initiatives et de montrer que vous avez un réel intérêt pour le domaine au-delà du travail scolaire requis. Et c’est pourquoi CS130 se concentre sur des projets réels – notre travail en classe est très similaire à ce que nous faisons dans l’industrie, donc nous espérons que ces compétences pourront se traduire de manière transparente dans les futurs emplois des étudiants.
Sarah Wang a contribué à cette histoire.