DEV Community

Cover image for What it's like working at NASA Jet Propulsion Laboratory
John Pham
John Pham

Posted on • Updated on • Originally published at pham.codes

What it's like working at NASA Jet Propulsion Laboratory

There's a ton of buzz around what it's like working at big tech companies but not much on gems such as NASA Jet Propulsion Laboratory (JPL). For most folks, they're swooned to work for a place because of the "amazing" perks such as free food and ping pong tables. At NASA JPL, the people are not there for the perks, they're there because they're truly passionate about understanding what's out there in space and here on Earth. This results in a culture that prioritizes ingenuity and exploration.

Who am I?

I'm currently working at JPL on the Advanced Multi-Mission Operations System doing frontend work and was a former intern. With this post, I hope to excite you about working with space technologies.

What is NASA JPL?

The Center of the Universe

JPL is a research facility in La Cañada Flintridge, California, that carries out Space and Earth science missions. A few notable achievements are: developing the US' first Earth-orbiting science satellite, developing the first interplanetary spacecraft, and sending robots to other planets!

JPL is a federally funded research and development center (FFRDC) managed by Caltech for NASA. This puts JPL in a unique position compared to the other NASA centers because it allows JPL to drive innovation outside of the scope of NASA. When you work at JPL, you're not a civil servant, you're a private employee of Caltech.

The history of JPL is really fascinating and I encourage you to look more into it.

What type of work does JPL do?

Bunnies working on Rover

There is a breadth of work being done here. It ranges from graphic design, artificial intelligence, mixed reality to origami. You don't have to be a rocket scientist to work here. During a recent event, I met Elizabeth Landau who's official title is "Senior Storyteller", that's so cool!

What are the tech stacks like?

The rest of this post will be written from the point of view of a frontend engineer.

You can think of Missions at JPL as products at traditional tech firms. Missions go through a product lifecycle from ideation to implementation. Each mission will have requirements which are fulfilled by bespoke services or extend multi-mission services. Recently there has been a big push to build more multi-mission services which can save current and future missions a lot of time from reimplementing and testing shared services.

We use Git/GitHub for version control and most missions are moving to monorepos.

A lot of the software for missions have moved from desktop applications to web applications.

Frontend

  • Angular, React with Typescript (No need to support IE so we get to play with the latest browser features!)
  • D3 and Canvas for visualizations
  • Jest and Jasmine for unit tests
  • Selenium for E2E tests

