我们团队(Outlook Mobile 苏州)正在招人,iOS 和 Android 都要(内推方式直接看文章最后),你过来将会负责 Outlook for iOS 和 Outlook for Android 的开发工作。鉴于有些朋友对 Microsoft 和 Outlook Mobile 没有足够的了解,甚至对 Microsoft 有着严重的误解,我这篇文章会对我们团队,包括 Outlook Mobile 苏州和 Global Team,以及微软苏州做个简单、真实的介绍(本文仅代表我个人观点,与我的雇主没有任何关系)。
基本上看完你就知道为什么我会觉得我们团队是我现在最满意的团队,以及你为什么会想要加入我们。很多人可能以为我会讲公司有免费零食饮料这种表层的东西,这种东西固然是聊胜于无,但除了让你的脂肪增长以外也没什么好处(公司有健身房,尽管我没去过),都是资本家骗人的小伎俩。而我要讲的,是一个团队会真正影响你的东西。
# 对微软的成见
很多人对微软有特别的成见,我只能说你大爷还是你大爷,但微软已经不是那个微软了。现在的微软是一个很开放的公司,已经不再是老牌软件开发商这样一个老态龙钟的形象。收购 GitHub 这种操作我就不说了,你可以去看看最近几年在开源社区投入最大的几个公司都有谁。
从前的微软总是带有一种和开放对立的气质,但这个帽子早应该甩掉了。
在前景方面对微软也应该有足够的信心,如果你去看近 30 年排名前列的公司,你会发现尽管第一名的公司一直在变化,但一直在前列浮动的就只有微软。这个公司不太可能倒闭,倒是可能因为股价的上涨小小地赚一点钱。昨天微软发第一季财报,净利润同比增长 34%:https://www.microsoft.com/en-us/Investor/earnings/FY-2019-Q1/press-release-webcast
微软苏州是一个成立不久的新 Branch,在创意产业园有独立的一栋楼。我不知道现在有多少人,我知道的是这里的扩张速度还是挺快的,两年前这里应该只有两三百人,但现在光是 Office 365 团队已经有超过两百人。这里不止 Office 365 一个团队,还有 Cortana、Bing Ads、SharePoint 等等,大部分都是工程师,也有设计团队。
# 在微软开发 iOS 是什么体验?
很多人可能会以为在微软开发 iOS 是一件特别愚蠢的事情,这其实是彻头彻尾的误解。我不开玩笑地说,这个地球上在 iOS 方面做得比微软更好、更良心的公司还真不多,我们在 iOS 平台有大量的应用,包括 MS Office 这种巨型项目,也有 Outlook iOS 这种中型的项目,还有微软识花这种小清新的项目。这其中有很多的应用有巨量的用户,也有很多应用被 Apple 反复推荐。
当然了,产生错觉我是完全能够理解的(我面试的时候也觉得在微软做 iOS 可能不太靠谱),大部分人觉得微软和 Apple 是纯粹的竞争关系,可能不会在对方平台上面投入太多。但事实是微软已经在更高一级的战场(硬件和操作系统)上失去了 Mobile,所以这些年在 iOS 和 Android 上面的投入是不断地增加,做的事情也越来越专业。
# Outlook Mobile 的现状
Outlook Mobile 之于微软也是一个特别的存在,我们团队的前身是 Acompli 和 Sunrise 两家公司,一家做邮件,一家做日历,微软收购了这两家公司。所以我们团队的一大好处是,我们现在仍然保留着很多创业团队才有的团队文化。足够年轻,足够 open,足够工程师范。
我们应用的月活现在超过一亿,这里有足够多的东西让你去学习,并且最重要的是:团队里面的每一个人都享受着对项目同等的权利。旧金山团队并不会主要负责什么,苏州团队不会有什么东西不能做,与很多外企的中国分部不同的是,在这里只要你有能力做一件事情,你就可以做。
这种平等同样渗透着一个需求达成的方方面面,我们从一个需求的制定、设计、开发到最后上线,工程师都是全程参与的,你可以说任何你想说的,你的想法最终会呈献给巨量的用户,你不再是你老板的传话筒,你是团队大脑的一部分。
在工程实践方面,我很难说我们做的都是对的,但我可以列举一些对我而言有吸引力的点:
- 每个礼拜都发版本,稳步地迭代,从来没有需求特别密集的时候
- 没有 Hotpatch 这种机制,但我入职的两年时间就没有出过大的问题
- 非常完善的开发工具和流程,我们相信在很多方面人并没有程序靠谱
- 真正的 work life balance,从来不加没有意义的班(在 BAT 工作过的应该知道我在说什么)
- 如果你喜欢 Remote,我们团队在苏州、旧金山、纽约、西雅图和班加罗尔等多个地区都有团队
- 很多去美国出差的机会,美国那边也会经常来人到中国,很好的英语学习环境
- 没有测试工程师,但重度依赖 Code Review,我们用极其严苛的要求对待每一行代码
- 设计师真的去理解平台,在 iOS 和 Android 上面你会看到完全不同的设计,都是充分为平台考虑的(反观很多团队只是简单把 iOS 复制到 Android)
- 从来不去研究一些奇技淫巧,如果一件事要 Hack,那多半是错的,我们不做那样的事情
- 只支持最新的两个 iOS 版本,你不用去考虑老系统上面的一些疑难杂症,马上就去掉对 iOS 10 的支持
在 iOS 上面我们用 Swift(2000K+ SLOC 里面现在 Swift 占了大部分),Android 上面用 Kotlin,但我们并不是什么流行就用什么,更多的时候我们考虑的是“什么是最佳实践”。在国内很多团队你真的很难体会到“最佳实践”这四个字,更多的时候团队考虑的只是如何快速地出东西(我不评价这个,因为这和商业模式也有关系),但事实上把东西做出来并没有什么了不起的,把事情用正确的方式做出来才是困难的部分。
而我在 Outlook Mobile 团队学到最多的一点,就是如何去正确地把事情做出来,你会知道一件事情的底线在哪里,这更利于你成长成为一个正常的工程师。很多公司的工程师其实附加了业务的光环,可能对业务很了解,但脱离了这个就会大大减分(同样我并没有吐槽这个,这是选择问题)。而我们这里,你学到的大部分内容基本和业务无关,你离开微软之后留给你自己的东西会更多。
另外,我也依然很感激其他职位的专业程度,我只举一个例子:这边的 PM 不会无缘无故让工程师去试错。在很多团队里面,PM 无止境地让工程师试错,这是极其不专业的行为。在这边你能感受到 PM 的专业程度,感受到他对设备、系统的理解,以及对需求的深思熟虑,这是一种极大的尊重。当然了,如果你要觉得”浪费时间也是浪费老板的时间,反正老板是付过钱的”我也不反驳你,总之我不愿意跟不专业的人合作。
# Outlook Mobile 是个什么样的应用?
我只从理性的层面说一些事实:
- MAD 110M+
- iOS 美区评分 4.7 (820K 条)
- iOS 美区效率榜常年前五
- 多次 App Store 官方推荐
- The best email app for iOS and Android - The Verge (https://www.theverge.com/2018/9/28/17911432/best-email-app-ios-android)
总的来说,这是一个体量足够大、用户体验足够好的邮件客户端。
# 我们在招什么样的人?
很多人可能会以为做这样的产品一定有很多的工程师,但是核心团队全球加起来 iOS 的话可能不足 20 人,我们依然是保持着小团队。当然了,我们最近增加了很多的 HC,这也是我写这篇文章的主要原因:我们要招人!!!
JD 在这里:https://careers.microsoft.com/us/en/job/494372/SEII-Sr-Mobile-Software-Engineer,老实说 JD 这种东西都是比较虚的,更大程度上我们是希望找到契合我上面说的这种文化的人,让我们团队绝大部分人都满意的人。当然你得足够强,能通过我们的算法面试以及一些颇有经验的工程师的刁难。不过正如我上面所说,我们绝对不会问一些奇技淫巧,我们希望你是一个正常的、有经验的程序员。
与很多团队不同的是,我们的面试流程里面会要你去做一个小项目,你需要在这个项目里面展示你的工程实力和架构能力,以及对优雅代码的追求。这个项目不会占用你太多的业余时间,我们期待的时长大概是 8 个小时,但需要注意的是我们的标准是在那的,如果随随便便做的话可以说必挂无疑。
用这样的招聘标准导致我们招人的速度一直很慢,但这是我们愿意看到的,我们希望进来的每一个人都合适(合适是一个双向的词汇),宁缺毋滥。
# 最后
还有很多的细节纠结于篇幅原因只能打住,有任何疑问或者兴趣,都欢迎你通过各类渠道联系上我,在允许的范围内我会做尽可能真实的解答。同样的,如果你喜欢上述内容从而希望加入我们团队,请将简历投递到 yinzhon@microsoft.com,我们希望看到志同道合的人。
感谢阅读。
编辑于 2018-10-25
网友评论