分析字节跳动高级 Go 工程师的要求,知晓自己的努力方向
我是一只可爱的土拨鼠,专注于分享 Go 职场、招聘和求职,解 Gopher 之忧!欢迎关注我。
在字节跳动的官方网站可以搜索到 Go 相关招聘信息:https://job.bytedance.com/society/position?keywords=Go&category=&location=&project=&type=&job_hot_flag=¤t=1&limit=20,目前一共有 13 个岗位信息。简单做个分类:
普通 Go 研发工程师:7 个职位 高级 Go 研发工程师:6 个职位
地点主要在北京,部分深圳和上海。今天分析高级 Go 研发工程师的要求。
01
—
分析职位要求
选其中三个 JD 的职位要求:
1)Go研发高级工程师 — 基础架构(北京、深圳)
职位描述
1、承担核心基础组件的研发,包括但不限于 RPC框架、消息中间件、数据库代理、长链接系统; 2、协助业务对线上高并发的服务进行性能分析与优化; 3、参与Go生态建设,完善周边基础设施,如基础库维护、持续集成环境构建。
职位要求
1、熟悉Go语言开发,两年以上相关工作经验; 2、熟悉Linux下,网络、多进程和多线程编程; 3、擅长进行性能分析与优化,对GC原理有一定的了解; 4、有较强的Linux下 troubleshooting 能力。
具备以下条件之一者优先
1、了解Go runtime内部原理, 具有一定的runtime调试能力; 2、对Linux内核有一定的研究, 了解常见Linux内核知识; 3、具有高并发 或 大型Go项目研发经验。
土拨鼠分析
这是基础架构组的职位。这样的职位是最锻炼基础能力的,要求对 Go 语言和操作系统、网络等有足够的了解。在这样的职位干 2、3 年,基本你就是专家了。所以对性能分析、优化,对 GC、runtime 都会有要求。如果你对 Linux 环境编程很熟悉,同时 Go 底层的原理也较懂。可以投递,进入了相信会有很大的收获。
投递地址:https://job.bytedance.com/society/position/detail/6704450785284983044。
2)Golang高级研发工程师-客服中台引擎方向(北京)
职位描述
负责字节跳动客服中台化引擎设计研发工作,打造全球通用的服务侧技术引擎,赋能各条线业务快速低成本接入字节跳动客户服务体系。
职位要求
1、本科及以上学历,3年以上开发经验;2、精通Golang,熟悉Goroutine、net包、reflect包等的使用,理解实现原理;3、熟悉gin/thrift/gorm者优先;4、掌握MySQL使用,熟悉数据库性能优化和原理;5、熟悉主流Key-Value存储系统,能够进行系统性能调优;6、掌握Linux 操作系统;熟练使用一种脚本语言,Shell或Python;7、拥有高并发、分布式系统经验优先;8、有业务系统中台化经验者优先;9、有规则引擎、流程引擎的经验者优先。
土拨鼠分析
这个 JD 对一些包的使用提出了明确的要求,同时会 Gin、GORM 优先。这符合不少人的目标吧。但从要求上看,一般没有经历过大项目的人,可能相对机会会小一些。
通过这份 JD,你至少应该掌握 net 包、reflect 包的使用和原理。
简历投递地址:https://job.bytedance.com/society/position/detail/6861840560345663757。
3)资深Golang开发工程师/架构师 (北京)
职位描述
1、负责字节跳动垂直业务服务器端研发;2、支撑字节跳动垂直业务运营平台和活动日常的开发和维护;3、深入发掘和分析业务需求,撰写技术方案和系统设计;4、根据产品需求,进行系统设计和编码。
职位要求
1、计算机相关专业,基础扎实,编码能力强悍,对新技术有强烈的学习热情;2、熟练使用Go语言,具有良好的编程习惯;3、有良好的沟通能力和业务理解能力;4、追求挑战,对创业项目有热情。
土拨鼠分析
这个职位要求比较笼统,没有很具体的技能要求。毕竟是偏架构方面的,更多看面试时,聊架构方面的知识了。
投递地址:https://job.bytedance.com/society/position/detail/6704446726251481351。
02
—
总结
从这几个职位看,Go 高级开发工程师,需要对 Go 的底层实现有较深的理解,包括 GC、runtime、内存分配,性能分析工具。同时对于一些关键的标准库包,它们的原理需要掌握。
为了大家更好的学习 Go 底层知识,找到了一本相关的图书分享给大家。长按识别下方二维码关注,回复 book 获取。
推荐阅读
欢迎搜索或扫码关注我!