Building, breaking, writing — repeat.
I learn by building, breaking things, and documenting every step.Every project, every failure, every fix becomes a note I write down.


Looking for Backend Engineer Opportunities
Java & Go · Distributed Systems · High Concurrency · Performance Optimization

ABOUT ME
Dylan Kwok
后端工程师
具备 Java/Go 双栈开发能力,6 年高并发架构开发经验,深耕直播、IM、IoT 业务,胜任高吞吐服务研发。擅长性能调优与问题攻坚,研读主流框架源码,兼顾技术实现与业务价值。
FEATURED

项目-IM限流-公网流量降低
本文档记录了IM公网流量优化项目,核心目标是在不影响用户体验的前提下降低直播间IM的公网流量成本。主要策略包括:消息下行限流方面,对点赞、弹幕、进场、免费礼物等非关键消息按直播间人数和用户身份进行差异化限流,主播及贵族用户不受限流影响;消息上行限流基于Redis Lua脚本实现滑动窗口机制并配合本地缓存降低Redis压力;消息体精简策略涵盖删除废弃字段、压缩字段名长度、延迟图片域名拼接至客户端、跳转数据改为接口获取等方式;统计数据采用增量推送仅下发变更字段;Gzip压缩将阈值从4K降至1K使流量降低约33%;客户端配合实现退后台断连IM及版本控制兼容。最终通过多维度组合优化实现了公网流量的大幅下降,同时有效保障了付费用户的核心体验。
MORE FEATURED
项目-IM如何保证消息不丢失
IM 消息可靠投递依靠请求、应答、通知三类报文交互。单次私聊完整收发需六个报文,依托超时重传、应答确认机制规避报文丢失问题。通过唯一消息 ID 实现消息去重,同时区分在线与离线消息处理逻辑,以此保障消息不丢失、不重复,群消息可参照私聊流程适配实现。
008-JVM堆外内存泄露排查
出海服务开启设备日志记录功能后,频繁触发 Full GC、非堆内存持续上涨、CPU 小幅升高。排查定位为 Fastjson 每次新建 SerializeConfig,造成频繁类加载、元空间占用持续增长,引发元空间阈值 Full GC。通过复用 SerializeConfig 对象修复问题,同时沉淀字节码类框架使用的性能规避经验。
LATEST WRITINGS
06-SDD-复杂功能:从功能分解到规范之上的规范
针对AI代理上下文窗口有限导致"失忆"问题,提供从限制任务数量到子代理委派再到Spec-of-Specs的渐进式升级策略。详解路线图拆解五步法,将无限业务复杂度收敛到有限上下文。
05-SDD-规范持久性模型:当需求变了,文档该怎么办?
探讨需求变更时规范文档的同步策略,提出三种持久化模型:Flow-Back回流式、Flow-Forward前推式、Living Spec活文档。提供选型框架,通过CI将规范一致性变为工程约束。
04-SDD-GitHub Spec Kit 当 AI 编码助手有了副驾驶
介绍GitHub开源的Spec Kit工具链,定位为AI编码助手的"教练与护栏"。阐述三大核心原则、四种项目类型、slash命令体系和扩展机制,是SDD方法论的完整工程实现。
03-SDD-工作流阶段:从想法到代码的系统化路径
详细拆解SDD四个阶段(Specify→Plan→Tasks→Implement)的产出标准与最佳实践。强调规范与计划分离、检查点机制和回溯迭代流程,让模糊想法逐步转化为可落地的代码。
02-SDD-SDD与其他方法论比较-深度对比
深度对比SDD与瀑布、敏捷、TDD、BDD、Vibe Coding六种方法论,指出各自解决不同问题。提出SDD+TDD+敏捷的组合方案,SDD是AI辅助时代人机协作的关键工程契约。