
Slate has a short, fun self-driving car quiz up today.
I’m ashamed to admit, I only scored an 8 of 10.
But I maintain that questions about Stephen King novels have no place in a self-driving car quiz.

Slate has a short, fun self-driving car quiz up today.
I’m ashamed to admit, I only scored an 8 of 10.
But I maintain that questions about Stephen King novels have no place in a self-driving car quiz.

My wife and I love to pick up a free Palo Alto Daily Post and go through the police blotter. Unfortunately, the Post doesn’t publish the blotter online, so you have to get a paper edition to check it out.
The paper makes an art of finding the funniest police reports — our favorite was when police were called to investigate a report that a baby had been dumped in a trash can at the Walmart. Police determined the baby was a burrito.
There is an aspect of the blotter that is reliably disturbing, however, and I’m never sure if the Post publishes it intentionally or not. There is line after line of people with hispanic-sounding names who have been pulled over and cited or arrested on suspended licenses or outstanding warrants or other non-moving offenses.
From the outside, it sure looks like these people are being pulled over for driving while brown.
Police have a lot of discretion in determining who to stop. I imagine a police officer can usually find a legitimate reason to stop any given vehicle that drives by.
One hope for the future of self-driving cars is that this will become a lot more rare. If vehicles are programmed by the manufacturer to obey all traffic laws, there will still be reasons to pull over vehicles, but it will be harder to justify.
And hopefully driving while brown will become a crime of the past.

Recently I’ve had a few discussions with people who are nervous about self-driving cars, mostly because they find driving fun. They’re worried that we’re entering a brave new world where people won’t be allowed to drive for fun anymore.
I think this is a legitimate concern, but my response is that driving will become like biking.
Biking today is primarily a leisure activity that people do for fun. Except in a certain uncommon (and usually urban) instances, biking is rarely the most efficient or fastest way to transport yourself.
Once self-driving cars become common, I expect to see much the same thing. We might see certain roads designated only for human-driven cars, just like many paths are designated specifically for bikes today.
And it won’t shock me if we see a replay of some of the cyclist vs. driver road rage in the form of human drivers vs human passengers in self-driving cars, all trying to use the same road.
My model for thinking about how human-driven cars will map onto the self-driving road system is to think about how bikes map onto the current human-driven road system.
There are a lot of bike-only paths, often along scenic routes. Outside of those routes, cyclists will often use slower, smaller, residential streets for biking. The instances in which cyclists need to use main commuting thoroughfares are the situations in which bike-car conflict is the greatest.
So I can imagine scenic roads, like US 1 in California, or Skyline Drive in Virginia, being set aside specifically for human drivers. This might be especially true if self-driving cars ultimately attain speeds far beyond what human drivers can safely handle today.
Big interstate highways, though, might become the domain of computer-driven cars traveling hundreds of miles per hour.

The news of the day is Brexit, and there is a lot more to that than autonomous vehicles, by a long shot.
But there is a small autonomous vehicle angle, which is that the UK, and London in particular, have been positioning themselves as leaders in the autonomous vehicle race.
Nobody is quite sure what the results of Brexit will be, or even if it will happen at all.
But my guess is that the effects will be felt hardest by smaller, startup firms. Those are the companies that won’t have the legions of lawyers to translate and negotiate new cross-border agreements with the rest of the EU.
Brexit may even be a boon to larger, foreign companies, like US and Asian automakers, whose products will now face a little less competition in Europe and the rest of the world.

I wrote earlier that my formula for landing a job in autonomous vehicles had three parts:
The first two parts consist of developing skills. The third part, networking, requires selling those skills to the world.
Like all good salesmen, I used a CRM tool, although in this case it was just a spreadsheet. And I filled in that spreadsheet with all the different companies I was excited to talk with.
I didn’t have this vocabulary at the time, but essentially the potential employers in this space break down into segments.
Transportation-as-a-Service
OEMs
Tier 1 Suppliers
Tier 2 Suppliers
With limited exceptions, these companies base their autonomous vehicle teams in three places: Michigan, Silicon Valley, and Germany. So it’s worth considering your willingness to live in those places.
The next step is to scan the careers pages of these companies and apply for the positions that interest you. These cold applications rarely lead to jobs on their own, but once you get to the right person within the company, they will usually ask whether you have applied for jobs via the website. It’s helpful to be able to answer that question yes right off the bat.
Finding the right person to contact is often laborious, but this is the key step. I leveraged my own network, which was great, but my most promising leads, including at Ford, actually came from cold emails. I found recruiters or hiring managers on LinkedIn and then sent messages. I would follow up on these messages two or three times each before giving up.
The final step was building my CV to focus on my AV work. Since my previous professional experience was less relevant, I pushed that to a second page and filled the first page of my CV with all of the courses and projects and keywords that I wanted autonomous vehicle people to see.
After that, if all goes well, will come interviews, both formal and informal. Maybe some programming challenges.
Interviews are more about luck than predicting employee success (that’s literally true, according to personnel selection research), so it helps to have a lot of interviews and hopefully you’ll get lucky at least once.
Fortunately, I did 🙂

