Considerations for Self-Driving Car Engineers

Udacity recently announced a self-driving car engineer nanodegree. There's a strong possibility, in my opinion, of getting relevant employment at the end. It'll cost you 9 months and $2,400.

The announcement email had me reconsidering my own career goals. It's relevant to me because my software engineering work for the last year has revolved heavily around autonomous vehicles.

Here are some conclusions I reached, and things for potential car engineers to think about.

Location

Where do you want to live?

If you work in the defense, aerospace, or automotive industries, it's very hard to live in a big city. The exception maybe being Detroit.

Why? What we engineer takes up a lot of physical space, for tinkering and experimentation if not the final products.

The most desirable places for someone with this nanodegree likely include Tesla, Mercedes Benz, and SpaceX.

Here are where those three employers seem to be putting their engineering people.

Based off searches of their career sites.

Tesla - Deer Creek, California; Fremont, California

Mercedes Benz - Sunnyvale, California; Redford, Michigan; Ann Arbor, Michigan; Montvale, New Jersey

SpaceX - Hawthorne, California; McGregor, Texas

Consider whether these are places you want to live. I currently live in Syracuse, New York and won't judge. 🙂

Side note: I mention SpaceX because I feel there's a big overlap in the content - see the below video which includes a lot of autonomy.

Advancement Opportunities

This will get a little more speculative.

Most of the places that will be hiring self-driving car engineers are not young companies. Therefore I think their approaches to advancing employees will reflect their age.

Maybe, regardless of overtime, performance, and/or accomplishments, it takes 3-4 years to get a promotion. (i.e. Software Engineer to Senior Software Engineer)

This is the impression on the defense side of autonomous vehicles. The younger the company, though, the less likely I'd think this is.

(Within reason - by "young" I mean Tesla or SpaceX and not some super fresh startup)

Testing

There's going to be an ungodly amount of unit and integration testing behind these self-driving cars.

If you look at the safety requirements behind human safety-critical spacecraft, you can get the idea. 100% path coverage.

That means every possible path through the code has to be executed at least once by your tests. It's stricter than branch coverage which is stricter than line coverage.

Say you've got the following...


if (b == 7)
{
    b--;
}
else if (b != 0
{
    b = 40;
}

if (a > 90)
{
    c = false;
}

System.out.println(a + b);

What are your paths? Whatever ends up getting tested here, maybe asserting the values of a, b, and c, you'll need to run those assertions through -

  • the first if with the second if
  • the first if without the second if
  • the else if with the second if
  • the else if without the second if
  • just the second if
  • none of the conditionals

The big question mark is how much of this responsibility will fall on self-driving car engineers. It might just go to dedicated software engineers in test.

When actual self-driving car engineer job postings begin going up, I guess we'll get a better idea.

Conclusion

When the self-driving car engineer nanodegree was announced, I gave it serious thought. As someone with relevant software experience already I can assume it'd be easy to get hired afterward.

However, mostly for the "location" reason mentioned above above, I'm not applying.

I do believe it would be better for many ~18-year-olds than going to college.