个人简历 Resume

English version is behind.

简介

姓名:刘晓明

目前所在地:北京海淀

出生日期:1982.12 教育程度: 工学学士

电子邮件:harry.python@gmail.com

手机:15110036108

weblog:

职业专长

CDN,分布式计算,存储技术,数据库,音视频识别

工作经历

2017年11月-至今 滴滴出行

职位:基础平台部/地图事业部/橙心优选事业部/自动驾驶货运 专家工程师

2017年2月-2017年8月 萝卜太辣(北京)科技有限公司

职位:中国区软件工程负责人

2014年6月-2017年2月 北京格灵深瞳信息技术有限公司

职位:高级研发经理

2012年6月-2014年6月 中视广联(北京)媒介咨询有限公司

职位:技术总监

2010年6月-2012年6月 果壳网 guokr.com

职位:技术总监(22人团队)

2009年5月-2010年5月 游艺星际(北京)科技有限公司

职位:助理架构师,后端组team leader(3人团队)

2007年3月-2009年3月 土豆网 tudou.com

职位:助理架构师,Python组team leader(2人团队)

2006年7月-2007年1月 中视广联(北京)媒介咨询有限公司

职位:开发工程师

专业技能

技能 熟练程度 使用时间
Linux C编程 熟练 10年
Python编程 精通 16年
Linux服务器管理 熟练 10年
Erlang编程 熟练 3年
Lua编程 熟练 3年
Hadoop 熟练 2年

在如下关键词的 Google 中文搜索结果中,我的文章曾进入搜索结果前10名的,绝大多数只是排在官方网站之后:

  1. zenoss:开源监控系统
  2. pypcap:Python的抓包工具,信息安全
  3. mod_python:Apache的Python插件,由我翻译手册文档
  4. twisted web:使用twisted来做web开发
  5. twisted threadpool:Twisted的线程池实现
  6. SQLAlchemy:Python的ORM框架,由我翻译手册文档
  7. SQLObject:Python的ORM框架
  8. Webware DBUtils:Python的数据库连接池,我翻译的文档进入官方主页
  9. lunit:LUA单元测试框架
  10. sendpkt:兼容linux/win32的Python发送原始数据包的组件
  11. Parallel python:并行计算框架
  12. Python threadpool:Python的线程池框架
  13. OpenWRT:无线路由上的Linux操作系统
  14. libusb:Unix类操作系统用户空间操作USB设备的库
  15. PyUSB:Python通过libusb连接USB设备操作的库
  16. zdaemon:Python的守护进程管理器
  17. Cython:使用类Python语言开发C模块的框架
  18. Erlang C Node:使用C开发Erlang的消息通信客户端的库
  19. greenlet:Python的协程实现
  20. eventlet:SecondLife开发的协程支持框架
  21. google protobuf:Google的序列化协议
  22. qemu:虚拟机
  23. libevent:多种操作系统下异步调用封装库
  24. python-memcache:Python连接memcache的库
  25. Stackless:Python的微线程平台

由我翻译和编写文档而开始引入国内的技术:

  1. mod_python:翻译version3.2.8文档,比国内的第一份文档规模扩大3倍多
  2. zenoss:国内第一份中文文档
  3. Twisted网络编程必备:翻译完该书的1/2,开始让网上的文章不仅限于hello world
  4. Stackless Python:与朋友合作翻译,首次引入
  5. DBUtils:我的翻译已被官方采用
  6. Programming Erlang:翻译了该书的1/3
  7. SQLObject:翻译官方文档
  8. SQLAlchemy:翻译官方文档
  9. Python的C扩展模块:翻译了Python标准发行版中《Extending and Embedding》的70%,让网上的例子不在局限于hello world
  10. sendpkt:我的开源项目,让Python具备了发送数据包的能力,不再仅仅监听
  11. pysqlite:国内最全的文档是我从官方文档翻译的
  12. greenlet:国内最全面的文档
  13. protobuf:国内最全面的文档
  14. Apple Swift:国内第一份文档