GM just announced a new technology center in Warren, Michigan, that will focus on self-driving cars. This follows on the heels of GM’s acquisition of Cruise Automation and of GM’s commitment to hire hundreds of self-driving car engineers in Canada.
To me, one of the most exciting elements of this announcement is GM’s plan to build a self-driving vehicle-focused test track.
Test tracks are a major obstacle to autonomous vehicle development in Silicon Valley, because the land is just so expensive, so regulated, and so hard to bundle together into a large parcel.
Google’s test track is a decommissioned air force base in the Central Valley, hours away from the Mountain View campus.
One of the big advantages of vehicle development in the midwest is the relative bounty of cheap, greenfield land.

A few days ago I outlined the three components of my effort to land a job working on autonomous vehicles:
A few days ago I wrote about coursework and many of the online courses that are available.
The projects that I undertook were mostly distinct from the coursework. The three big projects I worked on were:
The lane detection software was the most immediately gratifying of those projects.
There are a several free collections of road images online, or you could even create your own using a mobile phone in your car.
Then, using OpenCV and a sequence of Canny edge transforms and Hough filters and perspective warps, I was able too identify images on the road. If I were to do the project now, using what I’ve learned since, I’d probably also look at connected components algorithms and gradient contrasts.
I even got to use the Twiddle algorithm I learned from Sebastian Thrun’s AI for Robotics course on Udacity.
When it’s all done, you can run the images together like a video.
This project seemed the most exciting when I started, but it turned out to be a little bit of a bust.
I bought a Zumobot from Pololu and began trying to program it to drive itself.
I got some basic driving maneuvers working, but I started this project too early in my robotics education and didn’t really know how to make progress. Eventually I kind of lost focus and never got back to it.
But with the background that I eventually picked up through further courses, I think I could go back and have a lot of fun with this project.
I started this blog as a below-the-radar serious of posts, with the intention of just getting myself up to speed on autonomous vehicles.
I showed it to my little brother at one point, and he suggested publishing the posts more widely.
Friends had told me about how great Medium is for blogging, and I’ve been really happy that I moved my writing here.
Of these three projects, blogging is the only one I have kept up since starting my job on Ford’s AV team. It’s fun, it keeps me current on industry news, and it’s nice to get the constant feedback that people are reading and following what I write.
So thank you for that!

A startup called Local Motors is testing out an autonomous bus named Olli, and plans to launch it on university campuses soon.
The vehicle is built in part on a partnership with IBM’s Watson super-computer.
In anticipation of the launch, Local Motors has published a video about Olli that’s pretty fun.

I’ve always found Rolls-Royce to be an intriguing car brand, simply because so few people purchase their vehicles.
I ran the math once and figured that Rolls-Royce makes so much money on each vehicle that they can offset the incredibly low volumes and still design amazing cars.
So I was fascinated to read The Verge cover the unveiling of the Rolls-Royce Vision 100 concept car.
They call it “a cruise ship on wheels”.
The RR answer is simply staggering in the extremism of its opulence and swagger. I witnessed it rolling in to the stage here in London this morning, and it felt like I was attending the inauguration of a giant cruise ship. Measuring nearly 20 feet in length (5.9m) and five feet tall, the Vision 100 dwarfs its occupants and nearby attendants in a way that even the grandest present-day Rolls-Royces can’t quite match.
It’s a trip.

Recently I outlined a short series of posts I’ll be writing about how I landed a job in autonomous vehicles.
The first part of that equation was coursework.
There are so many free online courses to take!
My background is that I have a pretty solid foundation in software engineering, including an undergraduate degree in computer science. But most recently my programming has been on the web, not so much in the machine learning and embedded systems areas that dominate vehicle software.
Here are the courses I took:
Artificial Intelligence for Robotics (Udacity): This is a terrific and super-fun introduction into self-driving cars by Sebastian Thrun. Thrun is both the founder of Udacity and also the founder of Google’s self-driving car project and also a former professor at Stanford. Taking the class is like being in the presence of greatness.
Machine Learning (Coursera): This class is really broad, covering supervised and unsupervised learning algorithms, as well as optimization and tuning. The teacher is Andrew Ng, who is like Sebastian Thrun’s mirror image — Stanford professor, then founder of Coursera, now head of Baidu’s self-driving car program.
Control of Mobile Robots (Coursera): This course is taught through Coursera’s partnership with Georgia Tech, and covers the basics of control theory. It was especially helpful for me, as a computer science undergrad with minimal background in mechanical engineering.
Deep Learning (Udacity): This is a relatively short overview of the theory behind deep neural networks, with some practical programming exercises.
Deep Learning (NVIDIA): In practice, it’s possible to get a lot of value out of deep neural networks with only a thin understanding of how DNNs actually work. That’s because practitioners can get a lot of mileage out of deep learning frameworks like Caffe, Theano, and Torch. This course provides an overview of each framework, along with programming exercises.
Intro to Parallel Programming with CUDA (Udacity): Deep learning plays a prominent role in autonomous software, and deep learning is itself enabled by the massive parallelization that GPUs offer. CUDA is the parallel programming framework created by NVIDIA, and this course provides great background into how parallel programming works.
Underactuated Robotics (edX): This was by far the most math-heavy of the courses I took, owing to its target audience — MIT upperclassmen. I confess that due to some family obligations I only finished about 2/3 of the course. But the course provides terrific exercises in how to model robots in the physical world. It also forced me to brush up on my advanced math.
All of these are fairly advanced courses. Some of the programming exercises are in C++, some in Python, many in Matlab.
For somebody with minimal software engineering background, I might recommend starting with some more introductory computer science and linear algebra courses.
But for somebody with my background — that is to say, a strong software engineer with no real robotics experience, I found these classes to be terrific.