Its official! I’ve graduated. Man, what an experience. This has been one of the most rewarding decisions of my life. Its hard to imagine what will happen next. I have day-dreamed and focused on grad school for so long that I didn’t spend much effort looking past this moment.
First off, I can’t say enough great things about Carnegie Mellon. I must say that my expectations were not set very high after a rather lackluster undergrad experience. There really is something different about attending private school. I rarely felt like I was wasting my money. Doing the math about cost/reward can be a bit daunting. In reality I was paying close to $300 per lecture! Of course, that cost covered the whole experience: not having to work, disposable income, zero accountability to anyone outside of myself, one-on-one access to some of the best minds in the world.
Most of my courses culminated in a term project. I enjoyed these much better than a final exam. I have posted details on most of my projects here:
Computer Vision + Machine Learning (a two semester project)
Kinematics Dynamics and Control of Robotic Manipulators
Introduction to Software Engineering
Large-Scale Complex Dynamical Systems
When I started school I sat down and wrote out my five reasons for attending. I printed this list out and it has hung above my desk from day one:
1. The most direct route to a career shift from hardware and mechanical systems to software and logic systems.
2. More math.
3. Live a student’s lifestyle again (personal schedule, working directly for myself)
4. Increase future income.
5. Do research. Investigate ideas instead of just implementing somebody else’s ideas.
In retrospect, these reasons were perfectly acceptable. The first four did/will happen. However, I did not get to do research the way I wanted. I realized that things don’t always work like you want them to. I started off on the “research option” Master’s program: 8 courses of class work and an equal amount of research. At Carnegie Mellon, the school does not financially support its master’s students, at all. Additionally, research hours have the same tuition cost as a normal course hours. Basically, I would have to pay to do completely independent research.
There was the option of finding a professor who could grant me pay or credit (not both) for working to support his/her research. Everyone I knew who was undertaking either a PhD or master’s research degree was overworked and not enjoying his/her experience. They were beholden to their class work and personal research at the same time as the work required by their professor. I didn’t meet a single person who was handling this stress without some personal complications: health, relationships, hobbies, sanity. I knew this route was not something I wanted, so I switched to the “course work only” option and found an actual paid research position.
Over the summer, CMU does not offer any classes. I focused my entire time on my research position. I began working with John Dolan and Tianyu Gu as part of the Carnegie Mellon + GM Autonomous Driving Collaborative Research Lab. My responsibility is to implement control algorithms of past and current research ideas from Tianyu and others. The control software for the vehicle, a Cadillac SRX, is unique in that it can be run off-board in a 3D physics engine and on-board the real vehicle. There is no need to port code from one environment to the other. The code that I write and test in simulation is eventually deployed straight to the vehicle. Most of the project is governed by an IP agreement, so there is not much I can share. I can say however, that my love/hate relationship with C++ is greater than ever.
So, what’s next? We’ll see, but the sky is the limit.