我们如何使用Rust和低级别的编程来构建MetalBear

114 阅读8分钟

[

Trey Huffine

](medium.com/@treyhuffin…)

特雷-赫芬

关注

6月27日

-

6分钟阅读

[

拯救

](medium.com/m/signin?ac…)

我们如何使用Rust和低级别的编程来构建MetalBear

采访MetalBear的CEO和联合创始人Aviram Hassan

MetalBear的CEO和联合创始人Avriam的任务是让后端开发者的生活变得更好。他分享了他如何使用Rust构建他的创业公司,并编写尽可能接近金属运行的代码,让他们完全控制一个令人难以置信的开发者体验。

想让你的公司接受《Level Up Coding》的采访?请填写这个表格
你是一个正在寻找惊人工作的开发者吗?请访问Level Up工作平台

你的名字和角色是什么?

Aviram Hassan, CEO & Co-founder.我负责一切,但同时也不负责任何事情。每天醒来,我都会努力寻找我可以为我们公司做的最有价值的事情,无论是筹款、与用户交谈、开发功能、代码审查等。

你们公司是做什么的?是什么吸引了你的想法?

我们为后端工程师建立开发者工具。我一直想做能帮助人们并为他们提供价值的产品。从B2B网络和金融技术领域来,我通常不做人们 "喜欢 "的产品,但他们需要它们。制作人们喜爱的产品是最好的感觉,鉴于我的经验和背景,我相信为开发者建立工具将是一个很好的选择。

我们的第一个产品叫做mirrord,它可以让开发者在本地运行他们的服务,并具有远程环境的背景。

这解决了什么问题,工程师的反馈是什么?

两个问题 1.当环境发生变化时,一切都会中断(开发、暂存、prod等) 2.设置环境需要大量的时间。管理服务是你在本地无法做到的。但是,如果你尝试,它仍然不像staging或production那样。

你们使用什么技术栈,为什么选择这个栈?

我们使用Rust。我们选择它是因为我们必须使用低级语言来创建我们的解决方案(我们做一些低级的东西,如钩子),我们也希望有性能和安全。此外,Rust社区也很不错。

对你来说,典型的一天是什么样子的?

早上5:30-6:30 - 取决于亚当(我9个月大的孩子)起床,做早餐并喂他。
6:30-7:30 - 玩耍和准备日托
7:30-9:00 - 我试图每周锻炼(普拉提/功能)2-3次,所以这时通常会有锻炼。
上午9点 - 煮浓咖啡并开始工作,阅读电子邮件并清理我的收件箱。决定我一天的议程(我想做的事情)
上午9点-11点-工作,然后做午饭,吃饭。
11-6点 - 工作,然后和亚当玩耍,洗澡等。
晚上7点-11点-工作,有一些中断(亚当,食物,和我的妻子爱丽丝看一些东西)。

公司是如何开始的,你有什么见解?

我和我的联合创始人Eyal都亲身经历了如今开发微服务是多么令人讨厌的事情。作为目标受众,我们相信我们可以做出一个解决方案,让后端工程师的生活更轻松、更顺畅。

你最初是如何进入软件开发领域的?

我很早就开始了。我从两岁开始就和我妈妈一起玩电脑,她经常回来工作,然后我们会玩一整天(主要是Rayman,太空入侵者)。从那时起,我就与电脑结下了深厚的感情。

当我8岁的时候,我开始玩一个在线的小精灵游戏,叫Pokemon NetBattlepokemonnetbattle.fandom.com/wiki/Battle…那是一种基于聊天的游戏,有类似于口袋妖怪GBA游戏的小精灵战斗。我开始通过安装Babylon(字典)和逐字翻译来学习英语。该游戏支持服务器端脚本,我在RPG服务器中玩得很好。

