基本信息
- 毕业日期:2012.06
- 联系方式:
bW9yZWZyZWV6ZStibG9nQGdtYWlsLmNvbQoxODYxMjI5NTU1MwpRUTogMzkzOTEwMzAK
工作经历
- 2018.02- 在小米公司任职搜索工程师,主要负责搜索架构开发,为其他组提供搜索服务支持。
- 2016.06-2018.02 在下厨房任职算法工程师,主要负责日常统计,研究如何提高数据统计的效率。
- 2015.10-2016.06 在 PingCAP 任职软件工程师,主要负责分布式数据库系统的实现与开发。目前全套系统趋于稳定并在 github 上开源,在 Go 及 Rust 语言社区获得较高关注。
- 2014.10-2015.04 在袭常公司任职研发工程师,主要负责整体后台系统设计与开发,并与移动端对接,项目上线后对接多个第三方应用。
- 2012.06-2014.10 在百度任职研发工程师,主要负责百度知道后台日常维护及新功能开发,开发在线 IM 系统的后台处理部分。之后转入数据组负责日常数据统计需求及数据仓库的建设与维护。
技能专精
- 2年高中 OI 经历,3年 ACM 经历。擅长使用 C/C++/Python/Go 编程,有良好分析解决问题能力。
- 熟悉并使用 Go 进行过分布式数据库开发,熟悉分布式数据库原理及关键分布式算法。
- 熟练掌握 Hadoop 开发,可以对统计任务有效拆解并编写代码处理,熟悉 Hive 及 Hive SQL 语法。
- 熟悉 Unix 大部分命令行工具,可以使用shell,awk,sed等配合完成较复杂的运维任务。
攻城经历
基于 Xapian 搜索平台开发
- 项目描述:在原有的基于 Lucene 开发的搜索平台基础上,使用 Xapian 搭建另一套几乎支持相同功能,但搜索效率在大规模索引量的情况下大幅度提升的一套搜索引擎,并为其他组提供定制化的搜索服务。
- 工作内容:负责 Xapian 前期调研以及需求对接,梳理并给出切实可行运用 Xapian 搭建搜索平台的方案,最终落地执行,攻克了 Lucene 在大规模索引量无法满足需求的难题,最高提供亿级索引的支持,同时搜索响应在 200 ms 以下。
TiDB/TiKV/TiClient 分布式数据库开发(Go+Rust)
- 项目描述:根据 Google 发布的 Spanner 论文实现分布式存储,取名 TiKV。根据F1论文实现分布式数据库处理框架,取名 TiDB。两者之间实现通信,取名 TiClient。
- 工作内容:负责 TiClient 大部分代码编写,包括制定 protobuf 协议,对数据的路由,实现 2PC 算法。在TiKV端实现Server处理请求并封装成消息传入下层存储层。
手机 APP 后台开发(Django)
- 项目描述:设计到项目上线推广历时 3 个月。生活服务类创业项目,根据实际业务需求设计整个系统和存储格式,向前端提供 RESTful 接口。
- 工作内容:设计整个业务系统,包括各个应用类及存储数据库,根据需求打通与物流系统的通信,定制一些特殊后台功能(如手动分单),开发自动分单算法等。使用 Django 框架开发,能够根据实际情况迅速修改以适应新的需求。
Mysql Binlog导入Hive工具及数据统计平台(PHP+Hadoop)
- 项目描述:开发到测试历时 3 个月时间。重构之前导入工具,使用 MapReduce 大大提高了导入效率,添加测试校验代码,保证数据一致性。
- 工作内容:将之前单机脚本,改为使用 MapReduce 处理,极大提升了效率,解放了开发机资源。追查数据不一致问题,完善导入脚本的健壮性。增加数据校验脚本对数据进行定时抽查以保证数据一致。将组内的统计需求收集,研发数据统计平台,由 RD 或 PM 自行执行 SQL 语句查询,后续增加了图表展示,解放了小组统计压力。
企业平台IM系统(PHP+Mysql+Redis)
- 项目描述:设计到开发完成并上线历时 2 个月。实现类似京东在线客服的 IM 系统,使普通用户与企业客服能在线对话,快速地解决问题,并为百度知道沉淀问答。
- 工作内容:结合 Redis,实现 IM 后端系统的设计,包括后端值守进程的职责设计,后端处理逻辑设计。上线不久后遇到性能问题,在与同事讨论后进行优化,第二天完成优化重新一线,部署单台服务器可以达到每条命令在 30ms 内结束。
为了荣耀!
- ACM亚洲区现场赛 铜奖
- ACM东北四省赛 一等奖
- AStar 2012东北区域赛第三