写点什么

SpaceX软件团队Reddit答网友问:应用级程序用C++编写,测试用Python

2020 年 6 月 19 日

SpaceX软件团队Reddit答网友问:应用级程序用C++编写,测试用Python

美国当地时间 5 月 30 日,由埃隆·马斯克创办的航天公司 SpaceX 执行的载人航天发射任务在肯尼迪航天中心圆满完成,猎鹰 9 号火箭成功将载人飞船“Dragon”以及参与两名宇航员送上了太空,至此,马斯克距离他的火星梦又进了一步。


近日,负责开发和部署 Dragon 软件的六名技术人员在 Reddit 举行了一场以“Dragon 有问必答”为主题的线上问答会,Reddit 用户可以就自己感兴趣的任何问题向技术人员提问,他们也会耐心地进行解答。参与问答的团队成员各有分工,有人负责技术管理,有人负责软件开发,有人负责网络安全问题,他们也就网友关心的如何能进入 SpaceX 公司工作给出了一些建议。


这六位技术人员分别是:


  • Jeff Dexter——负责运行飞行软件和网络安全;

  • Josh Sulkin —— Crew Dragon软件设计负责人

  • Wendy Shimata ——管理Dragon软件团队,并负责Dragon的容错和安全工作

  • John Dietrick —— 领导了Demo-2的软件开发工作

  • Sofian Hnaide——负责Demo-2上Crew Displays 软件工作

  • Matt Monson——曾在Dragon上工作现在负责Starlink软件


本科学历是最基本条件


在问答中,一位被猜测是高中生的 Reddit 用户问道:“如果我将来想去 SpaceX 从事软件工作,应该具备什么条件?”


SpaceX 负责飞行软件和网络安全的 Jeff Dexter 回答道:“获得计算机科学学位或类似学位”,他表示,对学历有要求是为了“确保你真正了解必备的技术常识”。


他解释说:“在 SpaceX 上表现出色的工程师对他们的代码、网络、Linux 和硬件等如何工作一丝不苟”。另外,SpaceX 许多公开的工程和软件岗位的基本要求都是学士学位及以上。


除了学历很重要以外,团队还提到通过参与一些项目或实习工作获得相应的工作经验也十分重要。Dexter 建议说:“通过在 SpaceX 里接触一些业余项目或实习获得现实世界中的构建事物和解决难题的经验,对以后进入 SpaceX 也很有帮助”。 例如,Demo-2 软件开发工作负责人 John Dietrick 在 Reddit 上说,“视频游戏开发与我们的工作之间有不少交集,这两个领域中,有很多类似的数学难题和以性能为中心的问题。”


学历很重要,但并不是全部。曾在 Dragon 任职,现在负责领导 Starlink 软件的 Matt Monson 表示,“团队中的成员拥有着不同的文化、教育背景,但没有多少人拥有航空背景,不同的观点可以帮助我们从不同的角度看待问题,并且通常可以帮助我们看到我们原本不会看到的解决方案。”


Monson 总结道:“我们欢迎的成员要具备两个基本条件:才能(潜力)和正确的态度(渴望自我完善,为团队服务而不是自私)。


Reddit 上热门评论


在此问答环节中,涉及了很多 SpaceX 的技术栈是什么、应用的编程语言是什么以及在飞行过程中如何执行错误检测和纠正等网友们关注的问题,以下是 Reddit 上热度较高的一些评论及技术团队的回答:



Crew Dragon 软件设计负责人 Josh 回答了网友们关心的开发 F9 和 Dragon 软件最常用的编程语言是什么?是 C 还是 C ++?



Josh 回答称:“所有应用程序级自主软件都是用 C ++编写的。尽管我们希望编程尽可能简单些,但通常,我们在使用面向对象的编程技术时会选择使用 C++。



针对 Dragon 上是否使用了开源库的问题,Josh 回答称:


我们确实使用了开源代码库,主要是标准C ++库,还有一些其他库。但是,我们仅使用极高质量的开源代码库,并且在解决实际问题时会选择开发自己的库,以便我们可以自己控制代码质量。


网友也对在飞行过程中如何执行错误检测和纠正这一问题比较感兴趣,而 Josh 给出的回答是:


我们在飞船上部署了多台冗余计算机,并对其输出进行投票,这样就可以处理计算机中由辐射引起的错误。通过使用多个不同的传感器来处理传感器中的错误。而数据传输中的错误则通过使用附加到有效负载的错误检测或错误纠正代码来处理。


