Avionics Test Engineering Internship
Space Exploration Technologies Corporation
Summary
Timeline
Started
Finished
Key Takeaways
- Wrote re-usable, unit-tested, and safety-focused test software components in Python for validating high-pressure transducers
- Assisted in the running of qualification tests against flight networking hardware
- Wrote software in Python to automate work-ticket generation in Jira
- Successfully debugged electrical faults in PCBsused in Avionics test systems
PCBs
Printed circuit boards
- Directly interfaced with the engineering team for COTStest equipment, driving firmware fixes and providing beta test feedback
COTS
Consumer off-the-shelf
Relevant Skills
Software & Environments
- Git
- Programming
- Python 2/3
- Bash Shell Scripting
- Microsoft SQL
- Methodologies
- Test Driven Development
- Agile
- Atlassian Suite
- Jira
- Bitbucket
- Confluence
- Automation Interfaces
- NI MAX/VISA
- Jira RESTful APIs
- Operating Systems
- Linux
- Ubuntu
- WSL
- Microsoft Windows
- Linux
Electrical
- Schematic & PCB Design
- Altium Designer
- Electrical Diagnostics
- Multimeters
Details
Working at SpaceX was a dream come true, even when it was only for a
three month internship. I've always loved space, including the
technology related to it, as I know many others also do. I grew as a
Trekkie, watching endless hours of rubbermaid tubs filled with VHS
recordings of the original series, The Next Generation, and Voyager. As
someone with a multi-disciplinary background, and with a special focus
on robotics and automation, test engineering was a very good fit!
During this internship, my primary goal was to create re-usable
components for high pressure test systems. This involved interfacing
with test rack equipment which could apply pressure to DUTs, and would then validate their response and performance to this
stimulus. While I'd written quite a bit of Python prior to this, the
standards for these components were (understandably!) much higher than
I'd encountered previously. This effectively meant that the internship
was a bit of a crash course in TDD, as
being able to verify that the tests would apply the correct stimulus,
and in the correct way, helped reduce the chances of damaging DUTs, or supporting test equipment. As part of this effort, I also made
significant improvements to the driver for the piece of test equipment
which controlled how pressure was applied. While doing so, I encountered
a fair number of discrepancies in the documentation and VISA
commands for this device. I ended up contacting the company and was put in
contact with their engineering department, where I then drove fixes to their
firmware and documentation, ultimately resulting in a fully functional test
setup. Since I ended up working for the company long-term, I know that these components were used, and likely still are, for
many pressure-related validation tests at the company and worked well!
DUTs
Devices under test
TDD
Test driven development
DUTs
Devices under test
VISA
Virtual instrument software architecture
There were also a couple of side projects I worked on while here. The
first was small Python app which automated the creation of Jira work
tickets for the Lifecycle Engineering Team. Previously, a member of that
team on a rotating schedule would manually create counterpart Jira
tickets associated to a proprietary tracking system created in-house. By
manually querying the SQL database for this proprietary app, and making
it run on a schedule, tickets were made and assigned to the appropriate
teams automatically, improving the response time to these tickets, and
removing the potential for errors during the previously manual
copy/pasting efforts. In my first week, I also debugged a custom circuit
board for a motor controller test system, finding the location of a dead
short, directing a tech to repair the failure, and then verified that
the board functioned correctly afterwards. The final small project I
worked on was manually running the shock tests in the qualification
efforts for a piece of spaceflight networking gear while its owner, a
friend, could not be present.