Finished avionics test engineering internship
Some checks failed
Build and Test - Staging / test (pull_request) Successful in 4m49s
Build and Test - Staging / deploy_staging (pull_request) Has been cancelled
Build and Test - Staging / build_and_push (pull_request) Has been cancelled

This commit is contained in:
2025-12-10 14:28:59 -08:00
parent e17d28914e
commit c320190a8d
4 changed files with 172 additions and 54 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

@@ -7,10 +7,13 @@ const keys: { [key: string]: string } = {
ADCP: "Acoustic doppler current profiler",
COTS: "Consumer off-the-shelf",
CTD: "Conductivity, temperature, and depth sensor",
DUTs: "Devices under test",
GUI: "Graphical user interface",
NUC: "A small and low-power computer made by Intel",
PCBs: "Printed circuit boards",
TDD: "Test driven development",
UPS: "Uninterruptible power supply",
VISA: "Virtual instrument software architecture",
};
const key: string | undefined = Astro.props.key;
@@ -21,6 +24,12 @@ if (key && keys.hasOwnProperty(key)) {
word = key;
definition = keys[key];
}
if (!word || !definition) {
throw new Error(
`Popover definition is missing! Inputs were\nkey: ${key}\nword: ${word}\ndefinition: ${definition}`,
);
}
---
<>

View File

