跳到主要内容

在Google运营软件团队

自从我离开学术界以来,我经常被问到谷歌的工作是什么样的我想从终身教授到软件工程师听起来像是一大步除了工作职位之外,我在新职位上比在哈佛大学工作的8年里更快乐,更富有成效,尽管在担任教授和运营软件团队之间存在很多相似之处。

像一个老板一样。
我在Google西雅图办公室领导一个团队,负责移动网络性能领域的一系列项目(有关我团队工作的更多背景,请参阅我的 关于该主题的早期博文)我们的一个项目是最近宣布的 Chrome Mobile中的数据压缩代理支持我们也在努力 的PageSpeed一系列技术,特别是移动网络优化,以及一些我还不能谈论的其他很酷的东西。

我的正式职位名称只是“软件工程师”,这是Google最常见(和令人垂涎)的角色(I say "coveted" because engineers make most of the important decisions.) Unofficially, I'm what we call a "Tech Lead Manager," which means I am responsible both for the technical direction of the team as well as doing the people management stuff(有些人使用“ÜberTechLead”这个替代词,但这对我来说有太多的变音符号。)TLM在Google中不是一个非常常见的角色:大多数团队都有独立的人在做TL和M工作我之所以这样做,部分原因是因为在西雅图以外的地方,让我的团队报告给可能在山景城的“常规”经理是没有意义的除此之外,我很高兴能够完成这两项工作并享受各种各样的工作。

There are four main aspects to my job: (1) Defining the technical agenda for the team and making sure we're successful; (2) Writing code of my own; (3) Acting as the main liaison between our team and other groups at Google, and (4) Doing the "people management" for the team in terms of hiring, performance reviews, promotion, and so forth.

学者们将立即认识到与教授的相似之处在一个学术研究小组中,教授定义了小组的技术范围以及导师和指导研究生这里最大的区别是,我不认为我的团队中的人是我的“学徒”,因为教授会和研究生一起事实上,我团队中的大多数人都是比我更好的软件工程师,而且我非常依赖他们来构建可靠,可靠的软件。我的工作是保护团队中的工程师免受干扰,并支持他们以便他们取得成功。

当然,学术生活中存在许多差异与教授不同,我不必经常乞求资金来保持项目的进展在委员会,旅行,写推荐信,无意义的会议方面,我很少分心当然,我也没有教(I loved teaching, but the amount of work it requires to do well is gargantuan.) Most importantly, my team's success is no longer defined through an  任意且经常破坏的同行评审过程,几乎适用于学术界重要的一切这是最好的部分如果我们能够很好地执行并交付具有影响力的产品,我们就会赢It no longer comes down to making three grumpy program committee members happy with the  文件提交中的字体间距但我离题了。

我花了大约50%的时间编写代码我真的需要每天坚持几个小时才能保持理智由于我没有比团队中其他人更多的编码周期(并且服务更多中断),因此我倾向于承担更普通的任务,例如编写MapReduce代码来分析服务日志并生成性能报告我实际上喜欢这种工作,因为它意味着处理大量数据并以各种有趣的方式切割和切割它我也不需要炫耀我的英雄编码技能,以便在这一点上得到提升,所以我让那些更好黑客的人实现性感的新功能。

在整体设计和架构方面,我确实对我们团队的软件所采用的方向施加了很大的影响这主要是因为我有更多的经验来考虑系统设计,而不是我的团队中的一些人,虽然这确实意味着当我有一些我不熟悉的毛茸茸的细节时,我需要顺从编写实际代码的人我的工作很大一部分是设置优先级并在我们被迫在几个不具吸引力的选项之间做出选择来解决特定问题时进行调用(这也意味着如果我做出错误的决定,我就会受热。)

I reckon that the people management aspects of my job are pretty standard in industry: I do the periodic performance reviews for my direct reports, participate in compensation planning, work on hiring new people to the team (both internally and externally), and advocate for my team members when they go up for promotion当然,我会定期与我的每份直接报告会面,并帮助他们确定优先事项,清除障碍和职业发展。

我工作中最不同的部分是作为我们团队的代表,并与Google的其他团队合作,以实现惊人的发展我的团队是较大的Chrome项目的一部分,但我们与来自世界各地的许多其他团队建立了联系,在Google的技术堆栈中开展工作我也经常召集会议来弄清楚如何协调我的团队的工作与公司周围的其他事情所以它永远不会无聊幸运的是,我们在会议上非常有效率(半小时几乎可以满足所有要求),即使有了这一切,我的会议负荷也只是学术界的一半。(此外,这些会议是 几乎 always productive; compared to academic meetings where only about 10% of them have any tangible outcome.)

