reddit_Reddit如何大规模构建功能:采访其工程副总裁

reddit

by Iris Nevins

通过艾里斯·内文斯

Reddit如何大规模构建功能:采访其工程副总裁 (How Reddit builds features at scale: an interview with its VP of Engineering)

Reddit’s VP of Engineering, Nick Caldwell, recently sat down with the Breaking Into Startups Crew to talk about leadership, company culture, machine learning, time management, and more.

Reddit的工程副总裁Nick Caldwell最近与Breaking Into Startups Crew坐了下来,谈论领导力,公司文化,机器学习,时间管理等。

For those who don’t know how awesome Reddit is, it’s an online forum with 1.1 million active communities. These communities consist of discussion boards on just about every topic imaginable from “old ladies baking pies” and “animals being jerks” to “everything science” and “fashion”.

对于那些不知道Reddit多么出色的人来说,这是一个拥有110万活跃社区的在线论坛。 这些社区包括几乎每个主题都可以讨论的讨论板,从“老太太烤饼 ”,“ 动物成为混蛋 ”到“ 一切科学 ”和“ 时尚 ”。

Reddit is the 4th most popular website in the United States and the 7th most popular website in the world. Most notably, Reddit has users in the hundreds of millions which means that its software problems are pretty unique.

Reddit是美国第4最受欢迎的网站,也是世界第7最受欢迎的网站。 最值得注意的是,Reddit拥有数亿用户,这意味着其软件问题非常独特。

For example, Reddit recently attempted to “better communicate the scale of Reddit” to their users by building a system that shows the number of views a post received rather than just the upvotes.

例如,Reddit最近尝试通过构建一个系统来显示用户收到的帖子的数量,而不只是显示投票,从而更好地向其用户传达Reddit的规模。

Some posts receive views in the millions, which means accurately counting views is really tricky. Reddit has to not only maintain an exact count in real time, but also keep track of whether or not a specific user has visited the post before.

有些帖子获得数以百万计的视图,这意味着准确地计数视图确实很棘手。 Reddit不仅必须实时维护准确的计数,还必须跟踪特定用户之前是否曾访问过该帖子。

For posts with views in the millions it would be very taxing on memory and CPU to store millions of user IDs in a set, then check this set every time there’s a new view. Reddit engineers were able to determine that a HyperLogLog (HLL)-based counting approach would require 0.15% of the memory that storing millions of user IDs would require.

对于具有数以百万计的视图的帖子,要在一个集合中存储数百万个用户ID,然后每次有新视图时都检查此集合,将占用大量的内存和CPU资源。 Reddit工程师能够确定基于HyperLogLog (HLL)的计数方法将需要存储数百万个用户ID所需的内存的0.15%。

These are the interesting types of problems that Reddit engineers face as the business and its platform continues to grow.

随着业务及其平台的不断发展,Reddit工程师面临着这些有趣的问题。

Here’s another example of the role Reddit’s size plays in the work that its engineers do. Reddit recently created profile pages using a new frontend stack. They decided that during their beta period users would be able to opt into the new profile experience. This meant figuring out how to route requests across different stacks, allowing some users to be routed to the original profile page and others to be routed to the new profile page.

这是Reddit的规模在其工程师所做的工作中扮演的角色的另一个示例。 Reddit最近使用新的前端堆栈创建了配置文件页面。 他们决定在测试期间用户可以选择使用新的个人资料体验。 这意味着要弄清楚如何跨不同堆栈路由请求,从而允许将某些用户路由到原始配置文件页面,而将其他用户路由到新的配置文件页面。

Reddit’s engineers discovered that using custom VCL in Fastly allowed them to make this happen. As of August 2017 they were able to “dynamically route 75,000 profiles of users” during the beta (learn more about Reddit’s new front-end stack here).

Reddit的工程师发现, 在Fastly中使用自定义VCL可以使他们实现这一目标。 截至2017年8月,他们能够在Beta版中“动态路由75,000个用户个人资料” ( 在此处了解有关Reddit的新前端堆栈的更多信息 )。

认识Nick,开发人员转为工程副总裁 (Meet Nick, developer turned VP of Engineering)

Nick Caldwell manages one hundred engineers who solve complex problems like these every day. So how did Nick become VP of Engineering at Reddit? His story starts in childhood.

尼克·考德威尔(Nick Caldwell)管理着一百名工程师,他们每天都解决类似这样的复杂问题。 那么,尼克是如何成为Reddit工程部副总裁的呢? 他的故事始于童年。

Nick’s parents, a public defender and a schoolteacher, exposed Nick to ideas, books, and computer technology, but most interestingly — the knowledge that there were more possibilities out there than what he could see in his immediate environment.

尼克的父母,一名公设辩护律师和一名学校老师,使尼克接触了各种思想,书籍和计算机技术,但最有趣的是-知道那里存在的可能性比他在周围环境中看到的更多。

When Nick developed an interest in computers, his dad got him a book called C++ In 12 Easy Lessons. But it took much more than that book to learn C++.

