In this article, Mark Liu touches on the benefits of having a maths background for working as a computer programmer at a start-up specializing in self-driving cars.
I was interested in math since taking geometry in high school. We learned how to prove basic theorems in plane geometry using an axiomatic system. I had heard that the angles of a triangle always add up to 180 degrees, but it was incredible to finally understand why it had to be so. When I got to college, I decided to major in Financial Engineering because it was a mix of my interests in math and computer science, plus it sounded like something that would pay well later.
After I graduated, I worked for a little, but realized I really didn’t learn as much math as I wanted to. So I decided to get a master’s degree. I started my master’s program in Mathematics at NYU in 2013. This was a fun experience where I learned several topics – like “complex numbers” and “manifolds” – that I had always heard of before. It was also very challenging. I developed a close friendship with a few classmates who were also going through the master’s program with me. We would work late into the night thinking about the puzzles that were posed by the problem sets.
After I graduated, it was time to look for a job again. I applied mostly to tech and finance companies, but there was one particular company that caught my eye. It was an interesting new startup out in California that was hiring computer programmers for self-driving cars. I had done programming before in undergrad, but I didn’t know much about self-driving cars. I asked them to consider my application anyway, and luckily, they hired me.
I found myself using my math education all the time at work. It turns out that self-driving cars need a lot of math. On one day, one of my coworkers who had come from a computer science background asked me why the eigenvectors of a covariance matrix describe the directions of most variance. I was puzzled myself, but I was able to probe the issue using different tools I picked up during my master’s education, and within no time discovered why the eigenvectors had this property.
Not only was I able to settle practical mathematical questions decisively, but I could also pick up new topics in applied math in a flash. There is a certain algorithm called the “unscented transform” which involves approximating the distribution of a multivariate gaussian passed through a nonlinear function. I read that this algorithm might be useful to my application, so I looked up the original publication in which it was introduced. In no time I followed through the derivations in the appendix and implemented it on the computer. This significantly improved our self-driving car’s performance! This made quite an impression and was not forgotten during performance review!
Had it not been for my math education, I’m sure I would have been left trying to copy-paste the formulas from Wikipedia, and totally lost whenever any bugs popped up. My math education gave me many little intuitions and guide rails. For example, if I saw a covariance matrix with a negative trace, I would know something went wrong somewhere nearby because the trace is the sum of the eigenvalues, and the eigenvalues of a covariance matrix are all positive. On the other hand, if the trace was negative, I could take an eigendecomposition of the matrix and find out what direction in state space was messed up.
There were many more instances like this. In conclusion, not only has my math education opened my mind to many beautiful and interesting theories, but it has also been immensely helpful in my career as a software engineer for self-driving cars.