This past weekend I was fortunate enough to spend some time with my family at the Toyota Owners 400 in Richmond, Virginia.
Table of Contents
Heading to Richmond
For those unfamiliar with what I’m talking about, the Toyota Owners 400 is a NASCAR race that takes place at the Richmond International Raceway (RIR). At RIR, cup races actually occur twice a year – once in the spring and again in the fall. This spring my sister thought it would be cool to take my dad out to his first ever NASCAR race for his birthday. Luckily, she invited my mom and me as well.
Now if you’ve read my bio, then you know I’m not from Virginia. In fact, I’m not even from the southern portion of Pennsylvania. So to get down to the track, we had to leave a day early to spend the night in a hotel. The actual trek ran us about 7 hours not including pit stops for food and gas. Once we arrived in Richmond, we called it a night. By morning, we were ready to race off to the track.
By the time we arrived, it was just after 9 AM. Fortunately, we weren’t going to just sit around until the start of the race (2 PM for reference). We had pit passes, and we were going to use them. These passes allowed us to spend most of the morning walking the track and pit road. Once on pit road, the first thing I noticed was the ridiculous amount of tires lying around. In addition, each team had a variety of tools and tech at their pit box: impact wrenches, air compressors, jacks, fuel cans, etc. A quick glance over pit road was enough to get me thinking about all the spectacular engineering that goes into this sport.
Stepping back, I started to look at the track and grandstands. Both are engineering achievements in their own right, but together they make for quite a spectacle. In fact, RIR is a three-quarter mile short track in the shape of a D. This shape brings about some pretty interesting dynamics since only the backstretch is straight. The remainder of the track features banking that varies between 8° and 14°. All of that combines for a pretty solid racing experience that can vary based on the temperature of the track.
Richmond Racing Glory
At about two in afternoon, the engines start to fire up. At that point, I got a really good idea of how powerful one of those cars can be. Simply hearing the engine fire up is enough to make you reach for some earplugs. After a few minutes, the cars leave pit road to follow the pace car. A few laps later, the pace car moves out of the way and the NASCAR officials wave the green flag.
By this point in the day, I was starting to appreciate the track construction a bit more. The progressive banking allows cars on the outside lanes to remain competitive with cars in the inner lanes. It’s a lot of fun to watch the drivers experiment with different grooves on the track as they try to make their way through the pack.
Even impacts are accounted for across the board. Each driver is protected by a HANS device, a roll cage, and the SAFER barrier. All of these technologies come together to provide a safe racing experience for the drivers and their fans. Unfortunately, most of these technologies were born out of necessity due to a few bad accidents.
As you can probably tell, I spent quite a bit of time admiring all of the ingenuity at the race track. During the ride home, I started to think about the types of jobs that NASCAR might offer engineers. Naturally, that made me land on the NASCAR careers page. After that, I quickly filtered for open engineering roles. To my surprise, I only saw one entry: IMSA Simulation and Performance Engineer. I figured I might as well dig in and find out what that entails. The following is an excerpt from the job description:
- Act as a Simulation and Modelling Engineer with a focus on Vehicle Dynamics.
- Develop dynamic models, and the methods to implement these in real-time simulations, offline analysis and various optimization applications.
- Develop and conduct vehicle simulations to support the Balance of Performance process.
- Develop performance algorithms, statistical analysis tools, simulations, and standardized reporting to the IMSA Technical Committee.
- Develop, design and create proprietary computer tools and software.
- Responsible for the development of data acquisition systems and methodologies as it relates to scrutineering and performance analysis.
- Conduct data monitoring, collection, analysis, and reporting across multiple series and classes. Assist in development, integration, and support of data acquisition systems.
- Further develop performance algorithms, statistical analysis tools, simulations, and standardized reporting to the IMSA Technical Committee.
- Contribute to writing and revising regulations, further developing enforcement methods, and refining the Balance of Performance (BoP) process.
- Other duties may be assigned.
- Approximate travel 50% including weekends.
Pretty much all you need to apply for this role is a bachelor’s degree in mechanical engineering and three years of experience in Motorsports. I wonder if that includes watching races from the couch…
One thing I am noticing is that engineers today are being forced to cover quite a bit more breadth. In fact, this application recommends that mechanical engineers have some experience in Excel, VBA, and Matlab with preferred programming experience in C# (must be a Microsoft dominated industry). So I suppose I’ll shamelessly plug my Java Tutorials. Almost every engineer can benefit from a background in software. 🙂
While NASCAR only has one opportunity open at the moment, racing is a multi-business industry. So I figured I could find some related jobs at companies like Ford, Chevy, Toyota, and Goodyear. This time I decided to hone in on a more software oriented role to get an idea of some of the responsibilities. The following is the job description for an Electronics Engineering position at Toyota:
- Design Telematics and Multimedia system: including Navigation, Bluetooth, WiFi, HD Radio, voice recognition, Human Machine Interface, Smartphone integration, cellular/data server interface and future services
- Integrate software component onto Linux platform
- Create infotainment system specifications
- Evaluate an infotainment system
- Support and Trouble shoot issues found during prototype/production builds
- Benchmark competitor Original Equipment Manufacture systems, including available features, cost breakdown and customer value/demand
- Interface with system component engineers such as cockpit electronics
- Communicate between various Toyota Design Center’s Engineering Staff
- Follow all documented processes and development schedules
- Support kaizen/update of process as needed during parts development
- Apply 5 Why thinking way / Toyota Business Practice methods
Like the simulation position, this role is also built for a mechanical engineer with options for an electrical engineer or computer scientist. The catch for the CS major is that they need a background in mechanical and electrical systems. In addition, applicants for the position need a background in C and C++. I imagine that this is more of an embedded role where realtime performance matters. Overall though, both positions are largely similar.
When I was searching for roles, I was specifically targeting engineering opportunities. Unfortunately, it seems like software hasn’t really infiltrated NASCAR yet. There are plenty of roles for mechanical and electrical engineers, but I couldn’t really find software jobs outside of Information Technology. That said, here’s a list of roles I’d like to see in the future:
- IoT/Analytics Engineer
- I’d like to see a software engineering role that applies networking knowledge to seamlessly integrate systems. I would imagine teams could share live analytics to provide better knowledge about track conditions and be able to predict failures. This role is also applicable to commercial vehicles.
- Web Developer
- When searching for jobs using the various career portals, the one thing that really stood out to me was that these companies don’t really understand user experience. I viewed all of these sites from my desktop, and I wasn’t too impressed. I imagine mobile is worse.
- Embedded Software Engineer
- Toyota seems to be comfortable with having electrical and mechanical engineers handle their embedded systems. I would prefer someone who is more familiar with scaling software systems. I think the lack of technical engineering experience can be learned on the job (computer engineers should already have a solid foundation in engineering concepts like calculus and physics).
Of course, these are just a few roles I’d like to see. It seems this industry still think engineers can pass with some basic knowledge of software. That’s probably part of why a lot of people are afraid of autonomous vehicles. That said, companies like Tesla are making headway. Just take a look at this description for a Data Engineer with a specialty in autopilot maps:
- Design and implement scalable algorithms and data models that ingest geospatial telemetry data and output features such as traffic speeds and road geometry
- Design and implement big data workflows using Spark and Python
- Devise visualization, debugging, and simulation tools for validation
- Work with a cross-functional team of hardware engineers, application/UI software engineers, QA/Validation, and designers
I’m also a big fan of the requirements:
- Strong programming skills with a solid foundation in data structures, algorithms and software design
- Experience with big data frameworks such as Hadoop/Spark
- Proficiency in Python and experience with data analysis libraries such as pandas, numpy, scipy, and scikit-learn
- Knowledge of Unix/Linux environments and version control systems (e.g. Git)
- High standards for code quality, maintainability, testing, and performance
- No prior experience with car software required
Here you can see that Tesla values actual software experience over mechanical and electrical knowledge. Granted this role probably doesn’t interact directly with the control system. However, it does require a heavy mathematical background. As a bonus, Tesla’s website is pretty easy to use, and it seems to work well on mobile.
Hope for the Future
With all that in mind, I would hope NASCAR and its affiliates would start exploring opportunities in the world of software. The only opportunities I’ve seen so far are in the world of research which require a PhD or equivalent experience in the industry. There are plenty of software engineers who would more than gladly start tackling new projects like analytics and IoT.
While I realize autonomous vehicles sort of defeat the purpose of racing, I imagine some forms of that technology could go towards helping with conditions like wheel slip and poor vision. I think drivers may even benefit from some newer technologies in the world of augmented reality. Imagine a windshield that could act like a HUD and propose routes through traffic. It wouldn’t even need to be autonomous. It could be controlled by a crew chief or a spotter.
Regardless, at this point I’m diving into the world of science fiction. I’d like to dial it back and just appreciate NASCAR for what it is – a team sport. And I think those teams could benefit from a software engineer.
Recently, I was giving a lecture about Java's "common" methods (i.e., all of the methods of Object), and I had epiphany about how Java only has toString() while Python has str() and repr(). So, it...
Magic numbers are numerical constants that have no clear meaning in the code and therefore make code harder to read. Anything that makes code harder to read is something we can use to obfuscate our...