50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 2020-06-19
  • 本文字数:2052 字

    阅读完需:约 7 分钟

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-06-19 13:544859

评论

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

今年LED显示屏市场趋势

Dylan

商业 广告 娱乐 数字化 LED显示屏

当GaussDB遇上了毕昇编译器

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

【零售电商系列】走进亚马逊之自建仓储&物流

小诚信驿站

6 月 优质更文活动

对线面试官-线程池(四)

派大星

Java 面试题

抓包分析RST信号

蓝胖子的编程梦

TCP Wireshark tcpdump RST 报文 Connection reset

KW 新闻 | KaiwuDB 亮相数字中国并发布离散制造场景解决方案

KaiwuDB

数字中国 KaiwuDB 离散制造业解决方案

Web网页端IM产品RainbowChat-Web的v5.0版已发布

JackJiang

网络编程 即时通讯 IM

电路板电镀中4种特殊的电镀方法

华秋PCB

经验 电路板 焊接 PCB板 电镀

参与赢大奖!阿里云机器学习平台PAI助力开发者激发AIGC潜能

阿里云大数据AI技术

阿里云 AIGC

如何理解 REST 和 RPC 之间的差异?

Apifox

程序员 RPC Rest 协议 RPC调用

DevEco创建项目时的错误解决

路北路陈

6 月 优质更文活动

3 个技巧,让你像技术专家一样解决编码问题

LigaAI

程序人生 技术专家 技术人成长 问题分析及解决 企业号 6 月 PK 榜

科兴未来|2023”福地句才”海外人才创业大赛

科兴未来News

正式启动|2023中国高校计算机大赛—大数据挑战赛火热报名中!

云智慧AIOps社区

大数据 AI 算法 运维 智能运维

Win服务器图床配置

路北路陈

6 月 优质更文活动

“数字创新产品课程”7月29-30日 · CSPO认证周末班【提前报名特惠】CST导师亲授

ShineScrum

揭秘Spring依赖注入和SpEL表达式

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

Sentinel熔断降级的规则及实现原理

互联网架构师小马

Java sentinel 熔断降级

TCMalloc 技术细节详解

KaiwuDB

KaiwuDB TCMalloc

在百度生态用达人营销赋能品牌生意增长 | 度星选白皮书

说山水

“敏捷教练进阶课程”7月22-23日 ·A-CSM认证在线周末班【提前报名特惠】CST导师亲授

ShineScrum

敏捷教练

精耕丝路,智胜全球 | 新华三助力中企跑好“出海”赛道

新消费日报

MySQL 8.0.29 instant DDL 数据腐化问题分析

GreatSQL

greatsql greatsql社区

智慧生活垃圾焚烧发电厂Web3D可视化平台

2D3D前端可视化开发

物联网 数字孪生 三维可视化 工业组态 智慧垃圾焚烧发电厂

NFTScan | 06.05~06.11 NFT 市场热点汇总

NFT Research

NFT 热点

Java代码性能测试实战之ContiPerf

javalover123

单元测试 性能测试 压测 JUnit Java'

从分布式到微服务解密“架构”原理与实战笔记

小小怪下士

Java 程序员 分布式 微服务

Navicat Premium将关系和实体添加到概念模型的方法

背包客

macos MySQL 数据库 Mac 软件 Navicat Premium

源生创新 云享未来|GOTC全球开源技术峰会华为云云原生精彩时刻

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

AIGC时代,设计软件应该做什么?丨AIGC X 企业服务

ToB行业头条

教培行业的“智能GPT私教”?WorkPlusAI助理帮助教培机构实现十倍人效!

BeeWorks

SpaceX软件团队Reddit答网友问:应用级程序用C++编写,测试用Python_开源_李冬梅_InfoQ精选文章