项目经历

2007年8月-2009年3月 土豆网 TudouCDN

遍布全国数十个节点的大型内容分发网络系统,由我做详细设计和大部分的开发工作。通过三台中心服务器调度约600台客户端,管理3200TB的分布式存储系统,并在每天完成超过2000万个文件(平均20MB大小)的同步和删除工作。高峰对外服务带宽580G。并开发了系统周边的监控系统、统计系统。

通过存储和带宽优化,极大的节省了公司的带宽成本,用了11个月就收回了整个CDN系统的建设投入。带宽调度精度也因直接服务而得到提高,300kbps用户比例从之前的30%左右提高到95%。大量用户可以流畅的观看视频,提高了用户体验。

2010年6月-2010年9月 果壳网 magicrpc远程调用框架

供果壳网使用的后端基础框架,基于Twisted框架,和Postgresql的通信协议。使得主要语言的客户端均可以用连接池来连接后端,并进行长连接高性能访问。

使用已有数据库协议,使得客户端无需重新开发,且复用数据库连接池而获得了极佳的并发度和连接稳定性。开发成本得以下降。

2011年3月-2011年5月 果壳网 数据分片系统

应用Nginx SSI技术开发出的高性能数据集成和缓存系统,使得单一服务器提供动态服务时达到6000qps。

在逐步推广应用中,并在2010年初日本地震事件中,轻易让单台服务器轻松撑过百万级别的动态PV。2011年与腾讯合作导流时,单服务器撑到470万PV。结合大量使用CDN,相比事件前每天30万PV,在访问量暴涨16倍的情况下,仍然使得网站可以正常访问。

2012年6月-2012年8月 中视广联 音频特征识别系统

基于特征工程的方法,设计了音频指纹的提取和模糊匹配算法。使得大规模音频指纹库(20000小时)里对新输入24小时音频的识别时间只需要10分钟。180台服务器。

音频自动识别使得公司在保持700标注员的基础上,业务量扩大了20倍。标注员由之前全员人工识别改成只识别5%的新节目。

2012年9月-2014年1月 中视广联 音视频采集设备DVR

基于Cubieboard(Cortex-A8)的音视频采集系统,包括Debian Linux定制、优化,USB采集卡驱动编写,H.264硬压缩支持等。视频采集和时分复用部分基于STM32F407。

单设备成本的降低,尤其是不再使用x86电脑做采集,使得运输损坏率降低,部署成本降低,采集范围从早期的400县市扩大到1300县市。

2014年6月-2014年12月 格灵深瞳 自动驾驶汽车平台

将六人座电动高尔夫球车进行了电传操纵改装,包括方向盘,油门,测速,加速度,磁感应等。用于发展自动驾驶技术。油门和转向控制信号基于STM32F030。

该项目后来发展成为了格灵深瞳的自动驾驶项目,并在2016年末拆分出去与另外两个团队共同成立了驭势科技。

2015年8月-2015年10月 格灵深瞳 样本标注与存储系统

将碎片化的图片样本组织和存储到一起,提供分布式存储和访问服务。为图片在机械硬盘的存储提供顺序读取优化,自动多备份。基于蓝光存储做了存储体系规划,用滚动备份来防止丢失数据。

在职期间经此系统标注的图片有30多个批次,支持了公司众多深度学习项目的训练数据。

2017年11月-2018年6月 滴滴出行 Ultron自动化运维平台

批量在服务器上执行各类管理任务,无需维持SSH长连接来确保在数万台服务器的规模下的快速部署能力。实现了无痕迹,无常驻进程的agent执行能力。

基于本项目,完成了2018年期间多次Intel Bleeding Heart固件问题修复。单次修复最高规模达到9500台服务器。

2019年2月-2019年12月 滴滴出行 地图底图编译集群

