# 高阳的简历
## 基本信息
求职意向:Node.js | 13年工作经验
男 | 生日:1987.05 | 北京 15321782981 yunnysunny@163.com
## 个人优势
擅长架构设计,熟悉HTTP/TCP网络协议,善于抓包解决网络问题。有带团队经验,初期带领过前后端两个团队。
使用 Node 做纯后端开发,使用 redis 来做实时数据处理。涉猎 kafka grpc 等通信模式和上游服务进行通信。涉及 `protobuf` `consul` `docker` `k8s` `openresty` 等技术栈。有高并发分布式处理经验,处理过 20W+ 的QPS。
8年 node 经验,熟悉 Node 的原理与权限,有丰富的性能调优经验,开源项目 `superagent` `node-rdkafka` 贡献者;三年信息安全和 java、 c语言开发经验,了解 PKI 等体系结构;一年 go 语言开发经验,有自己的微服务开发框架;有丰富原生前端 js 开发经验,熟练使用 jQuery。
## 工作经历
### 北京蒸汽记忆科技有限公司 Node.js 2022.03-2022.08
**内容:**
> 解决了一些公司存留的技术难题,大体包括以下方面:
1. 解决 windows 下的 `ad connector` 程序和 ad 服务连接不稳定问题 解决 `ad connector` 和后端服务 websocket 连接不稳定的问题
2. 解决 redis 中存在千万 key 生命周期超长问题,将 key 由一千万优化为几十万
3. 解决制作出来的 docker 镜像个头大问题,将镜像体积由1.8G优化为五百多M
4. 编写 oidc 集成 `aws lambada 服务`、 `aws api gateway` 和 `aws cognito` 的示例代码
### 北京一起科技有限公司 Node.js 2017.02-2022.02
> 直播间 Node 组负责人,初期同时带领后端和前端两个团队,后期以后端团队为主。
1. 通过架构改造和性能调优,以支持在线直播高峰期支持 20w+ QPS
2. 编写团队内部开发框架和可持续集成解决方案,编写技术培训手册和开发规范,指导新人等。
3. 通过 wireshark 抓包来分析 `kafka` `redis` 等异常问题。
4. 通过 内存快照 CPU 火焰图来分析系统中的性能问题。
5. 设计实施分布式跨机房的服务架构方案,编写网关层逻辑。
6. 涉猎的技术栈有 `protobuf` `kafka` `grpc` `Consul` `redis` `mongodb` `docker` `k8s` `openresty`
7. 制定devos ci流程,在ci中实现单元测试、覆盖率收集、镜像制作推送等流程,提升了整体开发部署效率
8. 编写基础镜像,包含 Consul agant、自研pm2插件、promethes metric收集等功能
9. 指导前端同事完成初版手机直播单页应用编写,践行单页应用直播秒开理念
10. 初期的编程语言以 node 为主 后来引入 go 语言。
### 北京星云视联股份科技有限公司 全栈工程师 2015.07-2017.02
1. 对接新浪轻应用、微信公众号登录,对接微博支付、支付宝、微信支付,对接短信接口。
2. HTML5 直播、点播播放器编写,前端聊天逻辑编写。
3. c# 客户端内嵌web应用编写
4. 优化性能,找到性能瓶颈,给出解决方案。
### 北京光慧数码科技有限公司 全栈工程师 2013.09-2015.07
1. 手机H5直播页编写,实现websocket聊天功能,视频、音频播放断线重连实现。
2. 对接淘宝同学后端接口。
3. 辅导实习生完成工作。
### 北京思拓合众科技有限公司 Java 2013.04-2013.08
1. 站点管理守护程序,编写服务器端 socket 守护程序,接收客户端请求来建立一个 nginx 站点。
2. redis队列消费者程序,对每个任务分配线程,读取redis中队列数据,完成异步任务。
3. 站点性能监控,通过snmp来获取当前服务器上的性能参数。
### 北京三未信安科技有限公司驻济南办事处 嵌入式 2010.04-2013.04
1. u盾安卓端ndk接口封装。
2. 国家图书馆单点登录系统,负责设计单点登录模型。
3. 扫描仪水印添加项目,服务器端调用公司加密机给tif图片添加数字签名,客户端MFC程序验证签名。
4. 公司 `java socket`、`jce` 服务维护和编写。
5. 培养实习生。
## 项目经历
### Docker 相关
#### dockerfiles 开源项目 2021.10-至今
本项目提供一系列基础镜像,包括 alinode supervisor go 等镜像。
● 项目地址 https://github.com/yunnysunny/dockerfiles
### openresty 相关
#### resty-gate 开源项目 2021.11-至今
openresty 网关项目,支持通过 consul 做服务发现,支持使用 http 1.1 模式反向代理到后端 http 服务,支持设置 http 1.1 的连接池数目,支持分布式多机房架构。
● 项目地址 https://github.com/yunnysunny/resty-gate
### golang 相关
#### consul-register 开源项目 2021.11-至今
基于go的consul注册命令行程序,支持注册 HTTP 和 grpc 协议的服务,支持指定健康检查功能。
● 项目地址 https://github.com/yunnysunny/consul-register
#### consul-balancer 开源项目 2021.11-至今
go语言项目,基于 fasthttp 和 consul 实现客户端的服务发现和负载均衡功能。
● 项目地址 https://github.com/yunnysunny/consul-balancer
#### go-micro-tpl 开源项目 2021.11-至今
自研 go 微服务框架,支持通过 grpc http kafka 协议接收请求报文。
● 项目地址 https://github.com/whyun-com/go-micro-tpl
### Node 相关
#### http-request-proxy 开源项目 2020.03-至今
express插件,支持根据 URL 前缀将请求转发到后置服务中。适合使用在 API 网关项目中,使用本包后,通过简单配置即可实现请求往对应服务进行转发,减轻了开发工作量。
● 项目链接 https://github.com/yunnysunny/http-request-proxy
#### config-settings 开源项目 2018.09-至今
服务配置信息加载的库,可以支持从本地 json 文件或者远程 consul K-V 中加载配置信息,如果是使用consul 的话,可以支持动态刷新本地配置。
● 项目链接 https://github.com/yunnysunny/config-settings
#### flash-cache 开源项目 2017 .08-至今
在内存中存储临时数据,受到 JVM 和 V8 老生代和新生代 GC 理念的启发而设计的包。
● 项目链接 https://github.com/yunnysunny/flash-cache
#### session-token 开源项目 2017 .07-至今
一个token信息存储和读取的库,支持将token管理信息存储入redis,并且在读取过程中做了优化,支持二级缓存,二级缓存可以是内存或者本地文件。
● 项目链接 https://github.com/yunnysunny/session-token
#### node-slogger 开源项目 2016.08-至今
一个日志封装库,支持格式化日志输出,支持日志输出到控制台和本地文件、kafka。支持日志先缓存到本地内存,然后定时刷新的功能,解决频繁打印日志导致使用过多 CPU 时间的问题。
● 项目链接 https://github.com/yunnysunny/slogger
#### nodebook 开源项目 2015.08-至今
这是一本关于 Node.js 技术的开放源码电子书,从 Node 的底层原理开始讲起,涵盖 Node 的常用 API 和常用第三方库、C++扩展、最佳实践等内容。
● 项目链接 https://github.com/yunnysunny/nodebook
### C/C++ 相关
#### shmdb 开源项目 2014.04-至今
基于linux共享内存的 K-V 库,通过 hash 算法进行数据存储。
● 项目地址 https://github.com/yunnysunny/shmdb
#### sget 开源项目 2012.09-至今
基于标准C编写的跨平台下载命令行工具,支持下载指定http地址的资源到本地。
● 项目地址 https://github.com/yunnysunny/sget
#### 基于加密卡的安全扫描设备 主程 2012.05-2012.09
加密卡所在机器调用扫描仪进行扫描,继而调用加密卡进行签名,扫描完成后客户端,建立多个线程,调用服务器端内嵌的http服务器来下载生成的文件。服务器端调用清华紫光的扫描仪接口,然后将扫描的图片数据送到加密卡去加密。客户端调用 OpenSSL 验证签名数据,给出验证结果,并且显示图片。
硬件环境为 `加密卡` + `清华紫光 q300 扫描仪`。
### Java 相关
#### 国家图书馆单点登录系统 主程 2011.08-2012.05
国家图书馆单点登录系统,设计跨主域的单点登录实现方案。保证国家图书馆各个不同根域名的网站进行登录状态互通。
● 项目网站 https://sso1.nlc.cn/
## 教育经历
2006-2010 齐鲁工业大学 本科 计算机科学与技术
## 社交网站
- github https://github.com/yunnysunny
- 个人博客 https://blog.whyun.com
- 知乎 https://www.zhihu.com/people/yunnysunny