联系方式 (base64)
- 微信:a3ZzaGloCg==
- 邮箱:aUBrc2hpaC5jb20K
个人信息
工作经历
上海 xxx 信息科技有限公司 [2016 年 08 月 ~ 至今]
作为机器人项目后端负责人,负责后台管理的设计与开发,带领 5 人团队,实现的巡检任务调度系统稳定性达到 99%。
负责物联网卡项目运营商物联网 HTTP 与 RPC 接口的封装与整合,用 Go 语言实现了电信接口的加解密,优化后对比初版性能提升 5 倍。
学习接受能力强,平时会主动研究新技术,热衷于优化提升性能,不盲目使用复杂的库,信条是 K.I.S.S (Keep It Simple Stupid)。
-
智能巡检机器人
- 使用技术: Python, Rust, Docker, WebRTC, SSE, PostgreSQL
- 使用 Python 开发管理页面,Rust 开发任务调度系统,WebRTC 开发语音对话功能。此项目的难点在于机器人意外断电重启的异常处理、后台系统的长期运行稳定性以及摄像头实时画面的展示,并且在快速迭代的同时维护好代码的可读性及复用性。考虑到机器人后续的批量生产,初始化系统会是个很大的工作量,提出使用 Docker 镜像来部署系统。这样量产时导入准备好的镜像即可,极大的降低了量产时的复杂度。
- 后台管理由于快速迭代,需求会经常变动,所以选用了 Python 的 Django 框架,进行快速开发。由于页面需要获取 ROS 的数据,但是 ROS 自身提供的 WebSocket 不稳定,考虑到 SSE 的单工就可以满足需求,因此使用 SSE 替代 WebSocket 简单化调用与降低占用。页面上还需要进行实时画面展示与音视频通话,但浏览器不直接支持 RTSP 协议,Flash 也即将淘汰,权衡之后选择 WebRTC 协议,通过 FFMPEG 将 RTSP 流转换成 WebRTC 流,从而支持主流大部分浏览器。
- 任务调度部分需要很高的稳定性和完善的异常处理机制,但是后期需求改动并不大。考虑之后选用了 Rust 来进行开发,并且直接使用 SQL,并未使用 ORM 库。以开发时间来换取极高的稳定性和健壮性。在验证了这一点后,后续把后台管理和 ROS 之间的调用接口也迁移至 Rust,使后台管理专注于页面及数据库处理方面,不需要再连接 ROS,避免了后台管理部分连接断开造成的异常。
-
物联网卡管理平台
- 使用技术: Go, gRPC, Redis, PostgreSQL
- 使用 Go 语言对国内三大运营商物联网 HTTP 接口进行统一的封装,同时搭建了 CI 系统,使测试部署过程自动化,减少人工干预。此项目的难点是接口的整理简化与处理,以及中国电信接口的任务回调处理。考虑到接口的实时可用性,在重启时也不能中断程序,因此在开发时就考虑了平滑重启。
- 运营商接口过于杂乱,特别是中国移动,每个省份都是提供单独的接口。考虑到开发体验和用户体验,及高实时性和稳定性,兼顾快速开发,选用 Go 进行开发,未使用 ORM,直接使用 SQL 语法。各个运营商接口的格式和加解密方式都不同,需要使用单独的方法,但又要考虑代码的复用性,而 Go 缺少泛型的支持,因此在性能不是特别苛刻的地方使用了反射,虽然造成了一点性能的损耗,但是代码复用性提升很多。电信的处理接口是非实时的,而且同一张卡必须等前面任务处理完才能提交下一个任务,否则电信端会抛出异常。这里我采取的解决方案是接收到用户任务后统一写入 Redis 进行排队,并且定时主动查询运营商当前任务的完成情况。
南京 xxxx 科技有限公司 [2015 年 6 月 ~ 2016 年 8 月]
-
音视频分屏转码推流聚合平台
- 使用技术: Go, FFMPEG, H264, H265
- 使用 Go 语言开发音视频流的转发直播录制程序。此项目的难点是对 H265 视频流的处理,H265 算是比较先进的视频技术,网络上的资料很少,对 H265 头部处理花费了较长时间。查看了相关英文资料,并且请教专业人士,了解了 H265 头部结构及处理原理后,实现了 H265 的头部处理。
- 项目是对 H264 及 H265 视频的 RTP 流进行解析处理并同时通过 Socket 传输与 FIFO 文件写入,使用 FFMPEG 将 FIFO 数据定时保存为 MP4 视频文件。这个项目让我了解到了音视频格式的区别与细节,对 H265 视频格式有了一定程度的了解。项目对传输速度及音视频流队列有相应要求。音视频流必须按顺序进行队列处理,否则会出现花屏现象,为解决花屏问题,使用了 Go 语言的 channel 来对数据进行先进先出队列处理。
参与的开源项目
技能清单
以下均为我熟练使用的技能
- 编程语言:Go / Python / Rust
- Web 框架:Chi / Gin / gRPC / Django / FastAPI / Warp
- 数据库、缓存相关:PostgresSQL / MySQL / SQLite / Redis / MongoDB
- 版本管理、文档生成和自动化部署工具:Git / Docker / GitHub / Gogs / Slate / Drone
- 操作系统、编辑器:Linux / Windows / VSCode / Vim
致谢
感谢您花时间阅读我的简历,期待能有机会和您共事。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/716585
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.