Main image of article How Tesla Software Engineers' Salaries Match Against Their Peers

It’s weird times for auto manufacturers and companies seeking to advance transportation tech. Years of optimism about everything from electric-powered vehicles to autonomous driving has given way to market turbulence and growing doubts about whether cars can evolve as rapidly as some predicted. Tesla is in the doldrums, for example, and some pundits are publicly doubting that we’ll reach unassisted self-driving anytime soon.

Despite that pessimism, however, a breakdown of software engineer compensation at some of the biggest automakers and transportation tech companies suggests that the segment is still proving lucrative for those who know how to code vehicle software. The following comes from levels.fyi, which crowdsources its compensation data:

While traditional car companies such as Ford are investing more than ever in cutting-edge technologies and electric vehicles, their software engineers make less than their professional colleagues at Tesla, as well as tech companies such as Uber and Lyft. (Compensation at General Motors is closer to Ford than Tesla, for instance.) We’ve noted this trend before, and it continues despite Ford and GM investing more in tech, including expensive Silicon Valley offices.

Of course, no two software engineers within the auto industry have the exact same job. An engineer at an autonomous driving company like Waymo, for example, might need to master concepts like computer vision in order to succeed in the role; but at a more traditional auto company, they might spend the bulk of their time focused on coding for embedded systems. Fortunately, that diversity also means that engineers of many specializations can find a suitable position. Some other arenas to consider:

  • Embedded Systems: Unlike traditional web or mobile development, automotive software often runs on resource-constrained embedded systems. Familiarity with real-time operating systems (RTOS) and understanding memory management in these environments is crucial.
     
  • Control Systems: Modern vehicles are a complex network of mechanical, electrical, and software components.  Grasping control theory concepts like feedback loops and PID control will allow you to effectively design software that interacts with physical systems.

  • Safety-Critical Systems: Safety is paramount in the automotive industry. Understanding safety standards like ISO 26262 and how to develop software with minimal risk of failure is a critical differentiator.

  • Programming Languages: C/C++ remain the workhorses of automotive software development. Proficiency in these languages along with experience in scripting languages like Python for automation will be highly valuable.

  • Networking & Diagnostics: Vehicles are increasingly interconnected. Familiarity with communication protocols like CAN bus and knowledge of diagnostic tools will allow you to troubleshoot and debug complex software issues.

Expect this segment to evolve rapidly as automakers incorporate new software and technology into future generations of vehicles, and (in the case of companies like Uber and Lyft) figure out how to leverage data for ever-deeper insights into how people move around. If you’re interested in transportation and software, pursuing a job as an automotive software engineer can prove fulfilling.