-
简历更新时间: 2021年10月26日
$i-icon-user 张英伟 / YingWei Zhang
- $i-icon-heart 工作职位: 大数据开发工程师 / 系统架构师 / 研发经理 / 网络安全研发工程师
- $i-icon-phone 电话 : 18515456640
- $i-icon-envelope 邮箱 : zhangyw001@gmail.com
- $i-icon-github github : https://github.com/zhangyingwei
- $i-icon-home 主页 : http://zhangyingwei.com
$i-icon-address-book-o 个人信息
- $i-icon-bug 性 别: 男
- $i-icon-bug 年 龄: 29
- $i-icon-bug 现居地: 北京
- $i-icon-bug 学 历: 本科
$i-icon-id-card-o 关于我
- $i-icon-bug 七年工作经验,喜欢攻坚克难,工作内容涉及到
前端
、后台
、大数据分析
、机器学习
以及系统架构
等各个方面。尤其擅长海量数据背景下结合数据存储
、分析
以及展示
的高性能
低延迟
系统设计与开发。 - $i-icon-bug 熟练使用
Java
、Scala
、Python
、Go
等作为主要的开发语言。能够根据实际情况需要,切换不同的语言以及开发模式,使用最合适的语言实现最优的效果。 - $i-icon-bug 具有丰富的带领小组负责独立模块开发的经验,最近三年一直作为团队主要技术负责人,带领小组研发了超过
5
套达到交付阶段的系统 - $i-icon-bug 最近五年以来,一直致力于网络安全相关系统的设计与研发,参与超过
3
个省级网安态势感知系统设计与研发工作。 -
$i-icon-bug 工作之余喜欢研究些新技术,开发了自己的网站,搭建了自己的博客,独立开发并开源了
( Rssflow - RSS订阅检索 ) http://rss.zhangyingwei.com/#/
( EFU - 在线文档系统 ) http://editor.zhangyingwei.com/#/
( Treehole-Jekyll - 个人博客 ) http://blog.zhangyingwei.com/
( Solid - Web模板引擎 ) https://github.com/zhangyingwei/Solid
( Cockroach - 爬虫框架 ) https://github.com/zhangyingwei/cockroach
( Cockroach2 - 爬虫框架 ) https://github.com/zhangyingwei/cockroach2
( Ultraman-Rpc - RPC框架 ) https://github.com/zhangyingwei/ultraman-rpc
- $i-icon-bug 由于对技术的热情,整体技术栈发展比较均衡,从前端到后端再到数据分析以及系统运维方面均有比较大精力的投入研究。
在技术选型上也迈过了选择我会的技术阶段,步入了选择更合适当下场景的技术的阶段
。
$i-icon-cubes 技术栈
$i-icon-hashtag 大数据开发
- 熟练掌握 Java 与 Scala 语言,具有丰富的开发工作经验,有扎实的编程功底和编程技巧,日常开发工作中能够结合实际情况熟练使用各种设计模式与,具有较强的 debug 能力
- 多年
PB
级大数据开发经验,熟练掌握大数据开发相应技能,具有丰富的数据采集、数据清洗、数据统计、数据挖掘、数据展示的经验 - 日常使用 Spark 为主,熟练掌握 Spark 的运行原理和流程,对 Spark 源码有一定的了解。熟练使用 Spark、SparkSQL 与 SparkStreaming 进行海量数据的 在线/离线 数据分析与挖掘
- 掌握 Hadoop 体系架构和集群搭建;掌握 HDFS 存储原理、MapReduce 的原理和流程
- 了解 HBase 的系统架构,能使用 Hbase 做亿级别的数据查询优化。具有丰富结合 Hbase 与 Elasticsearch 来实现百亿级数据快速检索的经验
- 熟练操作 MySQL 数据库,可以对 Mysql 进行千万级别的数据查询优化与数据存储优化
- 熟练使用常用的工具 Sqoop、Flume、Azkaban、Camus、Kafka、Redis 等
- 熟悉 CDH5 集群,可以熟练进行集群搭建以及维护
$i-icon-hashtag 机器学习
- 理解机器学习思想,熟练使用聚类算法
KMeans
、Canopy
、谱聚类、高斯混合模型对数据进行聚类分析。掌握并熟练使用neo4j,熟练图计算算法进行通联关系挖掘,了解常用算法。 - 徒手实现过 KNN、朴素贝叶斯、逻辑回归等基础机器学习算法,正在学习深度学习的过程中。
- 利用机器学习在工作中实现了一系列分类模型对日志进行挖掘,并取得了很好的效果
$i-icon-hashtag web后台开发
- 熟练使用
Java
作为主要开发语言,有良好的编码习惯,注重代码的结构与注释,工作中会在代码重构方面下比较大的功夫 - 熟练使用
Spring
全家桶系列,以及Mybatis
等主流开发框架,对框架的内部执行原理有一定的研究 - 熟练
Mysql
等关系型数据库的使用与优化以及Redis
等 Nosql 数据库, 作为数据存储或缓存中间件 - 熟练使用
Tomcat
等 Web 服务器,熟悉Nginx
服务器的基本配置 - 使用 Java 开发过一款爬虫框架
cockroach
,并开源在 github 上。其最新版本已经发布在 maven 中央仓库中,可以直接在 pom 文件中引用该依赖 - 使用 Java 开发过一款模板引擎
Solid
,并嵌入到Spring
框架中作为数据展示层使用 - 使用 Java 开发过一个简易RPC框架
ultraman-rpc
- 使用 SprngBoot 开发了
EFU-Editor-For-You
[访问地址] 网络在线文档编辑器。 - 使用 SpringCloud 开发了
RSS订阅检索系统
$i-icon-hashtag web前端
- 有比较全面的前端基础知识体系,个人非常喜欢写前端代码
- 使用
jquery
、easyUi
、extJs
、KendoUi
等远古前端框架做过企业级项目开发 - 热衷于使用
Vue
进行项目开发 (包括 Element 、iview 、vuetifyjs 等基于Vue
的前端组件库) - 上边提到的 RSS订阅检索系统 全程使用
Vue
进行设计开发,且不依赖任何css框架
。 - 上边提到的 EFU 在线文档编辑器 采用
Vue
以及凹凸实验室推出的AT UIKIT
组件库进行设计开发,此外还依赖了Vue
生态圈中的Vuex
与Axios
进行数据状态管理以及网络请求分发
$i-icon-keyboard-o 工作经历
$i-icon-hashtag 任子行网络技术股份有限公司 [ 2017/4 – 至今 ] [ 研发经理 ]
- $i-icon-star 项目名称: 分布式扫描探测引擎 [ 目前主要工作内容 ] [ 开发工作独立完成 ]
- $i-icon-info-circle 开发工具: IDEA , Elasticsearch , Redis , Myqsl, Docker
- $i-icon-info-circle 开发语言:
Java
,Go
,Python
- $i-icon-info-circle 项目描述: 次系统主要为了解决当前扫描器效率低下以及扫描结果准确性比较低的问题。通过结合多种开源扫描器,分别发挥各自的优势,进行了功能上的编排,从流程上解决了扫描的效率问题。此外再结合 Docker 进行集群部署,实现了集群的动态扩容以及收缩,进一步提高的扫描性能。
- $i-icon-info-circle 项目职责:
- 前期技术调研以及技术方案的编写,整个项目由我跟另外一个安全分析师两个人完成。其中安全分析师负责安全扫描引擎的技术选型以及扫描任务的编排,
其他相关技术选型以及开发工作均由我独立完成
。 - 使用 Go 语言,基于不完整TCP握手机制 (
收到SYN/ACK之后发送RST结束连接的策略
) , 开发了自研存活性探测服务模块,通过异步的方式大大提高了扫描的效率。 使得存活性探测模块可以达到 4G 4核 单机 5W/分钟 的扫描效率。同时其分布式的属性可以使得整个扫描效率随着硬件资源的增加而增加。摆脱了效率的瓶颈。 - 使用 Java 开发了随扫描器一同安装部署的
Agent
模块,主要负责扫描引擎的控制与通信工作,以及扫描引擎与集群控制端的通信。具体包括:扫描引擎的初始化、任务下发、日志收集、状态收集、数据上报等等。 - 基于SpringCloud 搭建开发了整个基于微服务的集群服务,包括了
scanner-master
、scanner-slave
、scanner-config
、scanner-auth
、scanner-log
、scanner-scheduler
等服务。以及其他配置中心、链路跟踪等综合服务。 - 基于前端探针模块的信息反馈,实现了集群的自动扩容以及收缩功能,实现了在任务量急剧增大时,可以根据资源情况自动进行相关扫描引擎的扩容。在任务量比较小的时候,可以主动收缩引擎数量,释放资源。
- 前期技术调研以及技术方案的编写,整个项目由我跟另外一个安全分析师两个人完成。其中安全分析师负责安全扫描引擎的技术选型以及扫描任务的编排,
- $i-icon-star 项目名称: 网络安全态势感知系统 [ 目前主要工作内容 ] [ 数据分析( 80% 工作任务 )+机器学习( 100% 工作任务 ) ]
- $i-icon-info-circle 开发工具: IDEA , Elasticsearch , Redis , Hbase,Hive,Spark , MySQL
- $i-icon-info-circle 开发语言:
Java
、Scala
- $i-icon-info-circle 项目说明: 从17年接手该项目开始,共发布了 10+ 个大版本,并在 20+ 个省市进行了线上部署应用
- $i-icon-info-circle 项目描述: 此系统主要客户为各省市网络监管单位,主要围绕网络环境的安全管理需求,依托多个网监系统和网络基础资源,对互联网的整体安全态势进行分析以及感知,全方位展示现有网络环境的安全状况,并可以及时发现安全隐患与不足。
- $i-icon-info-circle 项目职责 [ 以下所有功能均为独立负责开发部分 ] :
- 心跳保持
- 为了与前端探针子系统进行心跳保活,同时方便进行配置下发以及指令下发等活动。使用 Netty 开发了心跳保活以及指令下发功能。
- 数据对接
- 针对 Syslog 方式上报的日志,使用 Flume 进行日志收集,并通过自定义开发 FlumeSource 实现了根据日志来源进行打标的功能。
- 针对 FTP 方式上报的日志,使用 Java 开发程序日志收集,通过多线程的方式提高收集效率,实现了单机单进程每日 2TB+ 的数据处理量。
- 数据预处理与标准化
- 针对日志多样化的场景,使用 Scala 开发了一套
日志格式化模板引擎
,并应用在 SparkStreaming 中对数据进行格式化、预处理等,为后续日志处理程序提供标准化的数据,将日志接收、日志格式转换与日志处理进行解耦,提高程序的利用率。 日志格式化模板引擎
的主要功能有: 数据解析(字符串数据解析、二进制流式数据解析)、数据的抽取、数据属性格式转换、数据基础信息补充、数据结果格式化、数据输出(对应多数据源,hive、hdfs、kafka、mysql、es等等)。完成了配置化抽取,应对不同的日志只需要配置不同的解析模板,大大节省了数据接入成本以及开发成本,提高的程序针对不同格式数据的兼容性;因为配置规则具有很强的针对性,所以相对正则等匹配规则而言具有性能高
的特点。同时配置模板还支持对数据进行简单处理,如:时间格式变换
、数字简单四则运算
、字符串拼接
等等- 针对收集来的日志,使用 Spark 进行过滤以及关联分析,通过加载私有规则,过滤掉低可信数据,并进行多维度打标。提高日志的准确性,降低误报,并对所发生的安全事件进行事件、地域、类型等多种维度的统计分析。
- 针对日志多样化的场景,使用 Scala 开发了一套
- 机器学习
- 使用 sklearn 以及 SparkML 训练了一系列机器学习模型(DGA异常域名识别、XSS攻击识别、SQL注入攻击识别、垃圾邮件识别、DNS反射放大攻击识别),为项目中攻击识别提供技术支撑,通过二次验证的方式,提高识别的准确率
- 数据同步
- 由于项目中涉及到多个系统之前的数据同步,因此基于 Azakaban 的 Java 类型程序调用时参数传递的特性,开发了一列数据处理模块,包括 数据导出/导入 Mysql、数据导入/导出 ES、数据上报 SFTP/FTP 、数据加密/解密、数据上传 HDFS/HIVE 等等。通过 Azakaban 的配置文件进行依赖配置,零代码开发,便可以组装成一条完整的数据同步流程。
- WEB 相关
- 使用 Vue 重写了系统的前端所有页面,主导并推动团队使用前后端分离以及微服务对项目进行重构
- 基于对数据安全方面的要求,通过注解实现了项目中相关表与相关字段的脱敏处理
- 心跳保持
$i-icon-hashtag 长安通信科技有限责任公司 [ 2016/4 – 2017/4 ] [ java开发工程师 ]
- $i-icon-star 项目名称: 人物画像系统
- $i-icon-info-circle 开发工具: IDEA , 国产神通数据库 , redis , hbase,hive,spark
- $i-icon-info-circle 项目描述: 此系统主要作用为描述任意人的身份信息、爱好信息、以及日常活动信息,因部分涉及
国家机密
,所以详细的情况不方便描述 - $i-icon-info-circle 项目职责: 项目负责人以及主要研发人员
$i-icon-hashtag 赞同科技 [ 2014/8 – 2016/4 ] [ java开发工程师 ]
- $i-icon-star 项目名称: 驻客智慧社区物业管理端(JavaWeb)
- $i-icon-info-circle 开发工具: MyEclipse10 , MySQL , Tomcat6.0
- $i-icon-info-circle 项目描述: 略
- $i-icon-info-circle 项目职责: 略
$i-icon-hashtag 个人开发项目
- $i-icon-star 项目名称: ultraman-rpc RPC框架
- $i-icon-info-circle 项目地址: https://github.com/zhangyingwei/ultraman-rpc
- $i-icon-info-circle 开发工具: IDEA
- $i-icon-info-circle 项目描述: 本项目主要用于 RPC 框架的学习,在学习的同时从零开发,自己编写一个 RPC 框架。实现了 RPC 远程调用功能、服务负载均衡功能、服务黑白名单校验功能。
- $i-icon-info-circle 所用技术:使用
java
做为主要开发语言,使用 Netty 作为网络通信工具。在开发的过程中,自定义实现了网络拆包粘包逻辑、数据序列化以及反序列化逻辑等。远程调用通过java
的反射机制完成。 - $i-icon-info-circle 技术难点:项目设计两大难点,一、如何减小传输数据大小,提升网络吞吐量、提高网络的稳定性。二、如何实现安全权鉴以及负载均衡。
- $i-icon-info-circle 项目职责: 框架的结构设计,功能模块的设计。功能模块的封装以及整体编码的完成。
- $i-icon-star 项目名称: cockroach 网络爬虫框架
- $i-icon-info-circle 项目地址: https://github.com/zhangyingwei/cockroach
- $i-icon-info-circle 开发工具: IDEA
- $i-icon-info-circle 项目描述: 开启本项目的意义在于,遍历网络上的java系爬虫之后发现开发都比较复杂,所以想要开发一个使用简单的爬虫框架,不需要多大的学习成本就可以实现一个爬虫
- $i-icon-info-circle 项目特点: 使用简单,稳定性高,便于监控
- $i-icon-info-circle 所用技术:主要使用
java
做为主要开发语言,默认使用okhttp作为网络请求工具(程序中提供接口可以替换为其他http客户端),使用jsoup作为html解析工具。使用 chrome 无头浏览器作为网页动态渲染工具 - $i-icon-info-circle 项目职责: 个人项目,所以包括框架的结构,模块的设计,模块的封装,异常的处理,功能的实现,均由自己独立完成。
- $i-icon-star 项目名称: TreeHole 博客系统 访问地址
- $i-icon-info-circle 项目地址: https://github.com/zhangyingwei/treehole-jekyll
- $i-icon-info-circle 开发工具: IDEA , sublimeText3 , mysql, sqlite
- $i-icon-info-circle 项目描述: 本项目的目的在于解决动态博客主题单一的问题,使用 Solid 模板引擎,适配 jekyll 模板,天生支持 jekyll 的众多主题
- $i-icon-info-circle 项目特点:
- 对于普通使用者来说,一键安装,一键运行,内嵌sqlite数据库,不需要做特殊的配置
- 博客前端模板适配
jekyll
模板,可以使用海量jekyll
前端模板 - 对于有一定的技术经验的人来说,可以自定义开发个性化的前端模板
- 前端模板引擎系自主开发并开源的引擎,用户可以有针对性的做定制化开发
- $i-icon-info-circle 所用技术: 后端主要使用
java
做为主要开发语言,使用spring-boot
、mybatis
等后端框架。前端主要使用Solid
模板引擎开发。 - $i-icon-info-circle 项目职责: 项目中的架构搭建,功能点的划分,数据库的设计,原型图的设计,前端页面的开发,后端代码的开发均为自己开发。项目主要的难点在于为了适配 jekyll 模板,定制化开发了 Solid 模板引擎,并应用于 spring-boot 中。
- $i-icon-star 项目名称: RSearch RSS订阅检索系统 访问地址
- $i-icon-info-circle 开发工具: IDEA , vscode , mysql
- $i-icon-info-circle 项目描述: 随着 Google Reader 的关闭以及国内的 RSS 阅读器厂家纷纷关闭 RSS 订阅服务,众多优秀的独立博客内容就很难聚合维护。此产品目的在于订阅 RSS 源,把优秀的内容聚合起来,并通过前端网站展示与后端邮件推送的形式把内容推送到用户手中。应用主要包含服务端程序,前端网站程序,后端管理端程序以及其他插件程序。
- $i-icon-info-circle 项目特点:
- RSS 聚合并提供检索动能
- 按阅读热度推荐文章功能
- 按订阅热度推荐订阅源功能
- 按规则订阅内容功能,用户可以通过自定义规则,对订阅源的文章进行过滤订阅,去掉不感兴趣的内容,增加订阅内容的价值
- $i-icon-info-circle 所用技术: 后端主要使用
java
做为主要开发语言,使用springcloud
全家桶,微服务架构。前端主要使用vue
开发。 - $i-icon-info-circle 项目职责: 系统所有功能均由本人独立开发
- $i-icon-star 项目名称: EFU 在线文档编辑器 访问地址
- $i-icon-info-circle 开发工具: IDEA , Vscode , Mysql , Solr
- $i-icon-info-circle 项目描述: 在石墨、语雀等一系列在线文档管理系统火爆的今天,在线编辑器已经非常成熟了。并且,语雀的运营模式以及石墨的运营模式,包括其他类似的系统的模式已经日趋成熟。但是纵观所有的文档管理工具都还停留在管理阶段。没有一个系统可以将所有文章贯穿形成一个知识的网络。
既然没人做这个,我就来做一个
- $i-icon-info-circle 项目特点:
- 提供标准的基于知识库的文档管理工具
- 提供非常流行的 Markdown 即时可见编辑器,提供基础的文字编辑功能以及进阶的
代码高亮
、脑图
、数学公式
、流程图
、时序图
、甘特图
、echarts 图表
等高级功能 - 针对文章内容进行结合机器学习的文本分析,将所有文章分析结果进行 mix ,最终形成一张由知识点组成的图。通过对图进行分析形成针对个人的知识体系。
- 按规则订阅内容功能,用户可以通过自定义规则,对订阅源的文章进行过滤订阅,去掉不感兴趣的内容,增加订阅内容的价值
- $i-icon-info-circle 所用技术: 后端主要使用
Java
做为主要开发语言,使用SpringBoot
进行快速开发,结合Solr 实现全文检索。前端主要使用Vue
结合凹凸实验室的AT UIKIT
进行开发。 - $i-icon-info-circle 项目职责: 系统所有功能均由本人独立设计开发