• 简历更新时间: 2024年03月04日

    $i-icon-user 张英伟 / YingWei Zhang


    $i-icon-address-book-o 个人信息

    • $i-icon-bug 性 别: 男
    • $i-icon-bug 年 龄: 32
    • $i-icon-bug 现居地: 北京 / 昌平
    • $i-icon-bug 学 历: 本科

    $i-icon-id-card-o 关于我


    $i-icon-cubes 技术栈

    $i-icon-hashtag 大数据开发

    • 熟练使用大数据分析技术栈 ( Kafka、Spark、Flink、Flume、Scala、Java ), 熟练运用流计算窗口、状态、算子、并发、调优技术
    • 多年数仓实战经验,熟悉 Hive、Hbase、ClickHouse、Dorie、ElasticSearch 等数仓技术栈以及 ETL 任务开发、工作流任务设计与优化等
    • 熟练掌握大数据计算/存储平台的搭建与维护( CDH、HDP )
    • 对数据中台建设、数仓建设, 数据湖平台建设以及数据治理等具有一定的实战经验
    • 熟悉 MySQL 数据库, 在项目中通过对数据库进行相关存储和查询优化手段, 实现数据实时入库和 1000w+ 级别的数据秒级查询
    • 对日增量百亿级数据采集、存储与分析有较为丰富的项目实战经验

    $i-icon-hashtag Web 后台开发

    • 8年 Java 开发经验, 有良好的计算机基础,熟悉常用算法
    • 熟练使用 Spring 全家桶系列, 以及 Mybatis 等主流开发框架开发 单机 / 分布式 架构高性能 Web 项目
    • 对开发框架的内部执行原理以及性能调优有一定的研究
    • 熟练掌握 Sql,Nosql 数据库,MySQL \ PostgreSQL \ Redis \ Mongodb
    • 具有丰富的架构设计经验, 在本职工作之外, 曾作为外聘专家为外部公司提供架构设计咨询服务
    • 使用 Java 开发了一款爬虫框架 cockroach , 并开源在 github 上。其最新版本已经发布在 maven 中央仓库中
    • 使用 SprngBoot 开发了 ExploreSerp [访问地址]
    • 使用 SprngBoot 开发了 SmartGPT - GPT套壳工具[访问地址]

    $i-icon-hashtag web前端

    • 有丰富的前端开发、架构和部署经验
    • 熟练使用 Vue 进行项目开发 (包括 Element 、iview 、vuetifyjs 等基于 Vue 的前端组件库, 以及 Tailwind CSS 等前端样式库)
    • 有丰富的大型单页面应用开发经验, 有数据展示大屏开发经验
    • 熟悉前端工程化手段和性能优化手段, 具备工程审美, 掌握常用的构建工具.
    • 熟悉 HTTP、VebSocket协议

    $i-icon-hashtag 机器学习

    • 利用机器学习在工作中实现了一系列分类模型对日志进行挖掘, 并应用在产品中, 取得了很好的效果
    • 理解机器学习思想, 熟练使用聚类算法 KMeansCanopy、谱聚类、高斯混合模型对数据进行聚类分析, 了解常用算法。
    • 自己实现过 KNN、朴素贝叶斯、逻辑回归等基础机器学习算法, 对一些常见算法底层逻辑有一定的涉略。

    $i-icon-keyboard-o 工作和项目经历

    $i-icon-hashtag 国科华盾(北京)科技有限公司 [ 2022/4 – 至今 ] [ 研发负责人 ]

    • $i-icon-star 项目名称: 城市盾 * 安全态势感知系统 [ 目前主要工作内容 ]
    • $i-icon-info-circle 开发工具: IDEA , Redis , Myqsl, Hive, MongoDB, Docker
    • $i-icon-info-circle 开发语言: Java, Go(资产发现)
    • $i-icon-info-circle 项目描述: 适配了多源 ( 自研+ATD+其他 ) 探针, 实现了自动化多源日志采集、数据分析、安全事件归并+分析以及多维度展示等功能。
    • $i-icon-info-circle 项目职责:
      • 产品立项、需求调研、技术调研、相关技术方案的编写以及研发任务评估
      • 开发人员的招聘以及研发团队的组建和研发管理
      • 整体系统架构设计、技术选型、计算和存储方案制定、数据标准制定
      • 研发流程制定, 前端风格的确认和开发框架搭建, 后端框架搭建, 自动化CI编译打包发布环境搭建等
      • 后端接口开发、安全事件分析模型搭建与开发
      • 版本发布方案制定、测试方案制定以及协调执行
      • 相关技术专利申请, 一年内, 研发团队共提交包括已获得 4 份专利授权之内的共 12 份专利申请
      • 产品技术文档、推广文档的编写, 演示脚本编写以及演示视频录制与制作, 支撑市场人员进行相关推广与交付活动
      • 向部门总监与老板汇报研发计划和研发进度

    $i-icon-hashtag 任子行网络技术股份有限公司 [ 2017/4 – 2022/4 ] [ 研发经理 ]

    • $i-icon-star 项目名称: 信通院 IDC3.0 网安系统
    • $i-icon-info-circle 开发工具: IDEA , Elasticsearch , Redis , Myqsl, Hive, SparkStreaming
    • $i-icon-info-circle 开发语言: Java, Python(少量, 脚本)
    • $i-icon-info-circle 项目描述: 需求来自信通院, 主要对接各省数据进行统一数据采集分析展示以及指令下发, 本系统的难点在于增量数据巨大以及指令下发范围超广, 需要在技术层面保证数据采集的实时性以及指令下发的可靠性。
    • $i-icon-info-circle 项目职责:
      • 需求调研、技术调研、相关技术方案的编写以及研发任务的拆分, 工作进度跟踪和人员协调
      • 硬件配置需求计算与评估, 软件基础架构搭建
      • 数据采集框架开发, 因此在硬件资源少, 性能需求高的前提下, 通过摒弃一些复杂的现成框架结构, 采用定制化的基于多进程+多线程自研框架, 以单机256G内存+20核心的性能满足了初期 5 个省 每日 20亿 数据采集的需求
      • 对采集的数据进行多维度分析, 根据实际数据情况以及业务需求搭建数仓, 满足客户对各个维度的实时数据日统计数据周统计数据月统计数据的分析与展示, 并针对各层数据设计不同的生命周期, 满足数据存储的要求
      • 针对指令下发需求, 采用三级架构, 按照 事件->任务->指令 三个维度进行管理、控制与分发。通过异步的方式对指令进行拆分、下发、状态更新, 通过事务保证指令下发的可靠性, 该模块上线以来, 截止目前承担了 5个省 100+ 机房共 5000+ 指令下发工作, 下发成功率100%, 经受住了现实的考验
    • $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-masterscanner-slavescanner-configscanner-authscanner-logscanner-scheduler 等服务。以及其他配置中心、链路跟踪等综合服务。
      • 基于前端探针模块的信息反馈, 实现了集群的自动扩容以及收缩功能, 实现了在任务量急剧增大时, 可以根据资源情况自动进行相关扫描引擎的扩容。在任务量比较小的时候, 可以主动收缩引擎数量, 释放资源。
    • $i-icon-star 项目名称: 网络安全态势感知系统
    • $i-icon-info-circle 开发工具: IDEA , Elasticsearch , Redis , Hbase, Hive, Spark , MySQL
    • $i-icon-info-circle 开发语言: JavaScala
    • $i-icon-info-circle 项目说明: 从17年接手该项目开始, 共发布了 10+ 个大版本, 并在 20+ 个省市进行了线上部署应用
    • $i-icon-info-circle 项目描述: 此系统主要客户为各省市网络监管单位, 主要围绕网络环境的安全管理需求, 依托多个网监系统和网络基础资源, 对互联网的整体安全态势进行分析以及感知, 全方位展示现有网络环境的安全状况, 并可以及时发现安全隐患与不足。
    • $i-icon-info-circle 项目职责 :
      • 负责整体项目的设计、相关文档的编写以及研发工作的评估和拆解, 在有限的人力资源以及时间的情况下, 保证按时保质保量的交付。
      • 为了方便对安全探针子系统进行配置下发以及指令下发等活动。基于 Netty 开发了心跳保活以及指令下发功能。
        • 数据对接
          • 针对 Syslog 上报的日志, 使用 Flume 进行日志收集, 并通过自定义 FlumeSource 对日志来源进行打标。
          • 针对 FTP/SFTP 上报的日志, 开发了日志收集程序, 实现了单机单进程每日 2TB+ 的数据处理量。
        • 数据预处理与标准化
          • 针对日志多样化的场景, 基于 Scala+SparkStreaming 开发了一套 日志格式化模板引擎, 对数据进行格式化、预处理等, 为后续日志处理程序提供标准化的数据, 将日志接收、日志格式转换与日志处理进行解耦
          • 日志格式化模板引擎 的主要功能有: 数据解析(字符串数据解析、二进制流式数据解析)、数据的抽取、数据属性格式转换、数据基础信息补充、数据结果格式化、数据输出(对应多数据源, hive、hdfs、kafka、mysql、es等等)。完成了配置化抽取, 应对不同的日志只需要配置不同的解析模板, 大大节省了数据接入成本以及开发成本, 提高的程序针对不同格式数据的兼容性;因为配置规则具有很强的针对性, 所以相对正则等匹配规则而言具有 性能高 的特点。同时配置模板还支持对数据进行简单处理, 如:时间格式变换数字简单四则运算字符串拼接 等等
          • 针对收集来的日志, 使用 Spark 进行过滤以及关联分析, 通过规则引擎, 过滤掉低可信数据, 并进行多维度打标。提高日志的准确性, 降低误报, 并对所发生的安全事件进行事件、地域、类型等多种维度的统计分析。
        • 机器学习
          • 使用 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 个人开发项目

    • $i-icon-star 项目名称: ExploreSerp - 搜索引擎API接口 访问地址
    • $i-icon-info-circle 项目描述: 随着近几年大模型AI的崛起, 产生了基于大模型的诸多引用, 本项目主要为大模型赋能, 提供网络检索的功能, 补充大模型不能上网的问题。
    • $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-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-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-bootmybatis等后端框架。前端主要使用 Solid 模板引擎开发。