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", ADCP: "Acoustic doppler current profiler",
COTS: "Consumer off-the-shelf", COTS: "Consumer off-the-shelf",
CTD: "Conductivity, temperature, and depth sensor", CTD: "Conductivity, temperature, and depth sensor",
DUTs: "Devices under test",
GUI: "Graphical user interface", GUI: "Graphical user interface",
NUC: "A small and low-power computer made by Intel", NUC: "A small and low-power computer made by Intel",
PCBs: "Printed circuit boards", PCBs: "Printed circuit boards",
TDD: "Test driven development",
UPS: "Uninterruptible power supply", UPS: "Uninterruptible power supply",
VISA: "Virtual instrument software architecture",
}; };
const key: string | undefined = Astro.props.key; const key: string | undefined = Astro.props.key;
@@ -21,6 +24,12 @@ if (key && keys.hasOwnProperty(key)) {
word = key; word = key;
definition = keys[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", path: "experience",
children: [ children: [
{ {
enabled: false,
navText: "SpaceX", navText: "SpaceX",
path: "spacex", path: "spacex",
children: [ children: [
@@ -18,7 +17,6 @@ export const siteLayout: navLink[] = [
path: "hardware-test-engineer-i-ii", path: "hardware-test-engineer-i-ii",
}, },
{ {
enabled: false,
navText: "Avionics Test Engineering Internship", navText: "Avionics Test Engineering Internship",
path: "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 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 Timeline from "@components/Timeline/Timeline.astro";
import Ul from "@components/Ul.astro";
import ExperienceLayout from "@layouts/ExperienceLayout.astro"; import ExperienceLayout from "@layouts/ExperienceLayout.astro";
import spring_2019_interns from "@assets/experience/spacex/avionics-test-engineering-internship/spring-2019-interns.jpg"; 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 { carouselGroup } from "@interfaces/image-carousel.ts";
import type { categorySkills } from "@interfaces/skill-matrix.ts";
import type { timelineEntry } from "@interfaces/timeline.ts"; import type { timelineEntry } from "@interfaces/timeline.ts";
const headerCarouselGroup: carouselGroup = { const headerCarouselGroup: carouselGroup = {
animation: "slide", animation: "slide",
images: [spring_2019_interns], images: [spring_2019_interns, swag],
}; };
const timeline: timelineEntry[] = [ const timeline: timelineEntry[] = [
@@ -23,58 +35,157 @@ const timeline: timelineEntry[] = [
date: "March 2019", 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} /> <Carousel carouselGroup={headerCarouselGroup} />
<PageGroup>
<h2 class="my-4 font-bold md:text-2xl">Summary</h2> <Fragment slot="header"><H2>Summary</H2></Fragment>
<h3 class="my-4 font-bold md:text-lg">Timeline</h3> <PageGroup>
<Timeline timeline={timeline} /> <Fragment slot="header"><H3>Timeline</H3></Fragment>
<h3 class="my-4 font-bold md:text-lg">Key Takeaways</h3> <Timeline timeline={timeline} />
<ul class="list-inside list-disc"> </PageGroup>
<li></li> <PageGroup>
</ul> <Fragment slot="header"><H3>Key Takeaways</H3></Fragment>
<h3 class="my-4 font-bold md:text-lg">Skills Used</h3> <Ul>
<div <Li
class="border-caperren-green relative grid grid-flow-row gap-6 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4" >Wrote re-usable, unit-tested, and safety-focused test software
> components in Python for validating high-pressure transducers</Li
<div> >
<div class="text-sm font-extrabold">Software</div> <Li
<hr class="text-caperren-green" /> >Assisted in the running of qualification tests against flight
<ul class="list-inside list-disc text-sm"> networking hardware</Li
<li>Python</li> >
<li>Test Driven Development</li> <Li
</ul> >Wrote software in Python to automate work-ticket generation in Jira</Li
</div> >
<div> <Li
<div class="text-sm font-extrabold">Electrical</div> >Successfully debugged electrical faults in <PopoverWordDefinition
<hr class="text-caperren-green" /> key="PCBs"
</div> /> used in Avionics test systems</Li
<div> >
<div class="text-sm font-extrabold">Other</div> <Li
<hr class="text-caperren-green" /> >Directly interfaced with the engineering team for <PopoverWordDefinition
</div> key="COTS"
</div> /> test equipment, driving firmware fixes and providing beta test feedback</Li
<h2 class="my-4 font-bold md:text-2xl">Details</h2> >
</Ul>
Though I did get to work on some really fun projects during my internship at </PageGroup>
SpaceX, I unfortunately cant go into much detail due to NDAs and ITAR <SkillMatrix categorizedSkills={categorizedSkills} />
restrictions. What I can say is that I mainly wrote Python for a new avionics </PageGroup>
hardware test system. My experience with writing Python in the numerous other <PageGroup>
projects Ive done really helped me out here, as the framework SpaceX has <Fragment slot="header"><H2>Details</H2></Fragment>
created was quite complex and would otherwise have been fairly difficult to <Paragraphs>
write code for. I also wrote a simple tool for automating the creation of Jira <Paragraph>
work tickets so that the two teams that ended up using it wouldnt have to Working at SpaceX was a dream come true, even when it was only for a
have their members manually creating dozens of them as work and issues came in three month internship. I've always loved space, including the
through a separate system. I was also quite happy in that I got to perform technology related to it, as I know many others also do. I grew as a
some circuit debugging on avionics test system hardware, both for my project Trekkie, watching endless hours of rubbermaid tubs filled with VHS
and for a separate test system. A final experience I had here was getting to recordings of the original series, The Next Generation, and Voyager. As
work directly with the head engineer from a company that supplied a piece of someone with a multi-disciplinary background, and with a special focus
test hardware I was interfacing with. It was quite incredible to see just how on robotics and automation, test engineering was a very good fit!
much weight a SpaceX email address had when trying to solve problems I had </Paragraph>
found with the hardware. Not only were they responsive, but in fact were <Paragraph>
willing to fast-track firmware updates for us to get things working. Coming During this internship, my primary goal was to create re-usable
from clubs and small labs where a support email might not even get a response components for high pressure test systems. This involved interfacing
for months, it was quite a refreshing experience. 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> </ExperienceLayout>