* 后端开发:Go/C#/NodeJS/Python/Rust/C++
* 前端框架:React/Vue/Angular/Stencil/ExtJS
* 数据库相关:MySQL/PostgreSQL/MongoDB/SQLServer/Redis/RocksDB
* 消息中间件:Kafka/MQTT/RabbitMQ/AMQP
* 容器化:Docker/Kubernetes
* AI 库:FAISS/NUMPY
#### IDS
IDS 提供了实时的人脸建档服务,该模块作为实时完整轨迹中的一个子模块,通过人脸的建档的方式辅助连接完整轨迹,模块由 CommonPush+OnlinePipeline+FaceServer+ModelServer 组成,技术栈包括 golang+cgo+python+c++,输入为人脸图片,输出为全局PID。作为模块的负责人,需要协调工程、算法、推理加速及上下游对接,在保证算法指标的同时,也要保证各个模块的稳定性。整个模块的性能在 4C8G的配置下,能够达到10QPS左右。StaffGenerator 模块作为 IDS 的辅助离线模块,提供了店员自动发现+历史库合并功能。这里分享两个比较有成就感的事情,第一个是对 StaffGenerator 模块的性能优化:该模块为算法实现模块,最开始跑在 mini-pc 环境下的时候,经常出现 OOM 的问题,资源使用及耗时大约在 4C10G+1.5小时,在通读了算法源码之后,将资源使用优化到了 1C1G+15分钟,优化思路为空间换时间,内存仅存储结构化数据及部分算法的调优(将 numpy 串行计算改为 faiss 批量计算)等;第二个是参与了一次救火事件,在一个非常重要的项目即将上线时,发现整个流程及性能指标都不 work,我被从别的项目临时调过来负责了这个项目,在带领4个同事 warroom 了一周之后,将项目顺利推上线,同时将性能由之前的 20 QPS 不到,提升到了 120 左右,优化方向主要从业务细节入手,在不影响业务流程的前提下,提升关键节点的并发能力。在这个项目过程中,有过不少加班熬夜,但是成长也比较显著,对于人员协调能力,各部门线沟通能力都有了较大的提升。
#### API 代理服务
服务的核心功能为提供了统一访问入口,包括:移动端访问API、微信应用访问API、三方系统对接访问API、文件服务访问API等。开发该服务的初衷是解决后台服务太多,各个服务都需要完成API鉴权访问和访问控制,服务太分散,导致移动端(H5)开发人员,对接服务入口太多。服务基于Golang+Gin开发,实现了多个处理中间件,包括:访问追踪中间件、访问日志中间件、反向代理中间件、用户鉴权中间件(jwt)、微信应用代理中间件、访问控制中间件等,其中,微信代理中间件基于session的策略实现的。服务还提供了统一文件资源访问入口,做了一层文件缓存及缩略图处理机制,有效提升了整个文件资源的访问效率(文件服务基于minio搭建)。模块从开发到上线大约耗时两周,在这个过程中个人也得到了一些成长,包括:反向代理的实现方式、微信公众号开发流程、文件缓存及缩略图处理等。
#### 智慧园区管理平台
负责整个平台的开发工作,包括:需求分析、平台研发、开发任务管控、制定开发规范及Code Review、平台上线、平台运维,平台使用Golang + Gin + MySQL+Ant Design React作为技术栈。在平台建设过程中,经历了一次完整的重构过程。出于整个产品方向和业务需求的变更,最初开发的版本已经不能满足当前业务需求,为了不带着更多的历史包袱前行,还是决定整个平台全部重构,从开发框架搭建到整个平台上线用了仅一个月的时间(按期完成),其中包括:由最初的mongo数据库换到了mysql数据库(为了满足复杂业务下事务的支持)、整个权限体系的开发、多园区的支持、企业用户认证等基础模块的开发。通过平台的开发过程,自己也从中收获了很多,包括:对整个产品的思考、团队协作、开发任务管控、前端开发技能提升、使用脚手架工具提升开发速度等。
#### 工作流平台
负责整个平台的研发工作,包括:业务需求采集、功能开发、平台上线等,技术栈采用Golang + Qlang + MySQL + Ant Design React完成。平台基于BPMN 2.0协议完成开发,并使用了开源的设计器(GitHub - bpmn-io/bpmn-js: A BPMN 2.0 rendering toolkit and web modeler.),同时已将引擎的核心代码开源了出来(GitHub - antlinker/flow: 基于bpmn 2.0协议实现的工作流引擎)。平台已在公司内部应用了超过20个业务模块的开发,极大的提升了开发人员的开发效率。开发该平台的初衷是,业务系统涉及复杂的流程审批业务,类似请假流程审批、报修流程审批等,开发人员之前对于此类业务的处理都放在了业务代码中,流程的调整,让开发人员变得非常困难,导致牵一发而动全身,因此我主动提出,要开发一个比较通用的工作流平台来解决这些问题。通过开发该平台,自己学习了BPMN 2.0协议并应用于实践。
#### 统一认证中心
负责整个服务的
负责整个平台的开发工作,包括:需求分析、平台研发、开发任务管控、制定开发规范及Code Review、平台上线、平台运维,平台使用Golang + Gin + MySQL+Ant Design React作为技术栈。在平台建设过程中,经历了一次完整的重构过程。出于整个产品方向和业
负责整个平台的研发工作,包括:业务需求采集、功能开发、平台上线等,技术栈采用Golang + Qlang + MySQL + Ant Design React完成。平台基于BPMN 2.0协议完成开发,并使用了开源的设计器([GitHub - bpmn-io/bpmn-js: A