尽管火灾中的重负荷和许多扑克玩家,我在谷歌的工作基本上是一个9比5的工作我很少在晚上和周末工作,除非有一些我真的很想做的事情,当工作时间超出工作时间时我收到的电子邮件数量几乎为零(虽然我正在我们团队的寻呼机轮换中,最近在半夜花了几个小时来修复生产错误。)这是对教授流行的工作,工作和工作的持续压力的巨大缓解。我也觉得我现在可以在更短的时间内完成更多工作,因为更少的分心和能够保持清晰的焦点我的看法是这样的:如果我被要求做的比我能在一个理智的工作周完成更多,我们需要雇用更多的人幸运的是,这很少是一个问题。

免责声明:本文中的所有内容均为我个人意见,并不代表我的雇主的观点。

评论

  1. 感谢这篇文章,它让我想在谷歌工作!

    答复删除
  2. 谢谢马特,有趣的写作我很高兴看到你正在寻找轮播 - 我发现这是一个很好的方式来对我们生产的东西负责,也非常了解有关软件及其用户的更多信息(我也随叫随到)我猜“寻呼机旋转”只是一个名字,或者您使用的是实际的寻呼机(而不是电话)?

    会议也很有意思 - 如果你不小心,他们可能是一个令人难以置信的时间汇。

    答复删除
    回复
    1. I actually use my phone, not a physical pager :-) I'm also the guy on the team who knows the most about how the various pieces fit together, so in some sense being on call is lower stress for me than it would be for someone new to the group!

      删除
  3. 感谢您分享您的观点。

    答复删除
  4. 我做了一个非常相似的职业生涯,感到非常高兴我从CS教授到州政府经济发展部门担任董事职务,回到软件工程制造事物比重要事情更有趣。

    答复删除
  5. Matt, now that you've both been a professor and worked at Google, if you were forced to go back to academia, what would you do differently? Have you learned anything at google (either technical or management stuff) that would make you a better professor now?

    答复删除
    回复
    1. 这是一个非常好的问题。

      如果我被迫*回到学术界,我会更像是一个软件团队We would have a clear set of objectives and milestones; we'd do code reviews; we'd all sit in the same lab together (I'd eschew a separate office except for one on one meetings); we'd do regular performance reviews for everyone (at least quarterly)对于成功需要什么,人们的期望将非常明确我不再允许学生每周蜿蜒两次,并且几个月都没有完成任何事情,直到下一篇论文截止日期为止And we'd focus on "shipping", both code and papers我会很快杀死没有吸引力的项目我对此非常不好,让一些项目拖延多年而没有任何实际结果(主要是因为我有一笔补助金,除了心理负荷之外没有任何下行空间。)

      删除
    2. 马特,

      非常感谢你分享这个作为在开始获得顶级博士学位之前曾在该行业中度过时间的人程序,我很惊讶学生的工作没有像你在这里指定的那样组织对我来说,它似乎总是误导人类的潜力。

      Wouldn't you say, however, that in the long term, students' lack of focus is what allows them to come out as independent thinkers and people who are able to scope their own problems and figure out their own ways of getting around the problems? Isn't the freedom of exploring -- as opposed to a "focus on shipping" -- isn't it a distinguishing feature of a Ph.D.?

      我问,因为我个人也会像软件团队一样管理我的团队我一直想知道为什么许多人不这样做 - 这是因为缺乏教师时间,还是缺乏特定的智慧。

      删除
    3. 亲爱的马特和匿名者#1,

      我觉得不同之处在于您是否希望最大限度地提高研究组的产量(作为确保任期的一种方式),而代价是要培养学生的独立研究技能。

      许多成功的教授微观管理他们的学生,以定义他们的问题陈述,设计实验,分析结果,并撰写大部分论文这些学生自己很少成为成功的学者。

      这只是我2美分。

      删除
    4. 嗨马特,
      感谢您提供非常有见地的写作。

      继续被迫被迫*回到学术界我想知道您作为软件工程师的经历是否会影响您进行研究的前景以及您如何选择研究项目?

      谢谢,
      H

      删除
    5. 我无法回应关于“微观管理”学生的匿名评论这不是我建议的我认为你可以建立一个有效的研究小组,让学生不被懈怠。

      Anon#2:是的,我在工业界的经验肯定会影响我的研究方法然而,你赢得学术游戏的方式是写论文,而不是建立有用的产品善于撰写论文并不一定意味着你正在处理正确的问题,或者甚至可以为他们中的任何一个提供有效的解决方案与此同时,我认为学术研究人员不应该解决公司试图解决的同样问题。

      删除
  6. 嗨马特,只有几个问题:

    (1) How big is your team? (I imagine there is a big difference between managing a 5 person team and even a 20 person team)与此相关,所有团队成员都直接向您报告?

    (2) You talked about all the things you prefer in your current job and I have no doubt you are happier and more productive, but are there some things you miss about your academic job? (besides teaching, which you already mentioned)

    答复删除
    回复
    1. 我的团队对Google的项目团队来说是平均水平 - 超过5,少于20但我们确实有几个“姐妹”团队,我们密切合作,所以参与的人数比我的直接报告要多Yes, everyone on the team reports directly to me; I'm not (yet) a middle manager.

      我不能说我很想念学术界主要是与学生的联系多年来,我有这么多令人惊叹的本科生和研究生通过我的研究小组和课程,很高兴跟随他们的职业生涯,感觉我在他们的成功中有一小部分所以我想我想念学术上的“家谱”。

      删除
  7. 谢谢你这篇精彩的文章它为许多对大学运作方式感到失望的人发出了声音作为博士和出版作家,我对有多少无能的学者感到羞愧。

    我最近看到一个人具有二年级本科生的研究技能,并获得了高级讲座职位面试小组的特色是同样不能写作或研究的人。

    10%的会议数字是现场我和我的朋友去过很多会议,完全没有取得任何成果You mentioned Harvard; imagine what it is like at a run of the mill university情况要糟糕得多。

    与此同时,质量思想家也被疏远了或者在你如此雄辩地展示的其他地方找到更好的工作。

    Hopefully, people like you will cause change或许新的信息/研究中心本身不会被称为大学。

    答复删除
  8. 这是一个有趣的读物我也是一家教育软件公司的技术主管经理,我的角色听起来和你的一模一样。

    答复删除
  9. Thank you very much for your post! It really helped me.

    答复删除
  10. 这是一个很好的阅读,感谢分享!

    答复删除
  11. 您认为大多数会降低学术界“工作,工作,工作的持续压力”是什么?

    Is is that your have more people in your group? That they are better qualified or more independent than students? Or simply that there are less time wasters like meetings and reviewing papers?

    答复删除
    回复
    1. 我以前在博客上发表了大量的博文,但简短的版本是教授的工作从未完成你可以随时处理另一篇论文,另一篇提案,另一篇演讲,加入另一个委员会,等等由于您发布和参与的事物数量与您作为学术成员的成功直接相关,因此它永远不会停止。

      删除
  12. “如果我被要求做的比我能在一个理智的工作周完成的事情更多,我们需要雇用更多的人。”

    我希望每个人都这样看即便是员工也会因此而失控我曾经有一个初级程序员,他工作了80个小时,可能只有我们其他人的一半我试着向他解释,当你晚上9点在办公室时,没有人会注意到,你忽视了你的家人,这让你感到沮丧,这导致你的生产力低下我告诉他我们需要你每周工作40个小时并且不再想成为英雄他不明白我告诉他减少工作时间我试着解释一下,如果他有适当的休息和时间和他的妻子一起度过,我认为他会做得更多,他的妻子是残疾人,需要很多关注他不给予我们最终不得不让他离开 - 主要是因为他没有做他被告知的事情 - 我告诉他每天下午6点回家,我告诉他如何以这种方式完成工作,但他没有这样做So basically, he was let go for insubordination - for refusing to work fewer hours! Can you believe that?

    答复删除
  13. 令人遗憾的是,学术体系如此蹩脚但如果人们没有意识到它是蹩脚的,并且浪费了他们的职业生涯,那就更加悲伤了很高兴你看到了这么多用途的灯。

    答复删除
  14. 根据我在行业管理和学术界作为研究主管的经验,我不确定在今天的软件工程程序中,谁能真正学到领导或从事大型软件项目所需的技能。

    谷歌有这么多钱,实践可能会对一个不那么富裕的公司有害。

    答复删除
    回复
    1. Can you give an example? I am not sure what you're getting at here.

      删除
  15. 马特,
    您的团队使用哪些编辑器或IDE?

    答复删除
    回复
    1. 几乎所有在阳光下的东西..就个人而言,我使用vi :-)

      删除
    2. you monster! emacs all the way...

      删除
  16. 我和我上学的同一个专业工作至少在计算机科学专业,我可以很容易地看到我们如何在学校浪费时间,主要是因为教授如何领导他们的课程在教学生之前,我希望教授有义务在一个行业工作。

    答复删除
  17. 它的内容非常好,我已经看到了你。所以现在你们正在做两个平行的活动。你的帖子肯定会为新生和学生的职业生涯提供一些方法。

    答复删除
  18. 在访问伦敦和都柏林(特别是都柏林)的谷歌办事处之后,我可以看到你如何通过那里的良好环境和工作精神提高工作效率。

    答复删除
  19. Matt, what is your next career goal and plan? Do you want to move up to higher leadership positions or do you want to stay as "engineer"?

    答复删除
    回复
    1. 好问题简短的回答是,我不知道更长的答案是,我意识到在编写代码和构建真人使用的真实内容时,我最开心幸运的是,在谷歌,我可以继续职业生涯,而不需要承担更多的管理职责我认为我不想在没有能力编码的情况下整天参加会议。

      删除
  20. Matt, do you get the same elation when you write code for Google as compared to say when you wrote SORA? I am asking this because - in my opinion, papers are more durable than programs每个人都可能会在Google上忘记您的代码,但您仍然会被记住为SORA的共同作者之一(我认为这是WSN中被引用率最高的论文之一)。

    在编写像SORA这样的论文方面为人类的知识做贡献我认为比整天抛出一些python代码更重要说啥?

    答复删除
    回复
    1. 我恭敬地不同意我很高兴你喜欢SORA论文,但是我愿意打赌不到1000人曾经读过它(更少有人知道它)确实,当你写一篇*真正*里程碑式的论文 - 比如RAID - 那么它将对学术界和工业界产生巨大影响但是很少有学术工作会产生这种影响正如我在博客中谈到我决定加入Google的时候,对我而言,这是一个关于我想要在哪个方面开展创新工作的问题就个人而言,处理对真实用户有直接影响的事情会更令人满意这并不是说你不能为那些可能只有5年或10年后的事情而努力工作 - 但这不适合我。

      删除
  21. 这正是我所寻找的信息非常感谢分享。

    答复删除
  22. 此评论已被作者删除。

    答复删除
    回复
    1. 如果其他读者在这里也有有用的建议/经验,我会非常感兴趣。

      删除