参与维护,将多种来源的地图底图编译成统一的底图。期间涉及道路、交通规则、孤岛、临时关闭等若干规则。期间开发了编译执行客户端,为梳理复杂编译依赖提供了分析基础。

梳理了底图编译过程200多种,500多个任务实例的依赖信息,通过去除无后续任务,解依赖,拆并行,高资源/高负载任务冲突处理,使得全国底图编译时间降低了10%,而同期编译原始数据量则增加了30%。

2021年1月-2021年4月 滴滴出行-橙心优选派送排线系统

负责排线的大数据平台应用开发。通过优化地图寻路算法来规划各个送货点的查询量,降低总的路段查询成本。期间设计的二维稀疏矩阵存储,建立起一个高效的内存数据库方便以更快的速度查询任意两个送货点之间的路程、ETA时间。

2021年5月-2021年8月 滴滴出行 仓内定位系统

基于WiFi的仓内定位,Android客户端采集,服务器做数据融合。

通过定位数据,找出了很多仓库内拥挤的热点,以及很多低效率人员。使得2020年中期,3个仓库在业务量提高40%时,分拣劳务人员却没有增加,极大的提高了仓库分拣人效。

2022年1月-2022年3月 滴滴出行 Scooter分布式计算项目

基于Nginx WebDAV实现的高性能分布式计算框架,服务器端无需编程,于是得以在1个月的时间内就搭建起计算集群。集群运行了自动驾驶仿真任务,对各类自动驾驶场景进行算法回测,提高算法验证效率。

开源项目

MagicRpc http://code.google.com/p/magicrpc/

利用多种现有协议实现的RPC框架

SendPkt http://code.google.com/p/sendpkt/

Python发送以太网帧的库,可用于ARP注入,包劫持等

个人项目:

  1. 从2007年6月起三次破解forex.com外汇数据通信协议,并提出数种数学模型进行验证
  2. 基于AVR ATtiny13的红外通信识别,实现了常见红外通信协议的解析
  3. NOIP'2002进入复赛
  4. OpenWRT为核心的智能家庭
  5. 有刷直流电机控制器,用以发展室内机器人,高精度的PWM控制,以及通过负载波形检测电机转速、堵转等
  6. 基于MIC阵列的无人机方向识别,开发了基于FFT的相位识别算法
  7. 直播机器人,将视频通过rtmp推流到直播网站,并允许其他用户用弹幕遥控

教育经历与证书

2015,2018 Python Conference China演讲

PyCon-2015 《Python与机器人技术》

PyCon-2018 《解锁GIL的新姿势》

2019年9月 中国人民大学

在职硕士,数据库方向

2011年7月 国家体育总局

个人业余无线电台操作证书 四级

2002年-2006年 河北理工大学

学位:学士 专业:计算机科学与技术

2005年11月 信息产业部

软件设计师

Introduction

Name: Harry Liu

Native Place: Beijing Haidian

Birth: Dec 1982 Education: Engineering bachelor

E-mail: harry.python@gmail.com

Mobile: +86 15110036108

weblog:

Profession Field

CDN, Distributed computing, Storage, Database, Audio and Video Recognition

Work Experience

Nov,2017 - Now Didiwuxian

Position: Software Development Expert

Feb,2017 - Aug,2017 roboterra.com

Position: Software Director of China Area

Jun,2014 - Feb,2017 deepglint.com

Position: Senior RD Manager

Jun,2012 - Jun,2014 CTC Media Consultant Co., Ltd.

Position: Technical Manager

Jun,2010 - Jun,2012 guokr.com

Position: Technical Manager (22 team members)

Alex Traffic Rank: 6015, Page View: 900K/day(Avg.) 4.7M/day(Top)

May,2009 - May,2010 yooeee.com

Position: Assistant Architect, Backend Team Leader (3 team members)

Mar,2007 - Mar,2009 tudou.com

Position: Assistant Architect, Python Team Leader (2 team members)