在机器学习无处不在的当下,SpaceX 是否在其软件中使用了 AI 技术这一话题也成为网友的关注点,就此问题,Dietrick 给出的回答令人有些意想不到,他表示:“Daragon 未使用任何 AI。”不过,Josh 也补充道,Dragon 确实使用了一些计算机视觉来进行导航。



此外,网友也比较关心 SpaceX 的技术栈是什么?它们主要是开源还是内部框架?这一问题 Sofian 给出了回答,他称:“我们使用 C 和 C++来制作飞行软件,HTML、JavaScript 和 CSS 用于显示,python 用于测试。”


在被问到所使用的 Linux 发行版是什么时,Dietrick 表示,“我们不使用任何现成的发行版,我们有自己的发行版。”



在提及如何测试软件时,Dietrick 回答称:“我们会用我们能想到的所有方法进行测试。单元测试、基于容器技术的集成测试(你可以在自己的机器上运行这些测试,并进行完整的物理模拟),以及在真实飞行硬件上进行的完整的“HITL”测试(同样是在完整的模拟下进行)。将飞行软件与模拟器匹配起来是我们最强大的工具,尤其是在真实硬件上运行时。我们可以模拟整个任务,甚至许多详细的故障场景,这些只需把飞行器硬件放在实验室桌子上就能完成。



欲了解更多详细技术信息,请查阅:


https://www.reddit.com/r/spacex/comments/gxb7j1/we_are_the_spacex_software_team_ask_us_anything/


2020 年 6 月 19 日 13:543221

评论

发布
暂无评论
发现更多内容

架构师训练营—第十周作业

Geek_shu1988

在Spring data中使用r2dbc

程序那些事

WebFlux R2DBC 程序那些事 spring data spring-data-r2dbc

如果不想你被称做掉包侠,那么请有效地学习机器学习算法知识

计算机与AI

学习

架构师训练营第十周作业

月殇

极客大学架构师训练营

LeetCode题解:860. 柠檬水找零,模拟情境,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

架构师训练营第 1 期第 10 周作业

好吃不贵

极客大学架构师训练营

第六章作业

孤星

网上系统显示部分入注数据未回传不更新该怎么解决?

Geek_a6658e

维权 互联网应用技术方案

第六章总结

孤星

作业-第6周

arcyao

初学小白你不知道的C语言经典算法(附带答案)

ShenDu_Linux

c++ 程序员 算法 C语言 数据结构与算法

刘华:上云后,你的架构设计可以更飞

刘华Kenneth

云计算 架构设计 技术选型 云平台

复旦教授亲身编写,最新版《神经网络与深度学习》中文版开放下载

计算机与AI

神经网络 学习

架构师训练营第十周总结

月殇

Java-Mock简化单元测试

落日楼台H

Java 测试 单元测试 Mock Mock测试框架

食堂就餐卡系统设计

cc

《华为数据之道》读书笔记:第 5 章 面向“联接共享”的数据底座建设

方志

大数据 数据中台 数据仓库 数字化转型

架构师训练营第 6 周学习总结

菜青虫

极客大学架构师训练营

架构师训练营第 6 周课后练习

菜青虫

极客大学架构师训练营

在网上的AG账户登录异常说是涉嫌套利不给办理取出怎么办?

Geek_a6658e

专业出黑团队

架构师训练营—第十周学习总结

Geek_shu1988

试试,阿里P7的笔试题:多线程按序打印如何实现?

Java架构师迁哥

架构师训练营第十周总结

_

总结 极客大学架构师训练营

设备日志的用途

网络技术平台

日志 snmp

尾调用与尾递归

哈希说

算法

架构师训练营一期学习心得

cc

架构师训练营第 1 期 -- 第十周作业

发酵的死神

极客大学架构师训练营

阿里面试 问我字符串

java金融

Java 面试 string 字符串

大家都知道jmeter,但是它会让你的工作效率至少提升80%

996小迁

Java 编程 程序员 架构 面试

刘华:我最近听到最对味的话,就是“先Scale down再Scale out”

刘华Kenneth

DevOps 敏捷

架构师训练营第 1 期第 10 周学习总结

好吃不贵

极客大学架构师训练营

SpaceX软件团队Reddit答网友问:应用级程序用C++编写,测试用Python-InfoQ