GitHub创始人:我如何放弃30万美元年薪创业

本文摘自GitHub创始人Tom Preston Werner个人博客
  时间还在2007年,我一个人独坐旧金山的Zeke 体育酒吧内。其实我并不经常混体育酒吧,我就像电视剧中的蒙面大盗一样定期来到酒吧和这群夜猫子们“鬼混”。像这样宿醉的夜晚一般第二天就会忘地一干二净,然而那一晚却铭记一生。那一晚,GitHub诞生了。

在跟那群酒鬼挨个打完趣之后,我点了些小吃坐在小隔间里。大概喝了5、6口啤酒,Chris Wanstrath进来了。但是我不记得当时Chris是不是我的朋友,我们经常在酒吧里碰头见面,算是普通朋友吧。

一般在酒吧碰到程序员,我们都会互相吹捧“你的代码写的厉害哟!”,但当时我示意他过来,直接跟他说:“我有个好想法!”大约一周之前,我开始为Grit项目工作,接触到了Chris。他坐下之后,我就开始把自己的想法一股脑地告诉了他,虽然不多,但是我从他的眼神中看出他受到了不小的启发。我告诉他想创建一个专属于程序员的社交网站,程序员们可以在这个网站上分享自己的Git软件库,集思广益。名字我都想好了:GitHub。他的回答简短而有力:“好!我加入!”

2007年,10月19日,星期五,晚上10点24分,Chris把第一份GitHub软件库发送给我,GitHub正式成立。

接下来的三个月,我和Chris没日没夜的为GitHub出主意、写代码。那时我还在为Grit工作,Chris也在开发Rails程序。我们两人每周六都会见一次面,做一些设计决定,并思考如何定价。我还记得有一个雨天,我和他快乐地谈了2个多小时,那天有一种非常出名的越南鸡蛋在旧金山开卖。我和Chris都有正当工作,我在Powerset担任工具开发人员。

2008年1月中旬,连续三个月日夜奋斗之后,GitHub内测版上线,我们邀请了自己的朋友来测试。2月中旬,PJ Hyett加入了GitHub开发团队,团队成员数量增至3人。4月10日,GitHub正式公测。这时的GitHub团队还是只有3个人,而且没有接受任何外界投资。

2008年1月,我得知Powerset被微软以1亿美元的价格收购。所有的Powerset员工都面临工作选择,对我来说,要么去微软工作,要么辞职专心开发GitHub。那年我29岁,老大不小,欠了不少银行贷款,每个月的开销也不少。我每年的年薪能超过10万美元,我也习惯了这种比较奢侈的生活,更何况我妻子还去读博士,开销更大,我不知道该做什么样的决定。

而且微软方面开的条件也非常诱人,真的非常诱人:正常年薪再加三年30万美元奖金。是个人都会考虑去微软的,而我要在微软好工作和GitHub之间做选择。他们两人也攒够了钱,辞了职,找兼职,开始全身心投入到GitHub的开发中去。微软还是GitHub,我无法决定。鱼和熊掌,不可兼得。最后我决定把辞职的消息告诉老板。在申请转职的最后一天,我告诉了Powerset的老板我要辞职创业的消息,他虽然觉得不爽,但是对我表示理解。他也没有用更多奖金来诱使我留下,因为他知道我去意已绝。得知消息之后,微软方面也很精明,把奖金一降再降,不再挽留我。当你和一个企业没有关系甚至以后要成为他们对手的时候,你会发现周围的一切都和你格格不入,情况变得非常古怪。

最后,就像夺宝奇兵一样,印第安纳琼斯千方百计寻找圣杯,我也用尽各种办法保护GitHub。也许等我老了以后,回首这一段往事时自己就会说到:“我也是冒过险的人。”

