李国宝


个人信息

工作经历

上海脑虎科技 后端开发专家 2023-01 ~ 至今

脑电分析软件 MindExplorer 项目

  • CS (Client-Server) 架构,支持控制端和采集端物理隔离
  • 完成采集器驱动程序二次开发,实现采集板控制指令 gRPC 接口封装
  • 优化 Intan 项目代码,通过减少高通低通波形缓存、移除无用线程等方法,实现 30KHz 采样率下内存占用降低 80%(18GB -> 2GB)
  • 支持脑电数据、音频信号、视频信号采集,多模态数据存储

Service Template: Python + React 项目脚手架

  • 基于 FastAPI + sqlalchemy + Alembic 框架,使用 Python 脚本实现数据存储到简易接口全程代码自动生成,大大减少手写重复代码
  • 使用 Antd Pro 前端框架,实现通用 Web 版管理后台

Bilibili 高级开发工程师 2021-07 ~ 2022-12

社区内容安全

  • Bilibili 主站社区 “内容安全” 相关系统开发维护,涉及项目有敏感词、用户信用分、文本反垃圾、文本规则引擎等
  • 日常反垃圾内容管控迭代,主要包括评论、弹幕、动态等场景” 菠菜 + 色情 “ 黑产广告内容管控;以及用户异常行为特征提取,迭代行为识别相关能力

社区内容异常流量识别系统

  • 使用消息队列异步消费社区服务网关流量日志、业务方用户行为数据、App+Web 端埋点日志(全站最大流量消息),输出为标准用户行为事件后存储到 Clickhouse
  • 对接风控规则引擎实现异常流量识别(脚本、异常序列分、行为置信度等),对外提供异常流量鉴别能力,同时实现了异常流量实时告警

社区知识图谱

  • 负责 “社区知识图谱” 研发落地(前端 G6 + 后端 Golang ), 提供 “知识实体 + 关系 + 属性” 三元组信息图存储, 接入 NLP 算法实现 “知识 + 话题” 的自动化挖掘,通过规则匹配实现知识覆盖指标计算。
  • 通过接入稿件、评论、弹幕、动态实时消息流,实现业务数据实时知识分类识别

社区用户画像系统

  • 基于社区用户全场景行为(账号信息、登录、评论、弹幕、动态、点赞…)数据搭建社区用户画像系统,当前实现批量查询用户近期活跃地区、用户常用设备信息、用户全场景行为等数据
  • 后端基于 Kafka 消费者实现各类业务场景用户行为无入侵数据接入,使用 Clickhouse 存储用户行为数据;前端使用 Antd Pro 框架实现

社区黑产 Case 系统

  • 前期满足社区内容安全团队、社区管控人员记录日常打击黑产 Case,包括 Case 样本、作案人员信息和设备信息、作案现场图片等模块;后期规划基于黑产用户画像和行为特征对外提供识别能力。
  • 前端使用 React + Antd Pro 框架,后端使用 Go + Kratos 实现微服务 Web API,使用 TiDB 存储数据,前后端开发均是我

B 站外部公共舆情告警系统

  • 通过模拟登陆 + 验证码识别实现爬取新浪舆情系统数据,基于 NLP 文本聚类实现热点事件发现
  • 爬取知乎 B 站相关回答,雪球网 B 站讨论帖,接入 NLP 情感分模型实现负向信息告警

推文科技 用户产品后端 Leader 2018-05 ~ 2021-06

  • 作为后端研发 Owner 负责 BabelNovel.com 站点 REST API 服务日常开发和项目迭代,完整支撑 BabelNovel 产品从 0 到百万用户的演进
  • 日常兼职运维、DBA 以及 CI/CD,管理公司北美、东南亚两地 k8s 集群

BabelNovel 书籍核心接口数据视图化

  • 基于提升接口性能推进的项目,总体思路是尽可能数据直出,性能敏感的场景尽可能减少 数据库 IO
  • 使用 Alibaba Canal 中间件监听 MySQL 数据库变更投递到 Kafka,使用消费者服务构建视图数据,实现无入侵业务代码方便快捷构建视图数据
  • 模型数据视图直接存储到 MongoDB,大部分情况下接口数据都可以做到 MongoDB 一次查询数据直出,避免 MySQL 数据库多表多次查询