@@ -8,7 +8,6 @@ export const siteLayout: navLink[] = [
path: "experience",
children: [
{
enabled: false,
navText: "SpaceX",
path: "spacex",
children: [
@@ -18,7 +17,6 @@ export const siteLayout: navLink[] = [
path: "hardware-test-engineer-i-ii",
},
{
enabled: false,
navText: "Avionics Test Engineering Internship",
path: "avionics-test-engineering-internship",
},

View File

@@ -1,16 +1,28 @@
---
import H2 from "@components/H2.astro";
import H3 from "@components/H3.astro";
import Li from "@components/Li.astro";
import Carousel from "@components/Media/CustomCarousel/CustomCarousel.astro";
import PageGroup from "@components/PageGroup.astro";
import Paragraph from "@components/Paragraph.astro";
import Paragraphs from "@components/Paragraphs.astro";
import PopoverWordDefinition from "@components/PopoverWordDefinition.astro";
import SkillMatrix from "@components/SkillMatrix/SkillMatrix.astro";
import Timeline from "@components/Timeline/Timeline.astro";
import Ul from "@components/Ul.astro";
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
import spring_2019_interns from "@assets/experience/spacex/avionics-test-engineering-internship/spring-2019-interns.jpg";
import swag from "@assets/experience/spacex/avionics-test-engineering-internship/swag.jpg";
import InlineLink from "@components/InlineLink.astro";
import type { carouselGroup } from "@interfaces/image-carousel.ts";
import type { categorySkills } from "@interfaces/skill-matrix.ts";
import type { timelineEntry } from "@interfaces/timeline.ts";
const headerCarouselGroup: carouselGroup = {
animation: "slide",
images: [spring_2019_interns],
images: [spring_2019_interns, swag],
};
const timeline: timelineEntry[] = [
@@ -23,58 +35,157 @@ const timeline: timelineEntry[] = [
date: "March 2019",
},
];
const categorizedSkills: categorySkills[] = [
{
category: "Software & Environments",
skills: [
{ item: "Git" },
{
item: "Programming Languages",
subItems: [
{ item: "Python 2/3" },
{ item: "Bash Shell Scripting" },
{ item: "Microsoft SQL" },
],
},
{
item: "Atlassian Suite",
subItems: [
{ item: "Jira" },
{ item: "Bitbucket" },
{ item: "Confluence" },
],
},
{
item: "Automation Interfaces",
subItems: [{ item: "NI MAX/VISA" }, { item: "Jira RESTful APIs" }],
},
{
item: "Operating Systems",
subItems: [
{
item: "Linux",
subItems: [{ item: "Ubuntu" }, { item: "WSL" }],
},
{ item: "Microsoft Windows" },
],
},
],
},
{
category: "Electrical",
skills: [
{
item: "Schematic & PCB Design",
subItems: [{ item: "Altium Designer" }],
},
{
item: "Electrical Diagnostics",
subItems: [{ item: "Multimeters" }],
},
],
},
];
---
<ExperienceLayout title="SpaceX - Avionics Test Engineering Internship">
<ExperienceLayout
title="Avionics Test Engineering Internship"
subTitles={["Space Exploration Technologies Corporation"]}
>
<Carousel carouselGroup={headerCarouselGroup} />
<h2 class="my-4 font-bold md:text-2xl">Summary</h2>
<h3 class="my-4 font-bold md:text-lg">Timeline</h3>
<Timeline timeline={timeline} />
<h3 class="my-4 font-bold md:text-lg">Key Takeaways</h3>
<ul class="list-inside list-disc">
<li></li>
</ul>
<h3 class="my-4 font-bold md:text-lg">Skills Used</h3>
<div
class="border-caperren-green relative grid grid-flow-row gap-6 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"
>
<div>
<div class="text-sm font-extrabold">Software</div>
<hr class="text-caperren-green" />
<ul class="list-inside list-disc text-sm">
<li>Python</li>
<li>Test Driven Development</li>
</ul>
</div>
<div>
<div class="text-sm font-extrabold">Electrical</div>
<hr class="text-caperren-green" />
</div>
<div>
<div class="text-sm font-extrabold">Other</div>
<hr class="text-caperren-green" />
</div>
</div>
<h2 class="my-4 font-bold md:text-2xl">Details</h2>
Though I did get to work on some really fun projects during my internship at
SpaceX, I unfortunately cant go into much detail due to NDAs and ITAR
restrictions. What I can say is that I mainly wrote Python for a new avionics
hardware test system. My experience with writing Python in the numerous other
projects Ive done really helped me out here, as the framework SpaceX has
created was quite complex and would otherwise have been fairly difficult to
write code for. I also wrote a simple tool for automating the creation of Jira
work tickets so that the two teams that ended up using it wouldnt have to
have their members manually creating dozens of them as work and issues came in
through a separate system. I was also quite happy in that I got to perform
some circuit debugging on avionics test system hardware, both for my project
and for a separate test system. A final experience I had here was getting to
work directly with the head engineer from a company that supplied a piece of
test hardware I was interfacing with. It was quite incredible to see just how
much weight a SpaceX email address had when trying to solve problems I had
found with the hardware. Not only were they responsive, but in fact were
willing to fast-track firmware updates for us to get things working. Coming
from clubs and small labs where a support email might not even get a response
for months, it was quite a refreshing experience.
<PageGroup>
<Fragment slot="header"><H2>Summary</H2></Fragment>
<PageGroup>
<Fragment slot="header"><H3>Timeline</H3></Fragment>
<Timeline timeline={timeline} />
</PageGroup>
<PageGroup>
<Fragment slot="header"><H3>Key Takeaways</H3></Fragment>
<Ul>
<Li
>Wrote re-usable, unit-tested, and safety-focused test software
components in Python for validating high-pressure transducers</Li
>
<Li
>Assisted in the running of qualification tests against flight
networking hardware</Li
>
<Li
>Wrote software in Python to automate work-ticket generation in Jira</Li
>
<Li
>Successfully debugged electrical faults in <PopoverWordDefinition
key="PCBs"
/> used in Avionics test systems</Li
>
<Li
>Directly interfaced with the engineering team for <PopoverWordDefinition
key="COTS"
/> test equipment, driving firmware fixes and providing beta test feedback</Li
>
</Ul>
</PageGroup>
<SkillMatrix categorizedSkills={categorizedSkills} />
</PageGroup>
<PageGroup>
<Fragment slot="header"><H2>Details</H2></Fragment>
<Paragraphs>
<Paragraph>
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!
</Paragraph>
<Paragraph>
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 <PopoverWordDefinition
key="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 <PopoverWordDefinition key="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 <PopoverWordDefinition
key="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 <PopoverWordDefinition
key="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 <InlineLink
href="/experience/spacex/hardware-test-engineer-i-ii"
>working for the company long-term</InlineLink
>, I know that these components were used, and likely still are, for
many pressure-related validation tests at the company and worked well!
</Paragraph>
<Paragraph>
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.
</Paragraph>
</Paragraphs>
</PageGroup>
</ExperienceLayout>