人见人爱、花见花开的老李

编程语言
PHP:熟悉掌握PHP基础与面向对象OOP特性,熟练使用PHP SPL库,对于PHP的读写IO、进程、Socket网络操作等内置库操作与运用非常熟悉,熟练PHP-Cli模式下的使用方式(包括Workerman与Swoole),曾写作系列文章《PHP网络编程》,Github Swoole Ti-RPC框架作者,GitHub PHP DH密钥协商扩展作者
Go:熟练掌握Golang基础并结合场景灵活运用,熟悉Golang预内置类型的数据结构实现,能够熟练操作使用常见Golang标准库,了解Runtime机制以及Golang内存管理机制,略懂CGO,Github tiny-gRPC作者
C:熟练掌握C语言基础(C99),较为熟悉在*NIX环境下文件IO操作、进程线程(进程/线程安全、资源争夺、进程间通信等等)、内存分配操作、信号机制等系统API,对*NIX环境下的系统编程以及网络编程有一定深度、系统性的认知与实践,相对擅长*NIX服务器网络编程,Github tiny-libev(轻量级事件库)、Tidis
Python && NodeJS:会用,可以熟练操作各种轮子
存储及中间件
Redis:熟悉基础操作命令,熟练根据业务场景选择较为合适的数据结构,较为熟悉Redis常用数据结构底层实现,对Redis高性能网络IO部分源码较为熟悉,Github模仿Redis作品Tidis作者
MySQL:熟悉InnoDB引擎下各种常见索引的数据结构实现,根据实际业务需求设计合理的索引,对InnoDB下的事务隔离级别较为熟悉,能够针对业务合理运用锁机制解决实际问题;了解MySQL主从机制,对MySQL中间件ProxySQL有一定使用经验,对其实现也所有了解
MQ:熟悉Kafka与RabbitMQ的使用,熟悉二者基本概念与操作API以及二者区别,能够根据业务场景选择合适的MQ;熟悉二者的消息推拉模式以及原理实现,能够根据业务场景选择推或者拉,对二者的延迟队列、重试队列的实际应用有一定经验

项目经历
Niceliving(2021.05-2023.06),服务化建设主要负责人,通过引入基础组件的方式实现较为良好的服务化开端
  • I、Log组件:分别基于PHP Monolog与Golang的Logrus实现了可配置化的Log组件,可以自由定义输出格式、自动解决日志切分,最大的特点是集成了Opentelemetry trace机制,可以自动从当前运行环境上下文中获取完整的trace信息,将traceid、spanid等有消息注入到系统日志中,实现日志时序化,可快速用于还原业务故障历史现场
  • II、hRPC组件:基于Golang gRPC标准库实现的轻量级简易gRPC服务框架,集成了I中的Log组件实现每次请求日志的自动记录,对外暴露了拦截器接口可自定义拦截器、可配置tls证书,通过gateway方式同时实现了HTTP服务,重点突出轻量级与开发效率
  • III、SDK-skeleton:服务提供方必须通过提供SDK供业务方引入使用,这样的好处是通过SDK强有力地约束服务接入规范性,SDK-Skeleton可用于快速生成gRPC或HTTP服务的SDK(支持Go与PHP两种语言),同时也集成了集成了Opentelemetry trace机制,起到了向下游服务发起时传递完整Trace信息的功能
  • IV、Passport:是基于原PHP业务中较为公共部分的用户业务逻辑提炼而成,明确业务界限后通过Golang进行了快速迭代重构,主要提供多类型、多渠道、多平台用户的注册登陆,良好扩展性可快速接入任何三方账号快捷登陆,Token增强了安全性并实现了语意化并可以逆向反解,支持多设备同时登陆,涉及用户隐私信息接口支持DH非对称密钥协商进一步提升安全性
滴滴(2018.08-2021.04),负责网约车核心出行业务中台,积极参与国际化业务API的服务化建设,俄罗斯电招业务线负责人
  • I、国际化出行平台建设,参与网约车核心出行业务API的服务化,对核心接口和主业务流程有较为深刻的理解,对于网约车业务垂直业务拆分有较为深刻的认知,对于出行业务的抽象与代码工程逻辑实现
  • II、负责俄罗斯电召业务方案设计与实现,针对电话召车这种特殊的业务形态进行整理设计和抽象,快速高效复用原核心出行业务API,避免了重复制造轮子,通过配置化可以迅速开国开城
  • III、了解掌握核心出行系统的整套微服务治理体系,包括服务注册与发现机制,平台级RPC方案和实现,Trace与Log以及Metric的治理搭配使用,限流与降级实现
  • IV、了解企业级灰度、ab与配置平台的设计与实现,熟悉公共长链接通道架构与实现,对于需求侧汇总抽象后实现的公共基础服务有一定的了解
陌陌(2018.01-2018.08),广告投放业务以及ToB端广告主业务
  • I、主APP广告投放业务与B端广告主业务
  • II、对基于Tensorflow主流广告投放推荐方案设计有所了解,对召回、排序(粗排与细排)以及去重等重要环节有所掌握
积目(2016.10-2018.01),后端研发负责人,负责整体服务设计以及核心部分实现
  • I、基于Swoole TCP Server构建公共核心服务,构建较为完整的RPC服务,Swoole Server较为低成本且快速的提升了IO吞吐率;而业务需求调整较为频繁的业务层,我们加入了单独的API业务层,专注频繁调整的业务需求,达到了非公共业务不侵入公共服务的目标
  • II、基于Seaslog实现了公司公用的Log组件,IO效率远高于Monolog,配合ELK日志服务实现了较为易用方便的日志查询平台,快速有效降低了研发定位故障的速度与成本
  • III、我们高度依赖Redis,为了更方便的扩容与整体稳健,我们引入了Codis集群;MySQL同样也引入了ProxySQL(双节点KeepAlive保活)
  • IV、基于ElasticSearch构建核心推荐服务,低成本快速地解决推荐问题,后引入布隆过滤进行快速高效排重解放ES的压力
白鹭引擎(?-2016.10),素材商城负责人,Dragonbones
  • I、白鹭商城方案设计与实现,使用Swoole HTTP Server构建
  • II、Dragonbones异步任务(一个动画解码耗时操作)队列方案设计与实现,使用Swoole多进程方式代替了原来的NodeJS方案,容错性提高了很多,处理耗时也加快了20%

微信公众号:

Github: https://github.com/elarity

Segmentfault: https://segmentfault.com/u/laolixiuxiu