码农杂谈:do a good company
Gojek 工作四个月了。
开发篇:
- 结对编程
- daily standup
- 不写日报
- 不写周报
- 强制 code review
- test coverage 要求记入团队 OKR
- 团队定期分配 10--20% 的时间,专门处理技术债(tech debt)
- 谋定而后动,重大 feature 花 30-50% 的时间先讨论、确定技术方案,再结对实现,尽量避免返工
- 允许使用小众语言、框架、工具,只要解决问题并有充足的理由
- 大量基于 clojure 的后端服务
- JRuby
工具:
- slack + gitlab + zoom + gsuite
- 大量使用第三方付费服务解决自身技术问题,能不造轮子坚决不造轮子
- google cloud + aws
- pagerduty 报警
- newrelic 监控 + tracking
- 内部工具产品化:
- 开源标准
- 文档 + wiki
- 统一的 API 格式
- 不兼容 API 会 bump 版本
部署:
- 基于 vm 的部署和 kubernetes 的部署并存,并不盲从 kubernetes 体系
- docker/kubernetes/cncf 解决了很多问题,也带了相当的复杂度,盲从 all in 是很不明智的
- 统一的 log 日志平台
- 统一的监控平台
- 统一的配置下发和管理中心
- 统一的 package registry,集中托管各种 ruby/python/docker package,gitlab CI 自动构建 package 并上传更新
- chef 部署
- https://github.com/gojek/proctor 管理所有开发、测试、生产机器
- 只要有网络分区权限,就可登入任意服务器
- ssh key/跳板机/ip 黑白名单,见鬼去吧
- 重要统计数据入数据仓库
- 完善的数据可视化分析平台 metabase + tableau
文化:
- 允许 work from home
- 弹性上班时间
- 真的不加班
- theoretically, unlimited annual leave
- 工程师有权看到大部分团队的代码
- besides,公司的各种产品运营数据,每日分析报表也是开放的
- 利用 google drive 做文档和知识积累
- 我在里面发现公司其实一直在密切关注着中国市场的发展情况,详细专业的分析报告让我眼界大开
- 鼓励 open source
- https://github.com/gojektech
- 鼓励分享
- https://blog.gojekengineering.com
- 各种团队定期分享各种产品和技术解决方案的进度
工程师招聘篇:
- 2018 年 1 月的数据:
- 200 名工程师,约 15 条产品线,上千个 project,技术包含前端、后端、移动、数据分析、数据科学等
- 宁缺勿烂
- 考算法,但是并不过于侧重算法
- instead
- 工程岗位会给 candidate 一个 take home 的 project 或者测试题,给 candidate 2--7 天自由时间完成
- 针对工程 project,内部评审有一个详尽的 checklist,包括但不限于 coding style、版本控制、测试、异常情况处理等等
- 相较于纯算法,我认为这种测评更能有效的测验出一个工程师日常工作的能力水准,特别是工程习惯是否和团队匹配
- 3--5 轮面试,6--8 位工程师
- 公司为了改进招聘流程,组织了一个 committee,总结了上百个改进点,累记百页的文档,记入团队 OKR,目前在逐步推动
- https://blog.gojekengineering.com/go-jek-recruitment-process-58dbed5d8992
- 我在入职第一个月提的改进招聘的建议被接受了
设计篇:
- 公司制定了自己的设计语言体系:https://asphalt.gojek.io
Do a good company.
新工作四个月,我不得不说,我对这家印尼公司充满了 120% 的敬意。刨除新公司蜜月期的嫌疑,这几个月我还是涨了很多见闻,多了很多思考。
- 日报和周报真的有用么?
- 跳板机真的能提高安全性?
- 公司内部产品数据一定要保密么?
- 自己造轮子而不去使用付费服务,真的能省钱么?
- 糙快猛的 996 开发和严格遵循敏捷开发流程的敏捷开发,到底哪个真正有生产力?
- 算法,还是工程经验、习惯更能反应一个工程师的真实能力水准?
如无必要,勿增实体。
跳板机见鬼去吧。
工作中,也接触了很多不同文化背景的同事——这种文化背景可能和欧美 IT 公司又有所不同——有每天工作都要去祈祷五分钟的,万隆理工大学毕业,原来做 machine learning 现在转后端开发的;有英文我只能听个七七八八,原来在 couchbase 写 erlang 的印度工程师;team leader 同样是印度工程师,https://github.com/nilenso/honeysql-postgres 作者,clojure 专家;head of engineering 是埃及人,indeed MBA,IBM 7 年,本科 GPA 4.0;90 后的 SVP,带领上百人的团队,负责公司的增长,其管理、规划、气场都让我相当震撼(https://www.youtube.com/watch?v=WRUSryfaxhk&t=379s);连仲伦,新加坡特种部队退伍军人,新加坡第二个登上 everest 的人(https://www.youtube.com/watch?v=kDT1pUtmfg8),有一次在办公室问我“在忙什么”,god,我都还没跟他介绍过自己,其言谈举止气场见识让人望尘莫及;公司的招聘团队制定的改进招聘计划更让我眼界大开——专业的人做专业的事情是一条宇宙真理。
每日祈祷的穆斯林一定是慵懒不堪的“绿绿”么?
印度的工程师一定是阿三么?印度人除了办公室抱团就只会吹牛么?
“弱小和无知不是生存的障碍,傲慢才是。”
为什么要创建一个公司?
也许没什么特别的理由,只是为了:
Do a good company.
如果做的再好一些,公司会提供就业,纳税,帮助员工提高技能,提供服务改善大众民生
可惜国内的公司,好一半是为了蹭热度赚热钱甚至赚昧心的钱;头部的互联网公司不以 996 为耻反以为荣大力宣传成为国际笑柄(https://github.com/996icu/996.ICU)——我们可是社会主义工人阶级当家作主的国家啊?后起之秀头条系列整天想着怎么快速做一些奶头乐的产品,以消耗底层人民时间为业绩,一时竞还能风头无两;几大巨头之间相互封杀,原本开放的互联网被割列成一个个的信息孤岛;AI 领域乱象丛生,理想很丰满,落地很骨感。
一群恶狼,在浅滩抢食。
互联网技术的出现,本意是帮助人们过的更好,帮助世界变得更好的,但是现在的情况是,大多数公司都是利用互联网造成的局部信息不对称和技术碾压在吸血。
信息茧房,高利贷,精准广告,诱导消费,我们在努力用互联网技术赚到人性暗面的钱,人的欲望被加以利用,最后成为了金钱的奴隶。
--- https://mp.weixin.qq.com/s/ehyQLgOiS-cQXXbZJ6tN8Q
(真是讽刺,我很喜欢的这个作者写的这段话,但是这段话同样来自于微信公众号这个信息茧房,sigh。)
Head dump at Sep 1, 2019, Jakarta.
(豆瓣的编辑器真难用
热门话题 · · · · · · ( 去话题广场 )
- 2024画春天 128.9万次浏览
- 我的读书搭子 8350次浏览
- 我的个人阅读史 新话题 · 344次浏览
- 你为什么喜欢音乐创作? 1.8万次浏览
- 你眼中的次世代计算机是什么样的? 1.9万次浏览
- 家里的古董电器 3.6万次浏览