当尼克对计算机产生兴趣时,他的父亲给他买了一本书,名为《 C ++ in 12 Easy Lessons》。 但是学习C ++所花的时间远远超过那本书。

Nick had a strong interest in computers, a goal-oriented nature, and a desire to attend a well-resourced school. This led him to a magnet program for science and technology. After that he studied machine learning at MIT in the 90s, landing his first computer science job during his freshman year.

尼克对计算机有浓厚的兴趣,以目标为导向,并且渴望上一所资源丰富的学校。 这使他开始从事科学技术的研究。 之后,他在90年代在麻省理工学院学习了机器学习,并在大学一年级期间获得了他的第一份计算机科学工作。

Nick notes that for those of us in the early stages of being a software engineer, the most important thing is to pick an area we are passionate about (his machine learning specialty strongly contributed to his ability to find work).

Nick指出,对于我们中处于软件工程师早期阶段的那些人来说,最重要的是选择一个我们热衷的领域(他的机器学习专业对他找到工作的能力做出了巨大贡献)。

Once we have chosen a specialty we’ve got to “refine our craft”, and “spend a lot of time wrestling with complex coding challenges.”

一旦选择了专业,我们就必须“完善我们的技术”,并“花费大量时间来应对复杂的编码挑战。”

If we decide we want to take a management track the next step is to become an engineering manager, where one does “a little less day-to-day coding” in order to focus more on the “people” aspect of a team.

如果我们决定要走管理层的路,那么下一步就是成为一名工程经理,在这里,“每天的编码要少一些”,以便更多地关注团队的“人员”方面。

From there we can become a director, which means managing multiple engineering managers and coordinating resources. After that is VP of engineering which means managing multiple directors while focusing on business strategy and the direction of a company.

从那里我们可以成为主管,这意味着要管理多个工程经理并协调资源。 之后是工程副总裁,这意味着要管理多个董事,同时专注于业务战略和公司的方向。

Throughout the interview Nick mentions some of the specific challenges of managing engineers, such as deciding who is going to lead a certain project or deciding which potential projects best align with the mission of the company. He deals with things like “technical debt”, sudden periods of high traffic, and complex operations systems.

在整个采访中,尼克都提到了管理工程师所面临的一些具体挑战,例如决定由谁来领导某个项目,或者确定哪些潜在项目最符合公司的使命。 他处理诸如“技术债务”,交通流量突然增加以及复杂的操作系统等问题。

It took Nick 13 years to climb the leadership ladder and his self-discipline has played a large role. Nick eats one large meal a day because this gives him more time to do other things. He also prioritizes goal setting and even keeps a document that tracks all of his goals from the past decade or so.

尼克花了13年的时间才能爬上领导层,他的自律发挥了重要作用。 尼克每天吃一顿大餐,因为这使他有更多时间做其他事情。 他还优先设定目标,甚至保留一份文档,以追踪过去十年左右的所有目标。

Rising to Nick’s level of management means trading in time spent coding for an influence on business decisions, company culture, and hiring processes.

达到Nick的管理水平,意味着可以花时间进行编码,以影响业务决策,公司文化和招聘流程。

Nick talks about “snoos day”, a great addition to Reddit’s company culture. Two days per quarter engineers across the company are able to work on passion projects and sometimes they produce projects that positively impact the entire company. Managers and executives have the power to implement things like this. To set the tone. To shift the environment.

尼克谈到“ snoos日”,这是Reddit公司文化的重要补充。 每季度每季度两天的工程师能够从事激情项目,有时他们会产生对整个公司产生积极影响的项目 。 经理和高管有权执行此类操作。 设定音调。 改变环境。

I have often wondered whether or not I’ll take a management path. Would I rather develop my technical skills until I retire or become a leader who builds and mentors programmers into their greatness — a leader who positively impacts the direction of an entire company?

我经常想知道我是否会走管理道路。 我宁愿发展自己的技术技能,直到退休或成为领导者并培养程序员的才能,也就是对整个公司发展方向产生积极影响的领导者?

I’m not sure which path I will take but Nick makes leadership sound pretty meaningful and fulfilling.

我不确定我会走哪条路,但尼克让领导听起来很有意义和充实。

The Breaking Into Startups interview is jam-packed with way more than what I’ve covered here so you should definitely check out Nick’s interview, and when you’re done, let Breaking Into Startups know what you think.

Breaking Into Startups面试的内容比我在这里所介绍的要多得多,因此您一定要查看Nick的访谈,完成后,让Breaking Into Startups知道您的想法。

I’m Iris Nevins, a self-taught software engineer. If you like my article, please share it and send some claps my way. =)

我是自学成才的软件工程师Iris Nevins。 如果您喜欢我的文章,请分享并以我的方式发送拍手。 =)

You can follow my stories here. And feel free to email me.

你可以在这里关注我的故事。 并随时给我发电子邮件

翻译自: https://www.freecodecamp.org/news/how-reddit-builds-features-at-scale-an-interview-with-the-vp-of-engineering-f92b67974fd6/

reddit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值