GitHub创始人:我如何放弃30万美元年薪创业的更多相关文章

  1. 曝郭盛华公司30万美元收购Acn.ai域名,揭秘人工智能布局下的巨头们

    据域名投资人曝料,郭盛华公司已经提前拿下.ai短域名 Acn.ai,目前域名已经设置跳转到东联科技的官网.都说域名越短越值钱,而且搜索引擎都喜欢更短的域名,例如京东更换的域名“jd.com”交易价格约 ...

  2. 网络安全意识有多重要?SamSam勒索软件敲诈了近600万美元

    近年来,对于网络犯罪分子来说,勒索软件已成为数百万美元的黑市业务,SamSam就是一个很好的例子. 中国信息安全新研究显示,自2015年12月以来,SamSam勒索软件从受害者手中敲诈了近600万美元 ...

  3. 周末畅谈 | 我是如何在硅谷获得年薪30万美金Offer的?

    本文讲述了一位硅谷软件工程师的面试经验,他分享了他如何在硅谷拿到最终30万美金年薪的Offer,原文摘自:https://blog.usejournal.com/how-i-negotiated-a- ...

  4. 30种IT技能让你年薪过10万美元!

    科技行业的高薪岗位向来不少,但在不断变化的职场中,热门技能却随时在变:今天的热门技术,明天可能就会过时.美国求职网站 Dice.com 最近发布了 2015 年薪酬报告,通过对 23,470 位 IT ...

  5. 拓展企业VR培训业务,这家VR训练公司StriVR完成500万美元融资!

    虚拟现实初创公司StriVR最近发布了新的企业VR训练产品项目,并宣布在刚刚结束的首轮融资中获得500万美元投资.由Signia Venture Partners领投,宝马i Venturesi.Ad ...

  6. Boom.TV完成350万美元融资,目标直指VR电竞直播

    3D在线电竞直播平台Boom.tv刚刚宣布已经完成350万美元的融资,该平台旨在让观众在任何设备以任意视角观看电竞比赛,并将支持VR版本. 这家位于美国加州红木城的初创公司成立于2015年,由Gupt ...

  7. 一位iOS教育类应用开发者是如何赚到60多万美元?

    注:伯乐在线12月19日在@程序员的那些事 微博推荐了此文的英文原文,非常感谢@dotSlash 的翻译.  转眼距我写<我如何在iOS教育类应用中赚到20万美元>这篇博文已经一年多了,它 ...

  8. 15万甚至30万以内的SUV值不值得买?

    大家好,这个帖子比较长,也是我一直以来长期实践.思考.验证的结论,不当之处还请指正,也欢迎大家来共 同讨论,已经买了此价位SUV的战友们,看完后也不要生气,毕竟我的出发点是注重行车安全,人非神明,是个 ...

  9. 酷盘kanbox获得B轮2000万美元融资

    和阿里近期收购以穷游.虾米为代表的一批小网站相似,酷盘也属于个人用户数量级别庞大,但商业模式并不明晰的企业.目前阿里巴巴集团旗下的阿里云公司拥有自己的云存储业务,其本身既有面向个人用户的产品,也有面向 ...

随机推荐

  1. 递归的隐含限制——处理对象小的可以、大的不可以

    最近自己编写了一个求n阶行列式的值的C程序,编译成功,并且使用了一个3阶行列式进行了测试,测试也成功了.以为这样就万事大吉了,可是后来在实际应用中调用该函数时却导致程序无法运行.注意到,实际应用中要求 ...

  2. 使用Laya引擎开发微信小游戏

    在支持微信小游戏的游戏引擎中,Cocos,Egret,Laya都对小游戏的开发提供了很多强大的支持.前段时间正好抽空研究了一下这块的内容,现做一个总结,针对如何使用Laya引擎开发微信小游戏给大家做一 ...

  3. hibernate和struts实现分页

    仓促把功能进行实现一下  类与类之间也没有进行MVC式分开  重要的是逻辑 记录一下 希望其中的些许代码逻辑对你有用 TUserDaoImpl---dao层的实现 package com.pers.h ...

  4. https 简介学习

    https://program-think.blogspot.com/2014/11/https-ssl-tls-1.html https://program-think.blogspot.com/2 ...

  5. vue框架整体流程

    1.整体流程 (1)模板解析成render函数 (2)响应式监听 (3)首次渲染,显示页面,绑定依赖 (4)data属性变化,触发rerender 2.模板解析为render函数 参考上一篇博客. 模 ...

  6. 图像检索:RGBHistogram+欧几里得距离|卡方距离

    RGBHistogram: 分别计算把彩色图像的三个通道R.G.B的一维直方图,然后把这三个通道的颜色直方图结合起来,就是颜色的描写叙述子RGBHistogram. 以下给出计算RGBHistogra ...

  7. logrotate日志不轮转呢?_新日志size0

    程序,要管理log,留作日后的后续功能处理和统计和领导需要.因为懒得写,所以直接用了syslog函数,把log交给rsyslog去写了.然后用logrotate每天做日志轮转. 两种log分别发送到了 ...

  8. logrotate: 管理日志文件

    Erik Troan提供了一种优秀的工具logrotate,它实现了多种多样的日志管理策略,而且在我们举例的所有发行版本上都是标准应用. logrotate的配置文件由一系列规范组成,它们说明了要管理 ...

  9. ACE中对于不同类型数据的最大值最小值管理ACE_Numeric_Limits

    对于不同类型的变量,这里定义了其最大最小值来提供给ACE_Utils等使用 template <typename T> struct ACE_Numeric_Limits; // ---- ...

  10. java for语句

    //for语句 public class Test16{ public static void main(String args[]){ for (int i=0;i<10;i+=1){ if ...