BabelNovel 金币充值消费系统

  • 为用户提供充值金币服务,同时改造原有金币系统区分免费、付费来源方便结算
  • 对接推文支付网关搭建会员积分充值消费系统,基于“双委托记账”实现每一份积分可回溯
  • 基于数据库 MQ 消息构建用户消费记录 Mongodb 视图,使用“一致性哈希算法”分表存储,为用户提供历史金币充值消费记录

基于用户行为日志计算阅读时长

  • 搭建 Web API 接收 App 端压缩上传的文本日志,日志解压统一格式后投递到 Kafka,实现了多地集群部署
  • 使用 Java Flink 框架实现有状态流式计算,基于用户书籍阅读事件、屏幕点击事件、翻页事件等等计算阅读时长,计算结果通过异步 HTTP  回传到 Babelnovel 主站

推文 OAuth2.0 用户统一账号体系

  • 基于 Hydra OAuth Server 实现用户账号体系,提供标准 OAuth 2.0 授权登录给其他系统
  • 同时接入 Google、Facebook 等支持用户使用第三方授权登录

其他项目

  • 书评站爬虫:使用 Python Scrapy 搭建爬虫系统,基于 jdax 反编译 + 类 Xposed 框架实现 安卓端 APP 内部数据抓取,实现了十几家网站、App 数据抓取
  • 评论系统改造:魔改 remark42 golang 开源平台系统承载 BabelNovel 站点评论数据

ruff.io 南潮科技 Java 工程师 2017.06 - 2018.05

  • 参与南潮物联网 SaaS 平台日常研发和维护,负责部分 SaaS k8s 集群运维工作

  • PI-DataProvider 项目:直接对接原始物联网设备时序数据,作为数据计算源源的抽象服务,实现多平台 TSDB 数据统一接入;为上层调用者提供多指标动态组合的聚合计算,满足计算设备停机率、产线生产速度等等业务需求

  • ELK 错误日志报警系统:自建 ElasticSearch 集群,使用 Logstash 采集集群节点日志数据,编写日志格式化规则结构化数据输出到 ES 中,最终使用 kibana-alerting 实现邮件报警

携程旅行网 软件工程师 2016.06 - 2017.07

  • 邮轮邮件推送项目重构:使用携程 SOA 框架重构订单邮件服务,基于定时任务平台完成订单邮件自动推送,不同需求邮件使用工厂模式实现。
  • 邮轮用户自动分团模型改造:基于订单旅客人数实现特定数量自动分团,支持订单关联依赖后分团亲和性
  • 订单旅客材料分类:提供 Web API 接受客户端上传资料,在网页端为操作者提供拖拽分类功能,分类材料通过异步同步到签证平台

携程旅行网 研发实习生 2015.05 - 2016.06

  • 邮轮订单系统日常维护开发

个人项目

地图搜租房 - 网页+小程序+爬虫+后端 API - 独立开发 - 2017- 至今

  • 使用爬虫采集多平台租房数据,统一在网页端实现地图价格标记,提供上班路线规划等
  • 相关技术:dotnet Core、MySQL、Mongodb、Python flask、rabbitMQ、alibaba Canal
  • 平稳运行超过 4 年,至今采集了上千万的房源数据,日访问量最高到 5K
  • 在线地址:https://house-map.cn 源码地址:https://github.com/liguobao/58HouseSearch

教育经历

  • 四川师范大学    2012.9~2016.07   计算机科学与技术-本科

自我评价

  • 全干工程师,既是“要什么自行车”践行者又不间断“代码强迫症”发作
  • 日常 C#、Java、Python、Node.js 都在写,PHP、Golang、Ruby 以前写过,习惯于快速切换到不同语言框架上搬砖
  • 前端框架 Vue.js 和 React 没有不敢抄的代码,CSS 臣妾真不会
  • Mysql/Mongodb/Redis/LevelDB/TiDB/PG 从安装到“跑路”都搞过
  • 容器技术追随者,半个 RESTful 的践行者,半个 GraphQL 观望者

个人账号