简单简历

庄镇源

6年工作经验 | 求职意向:后端开发 | Golang

专业技能

GO

  • 熟悉 Beego / Gin 框架 和 gRPC / Protobuf 技术栈的使用与实践
  • 了解 goroutine 并发编程机制以及 channel 通信模型,及 GMP 模型下的调度与执行

PHP/Node.js/Vue

  • 掌握PHP相关技术栈:Laravel框架Composer依赖管理,并熟练运用 LNMP 架构部署PHP应用
  • 熟练 Node.js 服务器端编程,掌握TypeScriptNestJSGraphQL等技术栈进行高效开发
  • 掌握使用 Vue3 进行应用开发,并基于tdesign组件库进行业务功能组件封装



数据库与消息队列

  • 熟练使用 MySQL ,具备索引调优经验、了解InnoDB存储引擎及MVCC多版本并发控制的实现
  • 熟练使用 ClickHouse 列数据库,能够进行大规模数据分析应用的开发与优化
  • 掌握 Redis 在缓存、分布式锁、消息队列等场景中的最佳实践
  • 掌握 Kafka 的使用,在大规模爬虫和IM项目有过实践应用

容器与运维部署

  • 熟悉 DockerKubernetes 以及周边生态工具的使用,具备容器编排和设计经验,能够进行自动化和规模化部署
  • 熟练 Github Actions、Tekton 等工具构建 CI/CD
  • 熟练编写 Shell 脚本来实现自动化运维,提升部署和管理效率
  • 熟悉使用阿里云和AWS的产品搭建服务基础设施,负责服务的日常监控与维护工作

工作经历

全栈开发工程师

前海启晋 深圳

2022/12 - 2023/09

  • 业务背景:作为跨境电商公司的IT部门,需要构建数据服务来分析海量业务数据,以支持销售决策。
  • 负责搭建 Kubernetes 集群基础设施,承载所有服务的统一运维,重点实现爬虫服务的分布式调度和灵活控制爬虫并发数量,上线后爬虫效率大幅度提升
  • 负责使用 Golang 开发缓存网关服务,通过响应频繁访问的热点数据请求,显著提升了业务系统的响应速度,使用缓存数据的接口响应时间降低了 5-15 倍。
  • 负责使用 Golang 重构了原先基于Node.js开发的数据分析服务,提高了服务执行效率,并更好地适配了容器化部署架构,基于K8S的Argo Workflow来进行调度管理
  • 参与BI后台数据中心的全栈开发,使用Vue3进行前端开发,使用NestJS进行后端Restful API开发
  • 参与数据分析服务(基于clickhouse)和爬虫服务的业务开发
  • 负责所有应用实现容器化,可以结合 Github actions 完成 CI/CD

后端开发工程师

贝尔编程 深圳

2021/04 - 2022/08

业务背景:可视化编程平台面向6-18岁的青少年人群,通过边玩边学的模式来编程搭建不同的场景(游戏场景,剧情交互)提供一个发挥创造力和想象力的平台给用户交流

  • 主导开发基于 Kubernetes 构建可弹性伸缩的自动化生成式多环境系统,系统上线后轻松解决了测试环境不足的问题
  • 主导游戏服务调度项目开发,使用 Golang+Kubernetes技术栈,进行弹性伸缩的启动游戏服务器,上线后节省40-50%服务器成本并减轻运维负担
  • 参与开发数据中间层服务,通过 Nest.js+GraphQL来进行聚合接口数据,并通过引入dataload解决N+1查询的问题,上线后前端整体减少30%请求数
  • 参与搭建 CI/CD 系统,使用 Tekton 和 GitHub actions 平台作为构建平台来进行应用镜像的构建,跑测试脚本等流程
  • 负责Aliyun(ECS、ACK、RDS)和 AWS(EKS、Fargate)产品运维,以及协助游戏部门将应用容器化

PHP开发工程师

响车车科技有限公司 深圳

2018/07 - 2021/04

