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?
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?
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.
- 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
- Java Spring, Express with Typescript
- JUnit for Java tests and Mocha/Chai for Typescript tests
- Docker (most services deployed on *nix OS')
- MongoDB, MySQL, ArangoDB, Dgraph
- 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.
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.
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:
- Apply online for a specific position or get a referral
- Phone interview with HR (behavioral)
- A round of phone/video interviews with the team/mission leads (behavioral/technical)
- On-site interview (behavioral/culture/technical)
- Decision emailed/phoned
A Day in a Life
|8:45AM||Leave for Work|
|9:00AM||Arrive at Work|
|9:15AM||Catch up on Emails/Slack|
|12:00PM||Lunch/Presentation by lab or guest speaker|
|2:00PM||Meeting/Sprint Planning/ Retrospectives|
|5:00PM||Gym at Caltech|
- 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
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.
Top comments (17)
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.
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.
So, are there opportunities to get a frontend job when a person a non-US citizen?
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.
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?
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.
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.
I use a Mac for local development and Alpine/RHEL for Docker containers.
Could get pretty slow around here.
Not sure what you mean by this
I was there with my family last weekend. That must be an awesome place to work!
Were you here for the Explore our Universe day?
"A Ticket to Explore JPL" last Sunday.
It was packed. We waited in line nearly an hour to see "The Center of the Universe".
This was really cool :) Thank you for all the insight!
I love this article
Much thanks :)
Pretty cool! If I were to look in the USA, this would be first choice.
It's been really fun!
Does JPL have any open source projects?