发表评论

此博客的热门帖子

我为什么要离开哈佛

我已经决定辞去我在哈佛大学的终身教职,留在谷歌显然,这将是我职业生涯中的一个重大变化,也是我在过去几个月中花费了大量时间考虑的事情。

我不应该让谣言传播我的举动的原因,我认为我应该非常直接地解释我的想法。

我首先要说的是,由于哈佛问题,我不会离开相反,我喜欢哈佛,并会很想念它计算机科学系是绝对一流的,学生是教授希望与之合作的最佳人选这是一个梦幻般的环境,非常支持,并且有很多优秀的人才。 They were crazy enough to give me tenure我现在离开时感到内疚我加入了哈佛大学,因为它提供了一个机会,可以对一所重要学校的一个重要部门产生重大影响。我对八年前去那里的决定感到无比遗憾但是......

在Go中重写大型生产系统

我在谷歌的团队正在努力重建一个大型生产系统(几乎) 我说“差不多”因为系统的一个组件 - 一个用于图像格式之间转码的库 - 在C ++中运行得非常好,所以我们决定保持原样但系统的其余部分是100%Go,而不仅仅是用C ++或其他语言封装现有模块这是一次有趣的体验,我想我会分享一些经验教训。

为什么重写?

我们必须回答的第一个问题是为什么我们首先考虑改写当我们开始这个项目时,我们采用了一个现有的基于C ++的系统,这个系统是由我们在Google的两个姐妹团队在几年内开发的。这是一个很好的系统,并且它的工作非常出色然而,它已经在几个不同的项目中使用,目标大不相同,导致了一个非常重要的挫折随着时间的推移,我们很快就会继续创新......
yabo88安卓
yabo88安卓 is a computer scientist and engineering manager at Google, where he works on ChromePrior to joining Google, he was a Professor of Computer Science at Harvard. 关于马特的更多信息......