Alex Traffic Rank: 43, Page View: 200M/day(Avg.), Video View: 140M/day(Avg.)

Jul,2006 - Jan,2007 CTC Media Consultant Co., Ltd.

Position: Software Engineer

Skills

Skill Familar Years
Linux C practiced 6
Python master 10
Linux Administrate practiced 7
Erlang practiced 3
Lua practiced 3
AVR Microchip normal 4
ARM Microchip normal 3

The keywords below are link to my articles and blogs searched from Google in top 10 in chinese, many of them are just under the technical authors. This can prove my professional ability.

  1. zenoss
  2. pypcap
  3. mod_python
  4. twisted web
  5. twisted threadpool
  6. SQLAlchemy
  7. SQLObject
  8. Webware DBUtils
  9. lunit
  10. sendpkt
  11. Parallel Python
  12. OpenWRT
  13. libusb
  14. PyUSB
  15. zdaemon
  16. Cython
  17. Erlang C Node
  18. greenlet
  19. eventlet
  20. google protobuf
  21. qemu
  22. libevent
  23. python-memcache
  24. stackless

Project Experience

Dec 2007 - Jul 2008 Tudou CDN

A content distributed network for tudou.com 's video service. It's design and develop by me. Deploied 600+ servers in 40+ cities, with 4000TB harddriver storage. Up to 30M files copying or deleting per day.

Serve hundreds of Gbps bandwidth, only less than the youtube.com. Average 600Mbps per server, up to 4Gbps per server (4 NICs).

Mar 2011 - May 2011 Data Slice System

Use Nginx SSI technology to combine data slice to complete webpage. Make the server serve 2,000 ~ 6000 req/s dynamic requests.

During 2011 Japan earthquack, loaded 1.7M/day dynamic page view in 1 server.

During 2011 QQ.com marketing, loaded 4.7M/day dynamic page view in 1 server.

May 2010 - Dec 2010 guokr.com

Use Python/Django/PostgreSQL to build the guokr.com website.

Jun 2010 - Sep 2010 MagicRPC Framework

A Python framework to implement a RPC server, by Twisted and PostgreSQL protocol. So the client can connect backend by connection-pool, and get long connection in high performance.

Sep 2008 - Nov 2008 Video Fingerprint Match

To find out illegal videoes by calculating any video's fingerprint, and match it in video storage cluster. There are 200 servers for concurency match.

Jun 2012 - Aug 2012 Audio DNA Recognize System

Base on shazam and philips audio recognize algorithms. Match new audio in large audio fingerprint library(more than 20000 hours). 180 servers.

Sep 2012 - Jan 2014 Video and Video Record Device

Base on ARM Cortex-A8 chip's audio and video record device, include customize and optimize the Debian Linux, USB video capture driver, H.264 hardcore support.

Jun 2014 - Dec 2014 Autonomous Vehicle Platform

Modify a six-seater golf EV to autonomous vehicle platform, include steering wheel, accelerator, velocimetry and IMU. For development of autonomous vehicle technology.

Open-source Projects

MagicRpc http://code.google.com/p/magicrpc/

RPC framework collect, implement exist protocols include PostgreSQL and MySQL. Developer may use this framework to develop his own server like a PostgreSQL/MySQL server.

Stratosphere-DB http://code.google.com/p/stratosphere-db/

In-memory NOSQL database with Key-Pointer data model. Restoration data from redo-log.

Markov Language http://code.google.com/p/markov/

Lisp dialect for stratosphere-db's query language, or run standalone.

SendPkt http://code.google.com/p/sendpkt/

Python package to send ethernet frame. Useful for ARP-inject.

Education & Certificate

Jul,2011 General Administration of Sport of China

Certificate: Amateur Radio Operator (Class 4)

Sep,2002 - Jul,2006 Hebei United University

Degree: Bachelor, Major: Computer Science and Technology

Nov,2005 Ministry of Information Industry

Certificate: Software Designer (Class middle)