Skip to main content

邹乐 Le Zou

全栈工程师

15026950096 | aweffr@foxmail.com | 微信: aweffr

学历

上海交通大学
学术硕士 结构工程
上海
2015.9 - 2018.3
上海交通大学
学士 土木工程
上海
2011.9 - 2015.6

工作经历

东方财富信息股份有限公司
运维研发工程师 -> 移动端开发工程师
上海
2018.4 - 至今

专业技能

前端

React
4.5
React Native
4.5
Unstated/Redux
4
Typescipt
4
性能优化
4
Vue
3.5
Webpack & Babel
3
Sass
2
iOS & Android
2

后端

Python
5
Django
4.5
RESTful APIs
4.5
系统设计
4
性能优化
4
Golang
3
MySQL
3
Node
2
C(w/ STL)
2

通用

信息检索
5
数据结构
4
英语
4
Nginx
4
Docker
4
Linux系统编程
3
Jenkins
3
项目管理
3
机器学习
2

项目经历

咚咚 (内部IM) 移动端

2019.5 - 至今
关键字: React Native, Typescript, 即时聊天, CI/CD, 热更新, 视频会议
  • 背景: 于2019年5月独立接手未上线的半成品RN项目, 采用 Typescript 进行了全部重写, 耗时2个月上线。初版具备流程审批和简单文字、图片消息的即时通信功能。
  • 状态管理: 采用 Unstated 作为全局状态管理工具编写客户端聊天引擎, 采用面向对象风格完成聊天消息的收、发、加载、存储、更新等业务。在Unstated与UI组件连接的部分设计缓存以优化性能。
  • 性能优化: 早期采用 TypeORM + Sqlite 做消息的客户端持久化, 随后为降低 TypeORM 运行时开销, 减少 bridge 通信成本, 将重要且稳定的业务替换成raw sql。
  • 后端优化: 指导后端以"写扩散"思路重新设计数据库Schema, 要求以RESTful风格编写接口, 排查后端 N+1 问题, 实现可靠高效的历史消息拉取、已读、咚(类似于钉钉的“钉一下”)、机器人消息等增强功能。
  • 视频会议: 基于 jitsi-meet(WebRTC SFU) 开源项目,二次开发音视频会议功能, 为公司内部远程办公、开会、视频面试等业务提供支持。
  • 功能开发: 研发、审校日常办公功能,如:流程批量处理, 薪资查询, 远程办公打卡, 日程, 通讯录, 活动页, 集成微信sdk等。
  • 研发管理: 制定研发规范, 统一项目整体代码风格, 明确研发工作流, 提高模块实现质量。
  • 基础设施: 编写自动化打包脚本、搭建Sentry、Jenkins等, 为项目自动化部署、异常监控提供支持。
  • 热更新: 基于替换JSBundle实现APP热更新, 开发了对应的静态资源存储、分发平台 MyAppCenter, 开发了灵活的策略支持对指定用户、部门或者全员推送更新。
  • 搭建DevOps工作流: 研发Merge Request会自动触发Jenkins构建并推送到 MyAppCenter, 对应Bundle会以二维码图片消息推送给相关人员, 通过APP内置扫码功能即可更新。测试通过的Bundle即可作为RC随时推送给用户, 提升App功能的开发和交付的效率。

视频会议系统

2020.10 - 至今
关键字: WebRTC, React & Redux, 监控, 横向扩容
  • 背景: 于2021年10月启动, 经过一定时间的调研后, 决定基于 Jitsi Meet 项目二次开发内部视频会议系统。
  • 集成: 业务上, 主导了二次开发会议系统后端、视频会议内的Web端和App端, 打通账户认证, 实现主客户端中立即开会、预约会议、会议中发送邀请消息卡片等功能。
  • 调参: 根据实际使用情况, 调整视频编码、音频码率、入会控制等参数, 提升用户使用体验。魔改了其信令组件以提供实时会议状态接口供监控系统使用。
  • 设备检测: 开发设备检测页, 尽力解决由于客户端的麦克风、播放器、系统隐私授权造成的会议不可用问题,界面上提供对应问题的提示引导,并帮助技术支持更好的现场解决问题。
  • 监控: 为监测会议质量, 开发客户端agent, 对用户实际进出会议,会议中网络质量, WebRTC部分指标进行收集上报, 后端开发统计接口, 形成类似于CallStat.io的监控Dashboard。
  • 集群化: 根据官方文档结合源码实现了jvb集群部署模式, 解决jvb组件的单点问题的同时为视频会议提供了横向扩容的能力。
  • 会议室终端: 采用Electron开发会议室终端, 集成内部IM的会议安排管理和视频会议功能, 对公司部分会议室实现数字化管理。

内部云盘

2020.6 - 2021.6
关键字: Django, Seafile, React, 云文档
  • 背景: 基于Seafile二次开发内部云盘, 打通账号系统, 支持员工将云盘文件作为消息卡片在主应用中进行收发。
  • 改造: 扩展了部分Seahub(Seafile子项目)的API, 弱化目录、路径等概念, 开发"最近使用", "群文档"等功能, 加强与主应用的集成。
  • 在线办公套件: 集成并二次开发了OnlyOffice作为在线办公套件, 实现大部分word, excel文档的实时在线协同编辑。
  • 强化权限: 应部分部门需求, 开发细粒度的文件权限管理模块、手机验证码登录、查看等功能。

其他

关键字: Dashboard, 监控系统, ECharts
  • 研发插件(2021.10 - 至今): 以开发的简易OIDC Provider为基础, 通过webhooks打通代码仓库、项目管理系统和内部IM, 并提供代码统计功能。
  • 文字头像渲染服务(2021.9): 开发服务端渲染方案, 解决文字头像业务在各端出现的兼容性问题。项目中计算与存储分离, 性能通过了压测, 已在全产品中应用。
  • 周报系统(2021.8): 开发了统一的内部周报系统, 具有附件、填写提醒、汇总导入、抄送等功能, 与内部IM深度集成。
  • 运营大屏(2018.4 - 2019.5): 从数据中台的报表数据库取数, 为运营中台持续开发并维护业务监控大屏。
  • 第一届WAIC会展大屏(2018.8): 开发公司在第一届世界人工智能大会的会展大屏, 展示实时股票市场数据和数据分析系统的数据。
  • Abaqus自动化建模(2017.1-2018.3): 基于Abaqus的Python接口开发网壳结构的自动化建模和迭代找形程序, 探索一种可简易布置后一次拉升成型的网壳建筑方案的可行性。