diff --git a/src/assets/experience/osu-robotics-club/mars-rover-software-lead/silly-poke.gif b/src/assets/experience/osu-robotics-club/mars-rover-software-lead/silly-poke.gif new file mode 100644 index 0000000..379fc55 Binary files /dev/null and b/src/assets/experience/osu-robotics-club/mars-rover-software-lead/silly-poke.gif differ diff --git a/src/components/PopoverWordDefinition.astro b/src/components/PopoverWordDefinition.astro index e35e7cf..d9d559d 100644 --- a/src/components/PopoverWordDefinition.astro +++ b/src/components/PopoverWordDefinition.astro @@ -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}`, + ); +} --- <> diff --git a/src/data/site-layout.ts b/src/data/site-layout.ts index 540e71a..18b290f 100644 --- a/src/data/site-layout.ts +++ b/src/data/site-layout.ts @@ -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", }, diff --git a/src/pages/experience/spacex/avionics-test-engineering-internship.astro b/src/pages/experience/spacex/avionics-test-engineering-internship.astro index 70d7caf..03f3f0f 100644 --- a/src/pages/experience/spacex/avionics-test-engineering-internship.astro +++ b/src/pages/experience/spacex/avionics-test-engineering-internship.astro @@ -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" }], + }, + ], + }, +]; --- - + - -

Summary

-

Timeline

- -

Key Takeaways

-
    -
  • -
-

Skills Used

-
-
-
Software
-
-
    -
  • Python
  • -
  • Test Driven Development
  • -
-
-
-
Electrical
-
-
-
-
Other
-
-
-
-

Details

- - Though I did get to work on some really fun projects during my internship at - SpaceX, I unfortunately can’t go into much detail due to NDA’s 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 I’ve 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 wouldn’t 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. + +

Summary

+ +

Timeline

+ +
+ +

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 used in Avionics test systems
  • +
  • Directly interfaced with the engineering team for test equipment, driving firmware fixes and providing beta test feedback
  • +
+
+ +
+ +

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 , 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 , as + being able to verify that the tests would apply the correct stimulus, + and in the correct way, helped reduce the chances of damaging , 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 + 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! + + + 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. + + +