
介于SpaceX这样的公司太伟大,我也太欣赏,而且这答案凉着没人答,我就忍不住在QUORA搬运一把内容,凑合看,做个搬运工,自己也学习下。
第一个貌似是个SDET的自述:
What sort of problems do you work on?I'm a "software engineer in test" for the flight software team, which means that I'm responsible for ensuring the quality of the code that runs onboard our rockets and spacecraft. There are a lot of aspects to that, but generally I'd describe the problem I'm working on as: "building a comprehensive, reliable, automatically executed and automatically validated testing process for the code that makes our vehicles fly."
What's a day like?
My days typically consist of: running tests on our high-fidelity hardware-in-the-loop testbeds (they're really cool), learning about the new features that we're implementing and thinking about ways to test them, development work on our test automation suite or on test cases themselves, and working directly with various engineers (from a surprisingly wide range of disciplines) to test the subsystems they're responsible for. I also do a lot of direct vehicle support: performing the final software tests on the vehicle prior to launch, working in a clean room environment to configure the vehicle's computers for flight, etc.
Do you need a PhD to work [at SpaceX]?
Absolutely not. You just need drive, intelligence, engineering chops, and a positive attitude.
What languages [and] environments do you work in?
Examples include: Python, C++, Go, vim, bash, GNU screen (my favorite), LabView, and a lot of internally-grown technologies.
How do you like your job?
I love it. The people I work with are amazingly dedicated, friendly, and intelligent. We never have to wonder about whether the work we do is important. We get to go out to dinner with our CEO and pick his brain about whatever we want. We have good food and great coffee, and we're located in the best city in the universe. We have fun doing serious stuff.
貌似经常和马斯克吃喝谈笑风生。
下面是比较general,detailed一点的内容,从Quora上链接到reddit上:瞄了一眼,我先翻译几个大体的内容,想看细节往下追问。链接是这里,
他们貌似有几个软件团队,
第一个是所谓上位机软件,就是跑在火箭以及飞船上的code。
第二个是开发内部网络以及软件的团队,流程神马的。
第三个是地面软件研发用Labview多一些,主要是任务控制以及发射控制。
第四个是航空电子设备测试团队,他们就是写code测试一些硬件。
We are software engineers at SpaceX. We work on:
We work on everything from large-scale web applications to tiny embedded computing platforms. We build tech stacks on C#/MVC4/EF/MSSQL via REST to Javascript/Knockout/Handlebars/LESS, C++/Embedded Linux, Python, LabVIEW… which all together enables us to build, launch, and monitor stuff that goes to space.
Some videos of our recent work:
http://youtu.be/B4PEXLODw9c
http://youtu.be/tRTYh71D9P0
http://youtu.be/dQw4w9WgXcQ
Proof:
Imgur
Edit: Poor Dan, everyone knows he was photo-shopped. Don't close your eyes next time!
Edit 2 : We've been getting a lot of questions about how C#/MVC/etc have to do with rockets. They don't. At SpaceX we have 4 separate software teams:
The Flight Software team is about 35 people. We write all the code for Falcon 9, Grasshopper, and Dragon applications; and do the core platform work, also on those vehicles; we also write simulation software; test the flight code; write the communications and analysis software, deployed in our ground stations. We also work in Mission Control to support active missions.
The Enterprise Information Systems team builds the internal software systems that makes spacex run. We wear many hats, but the flagship product we develop and release is an internal web application that nearly every person in the company uses. This includes the people that are creating purchase orders and filling our part inventory, engineers creating designs and work orders with those parts, technicians on the floor clocking in and seeing what today's work will be per those designs...and literally everything in between. There are commercially available products that do this but ours kicks major ass! SpaceX is transforming from a research and engineering company into a manufacturing one - which is critical to our success - and our team is on the forefront of making that happen. We leverage C#/MVC4/EF/SQL; Javascript/Knockout/Handlebars/LESS/etc and a super sexy REST API.
The Ground Software team is about 9 people. We primarily code in LabVIEW. We develop the GUIs used in Mission and Launch control, for engineers and operators to monitor vehicle telemetry and command the rocket, spacecraft, and pad support equipment. We are pushing high bandwidth data around a highly distributed system and implementing complex user interfaces with strict requirements to ensure operators can control and evaluate spacecraft in a timely manner.
The Avionics Test team works with the avionics hardware designers to write software for testing. We catch problems with the hardware early; when it's time for integration and testing with flight software it better be a working unit. The main objective is to write very comprehensive and robust software to be able to automate finding issues with the hardware at high volume. The software usually runs during mechanical environmental tests.
Edit 3: Yes, we are doing a ton of hiring for these software positions that we have been talking about today. Interns and New Grads too!
Edit 4: Thank you so much everyone! This is ending but most of the group will be back at 2:00pmPST to answer more questions.
Edit 5: ...and we're back! Engineers from each of our engineering teams are present. Let us catch up a bit and start swering again (probably be about 5 minutes).
For all open software related positions, please go to Careers | SpaceX
Edit 6: Thank you so much Reddit! This was a ton of fun. To all those asking about internships and employment, our suggestion is to apply online. Your resume will definitely get read. To all the students out there, GL with your midterms coming up and stick at it. Try and work on some side projects and get as much practical experience coding as possible before graduating. Happy Friday everyone!
http://tinyurl.com/cf93j9w
这个是关于挑战的:
Their current task is to write real time code that supports reusable rockets. The control system has to stabilize the spent 1st stage in 3 axes, controlling its attitude and performing course correction burn(s), letting it fall tail first and then re-igniting to kill the remaining Z axis velocity while maneuvering X, Y over the designated landing pad eventually killing Z axis velocity to near zero. Software has to accommodate variable fuel loads, possible engine out scenario capability and allow for wind, etc. variables all while managing a finite fuel supply. Very doable but not trivial.
好棒,好想去这样的公司!!!!
