职位名称:全栈开发工程师(硬件交互方向)
    
岗位职责 
   系统架构与开发:负责前后端系统的设计、开发与维护,实现软件与硬件设备(如键盘、鼠标、游戏外设等)的高效交互与稳定通信。 
   
前端开发:基于React构建高性能、响应式的用户界面,使用Redux进行状态管理,确保UI组件的高复用性与流畅体验。 
   
后端服务开发:使用Node.js/Java/C++构建高并发、低延迟的后端服务,处理USB通信协议(如HID、CDC等),实现设备状态监控、数据解析与指令下发。 
   
通信模块优化:编写高可靠性的USB通信模块,保障数据传输的实时性、稳定性与安全性,支持热插拔、多设备并发等复杂场景。 
   
跨团队协作:与硬件工程师、固件开发团队及测试团队紧密配合,完成产品功能迭代、性能优化及问题定位。 
   
 
   用户体验创新:参与用户界面与交互逻辑的改进,结合硬件特性(如RGB灯效、宏编程、按键映射)设计差异化功能,提升产品竞争力。 
   
技术预研:跟踪USB协议(如HID 1.11、USB4)、WebHID/WebUSB等前沿技术,探索软硬结合的交互创新(如云驱动配置、跨平台免驱通信)。 
   
任职要求  
必备技能:  
前端技术栈:  
精通React(Hooks、Context)、Redux/MobX,熟练使用MUI、Ant Design等组件库;  
扎实的HTML5/CSS3/JavaScript(ES6+)基础,熟悉响应式布局(Flex/Grid)、CSS-in-JS方案;  
具备跨浏览器兼容性(Chrome/Firefox/Safari/Edge)及性能优化(如代码分割、懒加载)经验。 
   
后端技术栈:  
熟练使用Node.js(Express/Koa/NestJS)或Java(Spring Boot)或C++(Qt/BOOST/ libusb)中的至少两种,理解事件循环、多线程、异步IO等机制;  
熟悉USB通信开发(如libusb、WinUSB、USBIP),能解析HID报告描述符、处理控制/中断/批量传输。 
   
硬件交互经验:  
有键盘、鼠标、游戏手柄等外设的USB协议开发经验(如自定义HID协议、固件升级、设备认证);  
理解USB描述符(设备/配置/接口/端点)、HID Usage Tables、驱动签名(WHQL)及Windows/Linux/macOS的权限模型。 
   加分项:  
有UI/UX设计经验(Figma/Sketch),能独立完成从原型到落地的界面设计;  
熟悉音视频编解码(FFmpeg/WebRTC)或低延迟通信(WebSocket/QUIC);  
贡献过开源硬件项目(如QMK、ZMK、OpenRGB)或参与过USB-IF认证流程;  
对机械键盘文化(如轴体、键帽、灯光生态)有深度兴趣,或发布过相关技术博客/视频。