快手中间件研发工程师/架构师(C++)
社招全职3年以上D11745地点:北京状态:招聘
任职要求
1、三年以上大规模高性能分布式系统开发和维护经验; 2、熟练掌握C++编程语言,掌握多线程编程的概念和技巧,熟悉Linux下网络编程,熟悉常用性能诊断工具; 3、熟悉常见网络框架、RPC框架原理与机制,包括但不限于boost asio、gRPC、brpc、Thrift等,对服务发现、负载均衡、熔断、限流等概念与实践有一定的了解; 4、拥抱新技术,有较强的文献和源码阅读能力; 5、优秀的代码习惯,良好的学习沟通能力和团队合作精神,较强的项目推动能力。
工作职责
快手服务治理团队是服务于整个快手公司的核心技术团队。负责整个快手的服务框架,注册中心,以及服务治理和稳定性建设等相关工作,支撑海量的微服务及其相关的治理工作。以技术创造业务价值为目标,致力于不断提供更好的服务架构解决方案,提升业务团队的研发效率和体验。加入我们,您将: 1、负责微服务全生命周期的产品能力,包括但不限于服务发现、路由调度、可用性保障、高性能 RPC 框架等方面的设计改进工作,以及相关的新功能的研发、性能优化、可用性改进等; 2、直面超大业务规模带来的业务挑战,解决大规模带来的业务稳定性挑战,包括可用性、伸缩性和易用性问题; 3、密切结合业界先进理论和实践,结合公司实际业务需求,探索更好的微服务解决方案及其在快手的落地实践,共同打造业界领先的微服务中间件产品体系; 4、提供微服务领域的架构演进,提供完整的同城双活,异地多活,以及单元化相关解决方案在微服务领域的落地。
包括英文材料
分布式系统+
https://www.distributedsystemscourse.com/
The home page of a free online class in distributed systems.
https://www.youtube.com/watch?v=7VbL89mKK3M&list=PLOE1GTZ5ouRPbpTnrZ3Wqjamfwn_Q5Y9A
C+++
https://www.learncpp.com/
LearnCpp.com is a free website devoted to teaching you how to program in modern C++.
https://www.youtube.com/watch?v=ZzaPdXTrSb8
多线程+
https://liaoxuefeng.com/books/java/threading/basic/index.html
和单线程相比,多线程编程的特点在于:多线程经常需要读写共享数据,并且需要同步。
https://www.youtube.com/watch?v=_uQgGS_VIXM&list=PLsc-VaxfZl4do3Etp_xQ0aQBoC-x5BIgJ
https://www.youtube.com/watch?v=IEEhzQoKtQU
https://www.youtube.com/watch?v=mTGdtC9f4EU&list=PLL8woMHwr36EDxjUoCzboZjedsnhLP1j4
https://www.youtube.com/watch?v=TPVH_coGAQs&list=PLk6CEY9XxSIAeK-EAh3hB4fgNvYkYmghp
https://www.youtube.com/watch?v=xPqnoB2hjjA
This video is an introduction to multithreading in modern C++.
https://www.youtube.com/watch?v=YKBwKy5PrpQ
Rust threading is easy to implement and improves the efficiency of your applications on multi-core systems!
Linux+
https://ryanstutorials.net/linuxtutorial/
Ok, so you want to learn how to use the Bash command line interface (terminal) on Unix/Linux.
https://ubuntu.com/tutorials/command-line-for-beginners
The Linux command line is a text interface to your computer.
https://www.youtube.com/watch?v=6WatcfENsOU
In this Linux crash course, you will learn the fundamental skills and tools you need to become a proficient Linux system administrator.
https://www.youtube.com/watch?v=v392lEyM29A
Never fear the command line again, make it fear you.
https://www.youtube.com/watch?v=ZtqBQ68cfJc
网络编程+
https://www.youtube.com/watch?v=2HrYIl6GpYg
I will make a simple HTTP web server with the C Programming Language.
https://www.youtube.com/watch?v=8z6okCgdREo
This tutorial is for Gophers who have written a command line or an API application, but have little to no experience in lower-level concepts like reading and writing to sockets, working with channels, and managing multiple goroutines.
https://www.youtube.com/watch?v=bdIiTxtMaKA&list=PL9IEJIKnBJjH_zM5LnovnoaKlXML5qh17
https://www.youtube.com/watch?v=bzja9fQWzdA
Implement the ubiquitous TCP protocol that underlies much of the traffic on the internet!
[英文] 📺Network Programming with Python Course (build a port scanner, mailing client, chat room, DDOS)
https://www.youtube.com/watch?v=FGdiSJakIS4
Learn network programming in Python by building four projects. You will learn to build a mailing client, a DDOS script, a port scanner, and a TCP Chat Room.
https://www.youtube.com/watch?v=gntyAFoZp-E
https://www.youtube.com/watch?v=JiuouCJQzSQ
Explore the fundamentals of networking in Rust by building a simple TCP server.
https://www.youtube.com/watch?v=JRTLSxGf_6w
https://www.youtube.com/watch?v=sFizpxHkIlI
In this video we'll cover SOCKET PROGRAMMING in JAVA.
https://www.youtube.com/watch?v=sXW_sNGvqcU
RPC+
https://javaguide.cn/distributed-system/rpc/rpc-intro.html
为什么要 RPC ? 因为,两个不同的服务器上的服务提供的方法不在一个内存空间,所以,需要通过网络编程才能传递方法调用所需要的参数。并且,方法调用的结果也需要通过网络编程来接收。
https://www.youtube.com/watch?v=S2osKiqQG9s
This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge.
gRPC+
[英文] Introduction to gRPC
https://grpc.io/docs/what-is-grpc/introduction/
An introduction to gRPC and protocol buffers.
相关职位
社招2年以上I6492
1、负责公司超大规模基础架构组件自动化运维平台的设计与开发,打造业界领先的运维基础设施平台; 2、推动存储组件的云原生化在公司内部落地,构建云原生运维生态,打造业界领先的存储云原生 PaaS 平台; 3、覆盖基础组件从研发活动到线上运维的全流程工具体系的建设,支撑业务的高速迭代与稳定性建设; 4、引导 SRE 基础运维工作朝着自动化、平台化、智能化方向演进,提升基础架构各组件体系整体运维管理效率。
更新于 2022-05-27
社招2年以上C3801
1、负责公司超大规模基础架构组件自动化运维平台的设计与开发,打造业界领先的运维基础设施平台; 2、推动存储组件的云原生化在公司内部落地,构建云原生运维生态,打造业界领先的存储云原生 PaaS 平台; 3、覆盖基础组件从研发活动到线上运维的全流程工具体系的建设,支撑业务的高速迭代与稳定性建设; 4、引导 SRE 基础运维工作朝着自动化、平台化、智能化方向演进,提升基础架构各组件体系整体运维管理效率。
更新于 2022-05-27
社招3年以上A153317
1、牵引国际电商的成本优化工作,通过技术手段提供系统性解决方案,输出最佳实践; 2、搭建FinOps体系,参与相应平台建设(如容量平台,成本可视化平台等),负责系统设计和核心代码开发; 3、支持各类大促活动,提高资源预估准确性,为大促稳定性保驾护航。
更新于 2024-11-06