业务背景:主要为共享汽车出行平台,用户在平台上进行下单租车,加盟商也可以进行投放车辆到平台进行统一代管理

  • 主导负责IM通信项目设计和开发,带领3人小组使用GO作为服务端语言在两个月时间完成开发并上线,承载整个平台的消息推送功能,在单机服务器32 核32G内存的服务器上压测可承担百万级别连接和千万级别的消息推送
  • 参与业务功能迭代开发,使用 PHP 进行服务端开发Restful API接口,使用 MySQL、Redis、MongoDB 作为存储服务
  • 推进容器化进程在服务端的应用,负责在开发和测试环境搭建 K8S 集群服务来落地应用

PHP开发工程师

广东子牛教育咨询有限公司 广州

2017/06 - 2018/06

业务背景:主要针对电商领域的人群,提供网店装修案列示例和指导,通过会员制来观看录播课程和进行相应的测试

  • 参与重写官网平台的实现,解决 MVC 架构在业务复杂后前端代码混合问题导致混乱不便于维护,基于 Laravel5.7 重写 Api 接口,使用 Vue 重写前端,项目改造完后开发效率提升40%
  • 独立开发基于微信公众号的趣味测试系统,负责后端的编码使用 Laravel5.7 框架来实现,使用 MySQL、Redis 来作为 存储服务,系统上线后最高峰同时承受3万人在线测试
  • 使用Node.js开发文件迁移工具,将资源从服务器主机迁移到七牛云CDN。通过此工具,减轻服务器带宽和IO压力,提高资源访问效率。

项目经历

游戏服务器调度网关(贝尔编程)

项目背景:解决游戏服务无法在高峰和低峰场景下最大化利用服务器资源,满足突发流量需求,需要一个游戏网关服务来接管游戏服务器的启动和回收

  • 负责技术选型和实现,针对游戏服务器动态弹性、高可用、轻运维需求,采用阿里云ECI管理游戏容器
  • 使用 Golang 作为开发语言,方便调用K8S相关的API对游戏容器进行调度
  • 使用 GIN 框架提供HTTP接口服务,处理客户端对游戏服务器的申请和回收等操作,通过MySQL来记录游戏服务器状态元数据
  • 开启多个 goroutine 负责不同的流程处理来对游戏服务进行治理
  • 上线后,在不降低用户体验的情况下,游戏服务器成本降低40-50%
  • 应对周末高峰流量,平滑弹性扩容,无需人工干预


版本发布系统(贝尔科教)

背景:为了在K8S集群中更高效交付和管理应用,且需要拥有快速构建多套环境的能力,让不同需求的人员创建一个属于自己的线上环境来进行工作,基于容器的版本系统就诞生了

  • 搭建了基于AWS EKS的底层容器服务基础架构,使用 Golang、MySql、helmfile、shell 等技术栈开发了应用发布、环境模板、伸缩管理等核心功能模块,并通过GitHub Actions实现CI/CD
  • 针对所有应用,我负责统一调整配置信息,规范化应用持久化数据,确保不同应用无缝兼容多环境部署。
  • 系统上线后,成功解决了环境数量不足、环境构建周期长、资源浪费等问题,实现了应用快速发布和一站式管理。
  • 支持将应用轻松发布至AWS、阿里云和本地Kubernetes集群,大幅提升了多云和混合部署的灵活性。

IM消息服务(响车车科技有限公司)

背景:为满足业务对大规模实时消息推送的需求,设计开发独立的消息中间件系统,保证现有业务不受影响。

  • 参与架构选型和流程设计并输出技术方案,采用模块化设计,分离连接服务、业务逻辑和消息处理模块。
  • 最终落地的技术栈是 GO、gRPC、MySQL、Redis、Kafka
  • 负责开发连接服务模块,使用 Goroutines+Channels 特性来维护海量客户端连接和消息收发处理
  • 参与搭建业务逻辑模块,使用Gin、gRPC、MySQL、Redis等技术栈来实现
  • 负责开发消息处理模块,负责消费 Kafka 消息队列中的实时数据,并通过自定义策略对消息进行批量处理下发
  • 系统上线后,支撑了客户端在线群聊和管理后台端下发的所有消息,在32核32G服务器资源下压测,可以支持 100 万个 客户端连接,每秒千万级的消息推送

教育经历

大专

广东省高新技术技工学校 计算机网络技术

2014/09 - 2019/06