有一天,我发现 "源代码 "被泄露了,我实际上不确定源代码是什么意思,但我从别人那里了解到,这意味着任何人都可以运行一个RPG服务器。我决定下载并运行我自己的服务器,然后检查内容,我意识到这是 "代码",我开始修补它,决定将整个游戏(基于聊天)翻译成希伯来语!我开始一个字一个字地翻译。我开始一个字一个字地翻译,因为我并不真正理解语法,但随着我的不断深入,我开始理解语法,后来增加了功能,修复了错误,增加了特性,等等。

在这段经历之后,我年轻时的每个时期都伴随着一个视频游戏+对其进行一些黑客攻击(口袋妖怪、MapleStory、CS1.6、TeamFortress 2、WoW)。

是什么让你的公司与众不同?

我们是开放的核心,意味着我们的大部分软件都是开源的。我们也是远程优先和分布式的,目前还没有真正的办公室。

你们正在解决的最有趣的问题是什么?

通过修补非常低级的东西来创造一个惊人的开发者体验。我们本可以像其他解决方案一样,使用更高级的API和更 "符合 "的方式来解决问题,但我们知道这并不像我们希望的那样顺畅和美好,所以我们深入挖掘,按照我们的设想来破解世界。

对一些程序员来说,如此深入底层可能是陌生的--如此接近操作系统和硬件来构建软件是什么感觉?你遇到过什么意外的挑战吗?

第一个问题是,低层次的东西非常缺乏,文档也很少或不正确。它从不像它说的那样工作。你真的必须深入了解问题和解决它们的方法。

不过我真的很喜欢它。有大量的调试工作。这可能非常有趣,但也可能非常令人厌烦。你没有真正的点或支持,可以推动你解决这些问题。

我们用一种对开发者友好的方式来破解整个堆栈。当所有东西都通过同一渠道流动时,会有很多冲突(类似于VPN的工作方式),这是我们想解决的问题。我们想用一种低层次的技术来创建一个逻辑流,使我们能够提供一个令人难以置信的体验。这种方法使我们能够建立一个独一无二的产品。

Rust是如何帮助你们解决这些问题的?

我有一段时间对它非常感兴趣,并在过去的公司中少有地使用它。它有很多的美感在里面。这是我第一次在一个真正的产品中全面使用它。像往常一样,使用什么东西的决定取决于业务需求。对于Rust来说,它很容易掌握和上手,这在以前的低级语言中是非常不常见的。Rust最大限度地提高了安全性,所以它提出了足够的保护措施,以保持你的生产力,而不会妨碍你。

一旦你的公司实现了它的愿景,世界会是什么样子?

开发人员将不会等待部署到暂存环境,但代码(或环境)却出现了问题,整个漫长的循环要重新开始。他们将不必花时间建立和维护自己的专用云环境。

你现在有什么技术或工具让你感到兴奋吗?

我们每晚都使用Rust,所以我们处于Rust开发的最前沿。我们使用的所有东西都是全新的,一旦有了功能,我们就会立即试用。

描述一下你的电脑硬件设置

MacBook Pro M1 2021,27英寸戴尔屏幕,罗技键盘+鼠标,5L Steelseries垫(我拥有它超过10年了!),索尼WH1000MX3。

描述一下你的电脑软件设置

VS Code, Firefox, Discord, Slack, Notion, Docker, Sublime

我们可以去哪里了解更多?

mirrord.devmetalbear.co查看我们。

Level Up Coding

Level Up是一个拥有300万月度开发者的社区(了解更多并关注我们! )。我们也与最好的初创企业和最具创新性的科技公司合作 🔥

  • **你是一名开发人员吗?**加入Level Up人才库,让最好的公司主动联系你 ➡️ 加入Talent Collective,成为一名开发者
  • **你是一家正在寻找开发人员的公司吗?**从Level Up社区聘请FAANG级别的工程师➡️ 聘请工程师
  • 你想接受采访,分享你的公司吗?填写我们的表格,接受采访并与Level Up的读者分享你的公司➡️ 面试申请表格

我们还为开发者提供免费的工具来发展他们的事业。 编码面试课程, 自动建立简历r, 投资组合API

TwitterLinkedIn上关注我们