基本信息
快手平台研发部编译器开发、及相关工具链岗位内推啦!
首先说下相关福利:
- 租房距离公司 3km 内有 2k 房补
- 包三餐、下午茶
地点:北京、深圳
找我内推
- 加 vx 了解更多细节: $(echo 'WW9vb29vb29vb29vb29vb291bXUK' | base64 -d),注明来意
- 或者你想粗暴点直接发简历至公司邮箱: $(echo 'Y2hlbnpoaXdlaTAzQGt1YWlzaG91LmNvbQo=' | base64 -d)
利益相关: SysLab 员工
个人感受
其实岗位可以分成两个大类,一个是新语言研发,另一个是有关 C++ 程序的工具链(如构建、调试、优化)。如果你以前没有相关知识也没有关系,可以给予时间学习。只要你热爱新技术、热爱学习,那你会在 SysLab 待得很开心。
- 在进行新语言研发你会接触到多种不同的语言,学习他们的编译器,了解设计背后的思想,不再浮于表面。
- 因为要涉及到调试,可能你会接触 DWARF 格式、eBPF 等辅助调试的工具。如果你有更好的点子也可以提出来、通过评审,然后就可以放在下个 OKR 里做你想做的事情。
- 因为是基于 clang/llvm 开发,所以如果发现了 clang/llvm 的 bug 也可以尝试修复。这也是团队所推崇的,希望能在社区里有一定的影响力。
- 因为快手 C++ codebase 是 monorepo 架构,时时刻刻都存在着编译、链接。在这个过程中为了解决各种编译、链接问题你会知道更多 clang driver 选项、了解汇编器、链接器的实现、了解相关 binutils 工具的实现。工欲善其事必先利其器,极好。
- 想锻炼一下自己解决问题的能力(包括但不限于编译器)?想提升一下对 Linux 的理解?有大量的 case 任君选择。群内也会不定期的针对某一类问题进行讨论,又涨知识了。
以下是官方招聘说明
语言设计及其编译器研发
基础架构中心 SysLab 正在寻找志同道合的你,一起设计并研发一门受欢迎的通用编程语言。
- 负责语言设计和编译器研发工作,承担具有挑战的一些创新项目;
- 设计面向未来的语言和编译工具,加速海量分布式服务 /AI 服务的研发效率和质量;
- 研发高性能工具链,提升研发效率和运行性能,节省人力和资源成本;
- 使用新语言研发高质量标准库。
需要你:
- 熟练掌握 C++/Go 语言,具有高质量工程能力;
- 具备深厚的计算机底层知识;
- 具备良好的英文写作能力;
- 勇于挑战高难度工作,具备良好产品 Sense,高效的学习能力,过人的恒心和自驱力;
- 具备语言设计和编译研发经验更佳;
- 除 C++/Go 之外,了解 Rust/Java/Swift 更佳;
- 了解 LLVM/Clang 更佳;
C++ 程序分析
负责快手 C++ 核心程序分析,包括程序风格 /规范检查、程序静态分析、动态分析。能够通过研发程序分析工具提升研发效率,提升代码质量,减少 Bug,提升稳定性。
需要你:
- 熟悉 Linux 开发环境,熟练使用 C/C++,有高性能计算、系统软件或者嵌入式的开发经验;
- 熟悉业界 C++ 程序分析技术并对底层原理有深入的认知;
- 具备良好的产品 Sense,对工具易用性方面有较深见解,具备较强的 Owner 意识和良好的服务意识,以及全局观;
- 了解 LLVM/Clang 以及相关工具集更佳;
- 熟悉编译器实现原理,了解 clang-format 、clang-tidy 、clang-analyzer 等工具的使用、原理更佳。
C++ AI 组件维护、优化
负责快手 C++ AI 组件的维护、优化,了解硬件那就更好了。
需要你:
- 熟悉 Linux 开发环境,熟练使用 C/C++,有高性能计算、系统软件或者嵌入式的开发经验;
- 熟悉 GPU 底层原理、CUDA 库;
- 熟悉 TensorRT 、TensorFlow 更佳;
- 熟悉业界 AI 组件,如 MKL 、HNSW 、FAISS 、Annoy 、Scann 更佳;
- 具备良好的产品 Sense,对工具易用性方面有较深见解,具备较强的 Owner 意识和良好的服务意识,以及全局观;
- 了解 LLVM/Clang 以及相关工具集更佳;
- 有 AI 应用研发或者优化经验更佳。
编译构建开发工程师
快手高速发展的背后离不开广大研发线工程师的辛勤 Coding 。构建工具团队负责打造服务整个快手研发线的多语言构建系统,在提升工程师研发效率的目标上追求极致。需要解决的问题包括并不限于:提升构建速度,高效依赖管理等。
需要你:
- 计算机或相关专业本科及以上学历,两年以上 C/C++服务端系统开发经验;
- 了解 Google 、Facebook 以及国内大厂在编译构建领域的解决方案及背后逻辑;
- 了解 Bazel 、Buck 、Cmake 、Git 、Svn 等开源软件的原理,有实际的较大规模使用经验;
- 熟悉 Linux 开发环境, 熟练使用 C/C++, 有高性能计算,系统软件或者嵌入式的开发经验;
- 掌握基本的 Shell 和 Python ;
- 有构建系统或 IDE 开发经验优先。
性能优化
主要是负责优化快手 C++ 核心服务优化,比如推荐系统、广告系统。利用编译器优化、链接优化技术降低延时,降低 CPU 使用率,降低内存使用,降低机器、带宽成本。
需要你:
- 熟悉 Linux 开发环境,熟练使用 C/C++,有高性能计算、系统软件或者嵌入式的开发经验;
- 熟悉业界 C++ 优化技术并对底层原理有深入的认知;
- 具备良好的产品 Sense,对工具易用性方面有较深见解,具备较强的 Owner 意识和良好的服务意识,以及全局观;
- 了解 LLVM/Clang 以及相关工具集更佳;
- 熟悉编译器实现原理,了解 PGO 、LTO 、BOLT/Propeller 等优化技术更佳;
- 有国内大厂优化经验更佳。
C++ 工具链研发工程师
- 负责打造整个 C++ 工具链建设,建设高效、高性能的 C++ 工具链;
- 提升快手上千 C++ 工程师的研发效率,以及线上 C++ 海量服务的运行效率;
- 参与构建、调试、优化、编译增强、Lint 、C++ 组件等子方向的建设。
需要你:
- 熟悉 Linux 开发环境,熟练使用 C/C++/Python,有高性能计算、系统软件或者嵌入式的开发经验;
- 熟悉业界 C++ 工具链技术并对底层原理有深入的认知;
- 具备良好的产品 Sense,对工具易用性方面有较深见解,具备较强的 Owner 意识和良好的服务意识,以及全局观;
- 了解 LLVM/Clang 以及相关工具集更佳;
- 有工具链相关背景更佳;
- 有 Google 、Facebook 以及国内大厂在工具链方面研发经验更佳。