作者注:本文写于2013年9月,这里做了重新排版,并将之前以字母替代的角色做了实名化。改日有空,再补写一篇。
最近几天出了几篇有关云壤的新闻稿,宣告云壤正式关张大吉。这几天,不时有同事在吃饭的时候或者在交流的时候,不经意地问我,云壤是不是已经没了。我只能说,是的。

下面从个人或公司的几个忆所能及的标志性事件,总结下云壤的那段日子:
踏上云端
2010年7月15日,当时我还在一家规模很小的创业公司实习,那天下午,我接到一个猎头的电话,该猎头说她正在给一个顶级的创业团队物色候选人,问我感不感兴趣。该公司的具体信息没有透露,但是她说,该团队里有很多google的大牛。当时业界正好有相关的报道,一个在微软实习的同学,正好也听说有个谷歌副院长出来创业了,可能这个创业团队就是他带的吧。那会在小公司,技术上难有大的突破,加之高手廖若星辰,难免寂寞,正好有换换工作的打算,于是和猎头做了详细的了解。
今天特意翻阅邮箱,竟找到当年和猎头交流的邮件。那时毕竟还是年轻,接到个猎头电话,大有受宠若惊之势,回复邮件规规矩矩。为了显示我的诚意,我甚至在详细更新简历外,还写了一封激情满满的求职邮件,因为那会从网上看到,要提高被录用的概率,写一封求职信,显得更有诚意。求职信列在下面,权作备忘。
贵公司您好,本人对互联网领域富有激情,工作认真,技术扎实,经常关注IT领域最近的热点和最新技术进展。关注并研究国内外各大IT公司的发展历程,优势所在。
本人在一个创业公司领导开发了一个即时通信产品,从明确需求,到框架分析与设计,到关键功能的实现,源码管理,任务分配,性能优化,bug跟踪与排除,甚至到软件安全与发布,都积累了相当丰富的经验。
本人的学习能力强,从开始实习时的毫无经验,到之后成为研发主力,到现在成为项目负责人,都是通过自己的学习与探索而来的。
本人对技术富有激情,相信技术可以改变生活,改变世界,也相信通过我的不断努力,我自己能够成长为一名优秀的软件工程师。
我对自己的期望是,通过不断努力,深入研究互联网基础协议和对应的协议栈源码。并研究几个互联网的核心应用,包括搜索引擎,web服务器和浏览器,P2P下载技术,即时通信等的研究。与此同时多多编代码,总结IT最新产品的热点与技术难点,最后能够成长为一名顶尖的软件架构师,软件产品设计师。
于是,约定在7月21日进行面试,面试地点在海龙大厦。由于之前只在海龙地下两层逛过,没有上过上面的写字楼,面试的那会还走错了路,从前面的电梯进,结果只在低层停,无奈面试时间就快到了,只好爬上楼梯。进门有一位美女接待,让我到一个小会议室等待。
进来的第一位面试者是我的一位师兄,后面成为了我的导师。记得面的问题应该是二分查找,以及一道经典的概率题,第二题我基本无思路,后面一次偶然翻阅《计算机程序设计艺术》,发现是一个里面经典的算法。
接下来进来的是HR,HR简单和我进行了沟通,问了我对薪资的预期,到这里,我基本知道已经没问题了。我那会也比较奇怪,因为在当时那家公司的时候,当过不少次面试官,我就从面试者的角度问HR,我们这边面试这么快么,可是我感觉我面试的表现挺一般的啊。我有点自讨没趣。于是HR问我,是不是觉得没有面过瘾,需要的话,她再找几位高手让我难个够。我支支吾吾,说我总感觉面试有点太容易了,出乎我的意料。
于是,过了一会,又进来了一个面试官,这会进来的也是我的一位师兄,和我简单沟通了下,问了几个面试题,其中有一个问题记得是 anagram,当时答得也只能说马马虎虎。后来才知道,这些面试题,其实都是经典的面试题,在《编程珠玑》,《编程之美》等中随处可见。接下来HR与我继续进行了简单的沟通,面试便告结束。
第二周,我接到了电话通知,说我被录用了。之后,经过心理斗争,还是毅然离开原公司,前往那个叫做云壤的公司。
实习的岁月
交接工作花了一个月时间,交接完毕后,在9月1日那天,到云壤正式入职。与原公司不同的是,这个云壤虽然是初创团队,不过麻雀虽小五脏俱全,在入职前一天,就有行政电话确认入职时间,与前公司连坐在前台都是男同事形成了鲜明的对比。第一天入职,感觉不错。
刚到的那个上午,上班较早,公司还没有几个人,于是在工位上和其他同事进行了简单的沟通。还不知道导师是哪位,问HR也说暂时还不清楚。到接近中午的时候,才知道是由我的一面面试官负责带我。
于是,我开始了在云壤实习的日子,时间长达一年左右。
Wiki上的花名册
云壤有自己搭建的wiki系统,这个与我前公司又有所区别。而最开始的时候,曲径让我们在wiki上写自己的介绍,我初来乍到,自告奋勇,在wiki了写了下自己的简介。Wiki上记得介绍了几个公司的创始团队的简历,写的都是著名的搜索专家,著名的广告专家,著名的UI设计师等,这让我这位初出茅庐的小孩感觉压力山大的同时,也觉得来对了地方。
Wiki上比较好玩的事情,我记得是差不多和我一起入职的彭永义同学,使用了当时热极一时的凡客体,可谓云壤幽默风趣的氛围最早案例之一。
记得那会写员工简介时,HR让我们每个人使用一个词汇来形容自己,当时描述我的那个词,还是HR帮忙想的,我记得是"嗜书如命"。不知道云壤的老朋友们,可还记得当初为自己挑选的是哪个词汇。不过可惜的是,曾经以为嗜书如命的我,在这几年,已经很少看书了,此也算往事不可追,物是人非。
搭建自己的邮箱
最开始的那段时间,我记得云壤使用的是购买的邮箱服务,入职的当天,需要由创始人自己为其开通邮箱地址。大约两三个月后,云壤基础架构组的同事,搭建了自己的邮箱服务。从此告别了邮箱出各种小问题的岁月。
高手逐一到位
那会新闻稿宣称,投资人的条件是,刘骏召集十五个谷歌的工程师。不过在我刚开始到云壤的时候,整个公司的员工加起来,可能就十五个的样子。我那会的员工号是21号,不过前面的几位员工,其实还没有真正就位。包括陈利人,安兴华,盛佳等。
不过在两三个月内,几个谷歌系的牛人陆续到位,包括搜索技术,前端,产品,销售等。
2010年秋CS挑战赛
不记得是哪月哪日,云壤组织了一次秋游活动,进行CS挑战赛。这次挑战赛,基本早期员工悉数到位,就连老总也和我们一起疯狂游戏,地点听说就在360特种训练营。挑战赛已经忘光了,不过挑战赛的那股激情,我们却保持到了后来的工作中。那次游戏结束后,大家拉起横幅"云壤创业团队2010年秋CS挑战赛",集体合照。这张照片,可能也是唯一的一张早期老员工的全家福了。
第一次全体会议
记得第一次全体会议,应该是在10年接近年底的时候。那时候,产品负责人和社区产品技术负责人,刚从美国回来,风尘仆仆。其时,公司高层首次向我们阐述了我们的创业理念,产品概念与雏形。这是在大家紧张的研发中,难得的一次机会,得知公司产品设计理念与未来预期。想必也是这次会议,让大家对创业第一次有这么近距离的参与感。
第一个师傅
刚到云壤的时候,听说有一个奇虎过来的哥们,刚刚离开。不过,我的第一位启蒙老师,也恰巧就是奇虎过来的哥们王江。这位哥们不算是我的导师,不过因为工作关系,我最开始的时候,做的是Boilerplate detection的工作,需要使用到网页解析库,而公司的解析库,由其独立开发。那会由于该库正在开发中,属于半成品,因为不管是接口还是使用方法,都有这样那样的问题。因此就免不了进行频繁的沟通交流。从王江的身上,我学到了很多,他的耐心讲解,让我毫无距离感。虽然相处的时间不多,不过假如有幸再次遇到,我应该称其一声老师。
时间过得真快,王江大约在11月底,就离开了云壤。有一次在上班路上,和我进行了一次交流,说是其负责开发的一个基础库,交由我负责接手。其时,我只是一个实习生,而那会一起来的基本都是工作几年、来自大公司的前辈。按理说这么重要的一个模块,是不会交接给我的,不过他既然这么说,我自然乐意接受,并深感其信任之情。
邓亚萍的到来
某天早晨,邓亚萍来到了海龙大厦,走访了云壤创业团队。这对没见过明星的程序员来说,不得不说是一件新鲜事。当邓亚萍走进公司,从身边走过的时候,我们都投去好奇的眼光。
对早期创业生涯来说,可能邓亚萍的到来是一个标志性的事件。其标志意义在于,她的到访,意味着我们的代码将在几百亿级别的索引规模上,得到检验。当然,后来围绕云壤与即刻搜索的合作,众说纷纭,本人不想就合作是否明智进行讨论,只能说,合作对云壤来说,一则降低了创业风险,二则因为风险小了,自身的目标也不再那么清晰急切了,缓步而行。
言归正传,和即刻的合作,对于我们整个团队来说,无疑注入了一股强心针。我们开始有计划地,紧锣密鼓地进行研发,开始建立大规模的Hadoop集群,我们开始封装自己的hadoop mapreduce pipes 框架,大家一起学习如何编写Mapreduce程序,将自己的程序慢慢迁移到mapreduce。
作为爬虫组的成员,机器给力意味着我们的抓取量不是问题,我们的存储量不是问题,我们的计算资源不是问题。在接下来的几个月中,我们开始编写一个又一个模块,编写一个又一个基础库。我们将整个搜索流水线都迁移到hadoop上,半年多的时间,我们完成了200亿级别索引规模的搜索引擎。爬虫的覆盖率,时效性,排序结果,虽然比起谷歌百度尚有不小距离,但是客观来说,我们的搜索质量整体可接受。
拜师学艺的日子
虽然在云壤的导师是曲径,但是在试用期的三个月,我主要的工作,基本都是解析相关的工作,先后在王江与李大海的指导下工作。在王江的耐心帮助下,我熟悉了网页解析的相关技术,在大海的指导下,我则完成了一个基于模板配置的网页抽取框架。我的第一次code review也是其review的。
云壤有一个非常好的传统,那就是有code review平台,上至CTO,下至实习生,都需要发送code review,只有通过后才能够提交到svn中。而我的头几次code review,则是由牛人大海 review的。那会其实还没有学会code review流程,又有程序员不该有的阴暗心理,怕自己的代码见不得人,写完后就直接提交了。当他让我发code review的时候,我说我已经提交了,他那会似乎没有想到让我做post review,便让我到其工位前,逐行代码指出我的问题所在,代码风格问题都有哪些,架构有什么值得改进的地方,有哪些基础库可以使用等。其诲人不倦之精神,至今难忘。
言者殷切,听者恭敬,这大概也是code review在google大为盛行的原因吧。
而对code reivew把得更严的,让我更为领教的,则是我的导师。我的几乎每一行代码,他都会负责reivew,从一个字母是否该小写,到某个单词是否合适,到架构是否合理,都会和盘托出。这种知无不言、言无不尽的传授精神,可能正是code reivew的价值所在。Reviewer在审查代码的过程中,享受知识传播带来的愉悦感;被审查者,则从reviewer的严厉把关中,脱胎换骨,迅速成长。
庆幸的是,在离开云壤后,我保留了这一优良传统。虽则我的水平不敢与大海,曲径相提并论,但是review的时候,仍然会严肃认真,仿佛手持放大镜般。
代码,还是代码
云壤这个公司,天生是一个以技术为自豪的公司。这样说,是自豪,也是自卑。说自豪是因为,这里的技术氛围非常不错,技术眼光和水准都国内一流。说自卑只是由于,这里除了技术外,可圈可点的太少。
在云壤,大家几乎都写代码,唯一不写代码的,可能只有老总了。不过老总早期的时候也看代码,有一次,告诉我们几个说,他看代码里有很多很低效的字符串查找的代码。在一个周末,他还给我们发了一篇字符串匹配算法的论文,还附上的一份开源实现。
而CTO,则完成了早期整个搜索的架构设计,索引检索等重要模块的主框架实现。互联网上广为人知的陈利人,则实现了anti-spam,anchor分析,ranking等重要模块的重要代码。更不必提其他的技术总监,工程总监了,他们一来代码写得比其他人多,涉及的领域与模块比其他同学广,写的代码也比大家都漂亮。可以说,云壤很长时间内,都是以技术为核心,以技术文化为公司文化的。我的leader,则更是广为人知的多面手,写的代码,散落在svn的各个目录中。几乎大部分的重要功能,他都有参与,且是重要角色。
正是这样的技术氛围,使得云壤的同学们,一致觉得在云壤写代码非常舒服。后来有部分同事离开云壤后,分散到各个互联网公司,巨头也有不少。不过我听到部分同学告诉我说,还是云壤写代码舒服。
云壤的工程师,对代码质量,代码可读性,代码可扩展性,代码性能等的追求,可能在国内也是领先的。举个例子,我们可以为优化网页解析库的性能,花费超过一星期的时间。我们可以为改进正则匹配,字符串匹配性能,花费十几天的时间。而做类似的事情,在国内大部分的互联网公司,尤其是创业公司,是不可想象的。性能,可读性,可维护性,这些在KPI面前都是狗屁,没有人敢在工作总结中说,我这个星期甚至这个月,只是做代码重构,或者只是改进了某个库的性能。这要么就是这个人发疯了,要么就是别人认为他发疯了。
糟糕的五一节日
在我们的搜索产品上线前,我们经常艰苦奋战,尤其是和人民搜索签订合作协议后,更是进入了紧锣密鼓的阶段。公司开始给我们订晚餐,而当时的行政郭佳同学,有时候甚至比很多程序员走得还晚,让我们很受感动。
加班的日子似乎过得更快,转眼2011年的五一到了。五一那会,我正好陪我的女朋友回了一趟西安。不幸的是,正当我在西安参观园艺博览会的时候,接到了老总的电话,说我写的代码有Bug,导致某个mapreduce 任务无法完成,需要我回北京解决一下。这个电话让我非常尴尬,因为之后的那天,正好是我女朋友的生日,本来专门去西安就是为了给她过生日的,没有想到,与老总争取之后,还是被下了命令,需要紧急回公司处理该问题。我被告知,如果无法及时回去处理,可能就会影响我们的正常上线,受到的损失将会难以估量。无奈,我只有悻悻然回到北京。
这可能是我此生需要为一个Bug付出的最大的代价。当然这个Bug也花费了我很大的精力,也是我自己写代码以来,纠缠最久的一个Bug。我前后估计花了接近一个星期左右,才解决了该问题。当然,这个bug可能也是最受到关注的Bug,就连公司的CEO都不时关注该Bug是否已经被消灭。
Bug事小,不过从此事,我们可以看出,云壤是一个技术公司,对技术有高追求,绝不容许线上的程序存在bug。相比不少公司,程序经常core也没人理会,或者简单自动重启就完事了的态度相比,云壤的确境界高人一等
小龙虾,还是小龙虾
在加班的日子里,除了晚上的披萨以外,周五或者周末加班,孙峥还会组织我们去附近的一家餐馆吃小龙虾。吃小龙虾,喝点啤酒,聊聊天,这算是云壤团队的黄金期的标志性。
云壤是个好学校
有不少同事说,云壤是个好学校。好学校有两层意思,一个是培养人,另一个则是,学生总有毕业的那天,不管是否学有所成。
很不幸,我提前离校了。在2012年9月14日,我离开了云壤。    
大约整整一年以后,云计算,云服务仍然如火如荼,但是云壤却消失不见。
云归云,土归土,云壤没有成为云时代的土壤,而是成为了记忆中的物事。

继续阅读
阅读原文