联系方式

邮箱: maples7@163.com
手机: 183*****579
微信: maples7_lq
居住地: 中国 苏州

教育背景

2012.9 - 2016.6
山东大学 - 电气工程与自动化(卓越) - 学士
2009.7 - 2012.6
长郡中学 - 理科实验班

个人简介

我是一名 Web 后端工程师,日常使用 Node.js/Python/Elixir 工作,目前也对 Rust 和 Swift 有探究的兴趣。

热爱用代码创造价值,喜欢钻研和学习新技术,会定期阅读优秀的技术书籍和技术博客提升自己,自己也有撰写技术博客的习惯。

崇尚开源,当有一些感觉不错的想法时会研究其实现原理或尝试造轮子。

高中时曾参加青少年奥林匹克信息学竞赛 NOIP 获得省级二等奖,给算法和数据结构打下了不错的基础。

平时喜欢阅读,也是 MOOC 爱好者,非常享受独处学习的时间。

其他说明

GitHub: github.com/Maples7
个人博客: maples7.com
知乎: zhihu.com/people/maples7
LinkedIn: linkedin.com/in/maples7/
在线简历: cv.maples7.com
英语能力: CET-6

English Version

cv.maples7.com/en.html

黎 琦


Web 后端开发

工作经历

心知天气
后端研发负责人
2017.6 - 至今
作为后端负责人,与 CTO 一起对整个后端天气数据处理流程——从数据采集到数据分发——进行完整的架构设计和实现:数据处理部分主要涉及对数据处理任务流的管理以及不同数据类型的存储方案,是关于如何快速高效地处理和存储数据的问题,主要是 Python 技术栈;数据分发部分主要是构建能承载高并发请求的稳定的 API 系统,包括从 SLB 到微服务的全请求链路的设计优化,同时还有一套官网自助下单开通服务的系统,主要是 Node.js 和 Elixir 技术栈。
  • API v4 - Hogwarts:一套相对于 v3 版本老系统的全新设计和实现的 API 架构体系,主要为了解决 v3 API 在用户体验和并发性能上的问题。底层服务大部分用 Elixir 进行的完全的重新设计与实现(之前是 Node.js),将网关逻辑和无状态的数据服务剥离开来。在用户使用方式上,自主实现了 Google+ 的 Partial Response 协议使得接口支持用户自定义任意字段的组合拼装返回;在接口性能上,内部服务之间完全使用 Erlang 原生的 RPC 协议进行 I/O 通信,同时重新设计了数据存储方式,底层存储依赖 OSS,把气象数据通过标准的二进制矩阵排列归一化处理,再使用多级缓存提升访问性能;在服务稳定性上,完全用 Cloud Native 的理念设计开发,整个系统部署在阿里云的 Kubernetes 集群上,并实现了自动伸缩;在开发效率上,尽可能从「元编程」和「元流程」的更高层角度思考数据在整个系统中的流动过程,尽可能的设计统一的规范和标准作为底层支持来满足上层的数据流转需求,使得研发人员通常是在开发平台和规则,而具体的单一数据开发和迭代的需求则可以通过简单的配置来快速验证上线。个人主要负责大部分系统架构的设计、标准和规范的制定,和组内成员一起完成了开发上线工作,并在持续迭代维护中。
  • 官网 v3 - Hansel:主要是基于 NestJS 框架,使用 TypeScript 设计和实现了同时支持前台和后台的官网后端服务。功能上支持用户在官网自主下单、支付、开通 API 服务的全流程,模块主要可以划分为组织、用户、订单、交易、产品定义、产品实例等。个人负责了从前期技术选型开始的服务构建和代码组织、大部分模块的实现以及最后的服务正式上线工作。
  • 数据采集系统 - Scorpio:对于天气站点数据,在 Python3 体系下用 Celery/RabbitMQ 任务队列实现了分布式抓取、前期筛选处理、不同数据源的数据融合、后期处理标准化、存储入库的过程。其间使用 Statsd/Graphite 来监控任务处理状态和系统关键指标。最后用 Twitter 的 PEX 工具对程序进行打包部署。个人负责了该系统全部的设计和实现。对于专业格点数据,使用 Airflow 来管理 ETL 任务流,个人负责了大部分数据流程的实现和维护。
  • 基于 Kong 网关的微服务架构设计与实现 - Halo:基于开源的网关系统 Kong,用 Lua 二次定制开发了与自身业务相契合的网关服务,目的是拆分用户逻辑和无状态的数据接口逻辑,使得系统更易维护且易于扩展。功能上主要包括对请求参数的校验、用户鉴权、与用户相关请求的日志采集、访问量统计与扣减、访问频率限制等。其中包括一个简单的时间序列数据库的实现用于访问量的不同时间纬度的图表展示。最终服务部署在 Kubernetes 集群。个人负责了大部分 Plugin 的开发维护和迭代部署上线的工作。
多益网络
互联网产品研发工程师
2016.3/4/7 - 2017.5
主要负责使用 Node.js 技术栈进行 Web 后端开发,涉及 Express/Koa 框架、MySQL、MongoDB、Redis 等。
  • 游戏论坛:前期搭建过程中负责活动模块和标签模块的撰写,后期独立接手整个项目,负责新需求的实现、日常维护、服务器部署、版本发布、性能优化等从写代码到上线的完整流程。项目主要采用 Express + MySQL + Redis 的架构,由两部分组成:靠前端的服务主要负责简单的页面逻辑和页面渲染,后端的服务完全提供 RESTful 接口化的 JSON 数据返回,所以也同时给移动端 App 提供数据。本项目使我对 Node.js 工业实践中搭建文档系统、自动化测试、日志系统、统一数据返回、MVC 分层架构、合理使用缓存等问题的最佳实践有了更为深刻的理解。

个人作品
  • barn: 用于自动生成、部署在线简历到 GitHub Pages 等服务上的一套 CLI 工具,可以视为 Hexo 的简历版本。本简历即使用该工具生成。
  • 其他: kong-config-manager、clean-promise、node-redis-cache 等,查看我的 GitHub 以了解更多……

技能评估

Node.js / Elixir / Git
Python / TypeScript / C
Erlang / Docker / Shell
Kubernetes / DevOps
Hosted by Coding Pages & Github Pages