Backend/DevOps

  • Java Spring, Express with Typescript
  • JUnit for Java tests and Mocha/Chai for Typescript tests
  • Docker (most services deployed on *nix OS')
  • Jenkins
  • MongoDB, MySQL, ArangoDB, Dgraph

Other

  • Testrail
  • Jira
  • Slack
  • Windows/Mac/*nix machines

There's a ton of tools being used across the lab which are not mentioned above. A great thing about the team dynamics here is if you can put together an argument on why X tool is useful, then you can use it.

Team Dynamics

Intern Group

When you join JPL, you join a team for a specific function. For example, there's a Data Services team, User Interface team, and Artificial Intelligence team. Members of these teams are then recruited for missions. As an individual contributor, you can spend 100% of your time on a single mission or split your time between multiple.

Switching teams/missions is pretty straightforward. You can meet supervisors of other teams or project leads for missions. Once you've found an accepting team/mission, you can work with your current obligations for a smooth handoff.

Depending on the team you're on, you can be seated in individual offices, cubicles, or open-space.

Clubs

Interns during the Aerospace Games

The lab has tons of clubs for all interests. Some of my favorites are the wellness club, bike club, and gardening club.

The Interview Process

There isn't a uniform interview process at JPL. If a team really like you, you can be hired on the spot. Below is the suggested process:

  1. Apply online for a specific position or get a referral
  2. Phone interview with HR (behavioral)
  3. A round of phone/video interviews with the team/mission leads (behavioral/technical)
  4. On-site interview (behavioral/culture/technical)
  5. Decision emailed/phoned

A Day in a Life

8:00AM Wake Up
8:20AM Breakfast
8:45AM Leave for Work
9:00AM Arrive at Work
9:15AM Catch up on Emails/Slack
9:30AM Standup
10:00AM Development Time
12:00PM Lunch/Presentation by lab or guest speaker
1:00PM Development Time
2:00PM Meeting/Sprint Planning/ Retrospectives
3:30PM Development Time
5:00PM Gym at Caltech
6:00PM Home

Notable Perks

  • You can opt into a Regular Day Off work schedule which gives you every other Friday off!
  • Subsidized lunch
  • Remote work friendly
  • Access to Caltech resources such as the gym, lectures, and equipment rentals
  • Weekly lectures by guests or other employees on projects or misc. topics

Closing

Working here has been a blast (no pun intended). The people are brilliant and meeting new people is a Slack message away (the lab encourages you to meet people by matching up folks every 2 weeks to go out for coffee). It's a definite change from working at big tech but the impact you make here is visible all the way up in space.


If you find yourself in Southern California and would like to check out the lab, feel free to hit me up! It's an exciting time for the lab as the Mars 2020 rover is being built here.

Oldest comments (16)

Collapse
 
alexandrammr profile image
Alex Radu

This was really cool :) Thank you for all the insight!

Collapse
 
ben profile image
Ben Halpern

Coooool!

Collapse
 
chiangs profile image
Stephen Chiang

Pretty cool! If I were to look in the USA, this would be first choice.

Collapse
 
johnphamous profile image
John Pham

It's been really fun!

Collapse
 
j_mplourde profile image
Jean-Michel Plourde

I am immensely jealous. Working at NASA would be the ultimate nerd thing to do. I love space and tech so this would be a perfect match. Unfortunately, I'm Canadian, so the process would be a lot to reach at position there.

I was surprised to find JPL is using Github. There is also a couple of tools we use at our job and I understand why some bigger orgs would use them. I loved to read your post. I can't wait for the next one.

Collapse
 
johnphamous profile image
John Pham

Hi! Not all roles require you to be a US citizen.

A big push at the lab is innersourcing code. GitHub is a great too help with that.

Collapse
 
kioviensis profile image
Max Tarsis

So, are there opportunities to get a frontend job when a person a non-US citizen?

Thread Thread
 
johnphamous profile image
John Pham

Depending on the type of work, a role might be only for US Citizens. Check out the careers website to see if the role you're interested in has that requirement.

Collapse
 
sandeepbalachandran profile image
Sandeep Balachandran

Wow,Great to hear about JPL . Let me get this right.

1) Among Data Services team, User Interface team, and Artificial Intelligence team who did the mentioned works as developing the US' first Earth-orbiting science satellite, developing the first interplanetary spacecraft, and sending robots to other planets ? I mean h/w section. AI team?

2) Apparently there is no php for backend. What was the reason not to use php for the works?

3) Which linux distro have you been using lately?

4)Whats the one thing you hate most from the workplace?

5)Last but not least if you ever get to know about extraterrestrial events, are you willing to share here first?

  • Many more doubts are one the way -
Collapse
 
johnphamous profile image
John Pham
  1. The three teams I listed isn't the exhaustive list. There are probably over 300 teams here with different focuses. Most of the projects are under missions so people from software, hardware, operations, and design are recruited in from across the lab.

  2. There may be some PHP being used at the lab. From my experience I haven't seen any. If an individual wanted to use PHP then they could put together an argument explaining why it would be the best tool for the task. My guess for the limited use would be since it's not a strongly typed language, it's harder to ensure correctness.

  3. I use a Mac for local development and Alpine/RHEL for Docker containers.

  4. Could get pretty slow around here.

  5. Not sure what you mean by this

Collapse
 
sandeepbalachandran profile image
Sandeep Balachandran
  1. I mean That was kinda of joke. You know since you are working at NASA you get to know if there is a sign of extraterrestrial life before everyone else. So share here first. Like "hey guys , I talked to this guy from Europa (or any) yesterday, Felt so realistic" . Stuffs like that. :D
Collapse
 
ld00d profile image
Brian Lampe

I was there with my family last weekend. That must be an awesome place to work!

Collapse
 
johnphamous profile image
John Pham

Were you here for the Explore our Universe day?

Collapse
 
ld00d profile image
Brian Lampe

"A Ticket to Explore JPL" last Sunday.

It was packed. We waited in line nearly an hour to see "The Center of the Universe".

Collapse
 
kioviensis profile image
Max Tarsis

I love this article
Much thanks :)

Collapse
 
h1tman1978 profile image
Anthony Rolfe

Does JPL have any open source projects?