Published on March 4th, 2020 | by Sunit Nandi
0What Will Self-Driving Cars Mean for Software Engineers?
As self-driving car technology rapidly evolves and driverless cars become the norm, software engineers will have to adapt to keep up. Mass implementation of self-driving technology is coming, and the workforce will need software engineers prepared to interface with and develop driverless technology, as well as maintain and update it.
The demand for driverless technology jobs is high, with a 27% increase in demand for these skills in the last year. GM has already announced ADS, or automated driverless technology, ready for mass production.
Image Source: Unsplash
Cybersecurity Knowledge
All driverless cars will need to have encrypted software and cloud technology. This means a background in blockchain is especially useful. In general, software engineers will need to know how to discourage, prevent, block and recover from hacks, both individually and systemwide.
Creating Friendly Technology
Americans still fear self-driving technology. While it can make life better for people with disabilities and reduce burnout by allowing drivers to eventually sleep during their commutes, driverless car technology represents a major change sociologically and psychologically.
At the heart of American industry and independence is the automobile, but ever since Ford applied the assembly line, the industry has looked for less expensive, more productive ways to create cars that meet the needs and demands of consumers. Many Americans see cars as indicative of their ability to control their own lives and destination, and it is assumed scores that driverless cars might take away from that freedom.
We know technology is rapidly evolving all around us, but to see fleets of self-driving cars is going to feel jarring and unsettling for many. To ease this gap, initial software engineers will have to ensure that driverless auto user interfaces are particularly friendly, as the result of user-centered design. They will need to measure and meet expectations, which may look like a GPS whose voice you can change to an integrated extension of Siri or Alexa, ready to tell you about the packages waiting for you at your house as it drives you home from work.
Telematics can help provide oversight and safety for cars, specifically vehicle fleets owned by businesses. Whether a driver is human or machine, telematics allows fleet supervisors to monitor the behavior of the driver, the vehicles and even the amount of fuel consumed per trip. In particular, telematics emphasizes the communication between the on-the-ground vehicle and the entity or person in charge. Using this technology could facilitate a smoother, safer transition to a self-driving workforce by providing data and various monitoring points.
Self-Improving Artificial Intelligence
Most people already know about the friendly neighborhood Google algorithm, which helps us find things on the web. More than that, the algorithm’s purpose is to please the user. It also has self-teaching technology, meaning it evolves and teaches itself to accomplish the goal of pleasing the user.
Just as Google teaches itself, so may other forms of automated technology in the near future, including driverless cars. This means software engineers may need to put shutdown mechanisms and safeguards in place; it also means that, despite the stability of a career in technology, the artificial intelligence they create could actually put them out of jobs.
Environmentally Sound Technology
Image Source: Unsplash
With many consumers focusing heavily on environmentalism and reversing the damage we have done to the planet, software engineers should develop driverless technology software in a way that helps the environment and shows human users what it is capable of.
For example, automated Uber technology that involves sharing rides (formerly known as “Uber Pool”) could reveal metrics about the environmental impact of its shared ride services.
Software Integration
While cars have featured integrated software for decades, it’s a new era with driverless technology. Software engineers won’t simply have to create and implement software: they’ll have to work with hardware engineers to connect the software interface with the car (and likely other technologies).
Want Alexa to preheat the oven, turn on the lights, queue up the next episode of a TV show, change the temperature or even run a warm bath just in time for your arrival at home? That’s an integrated software solution, and depending on the technologies involved, each car could have hundreds of them.
Simulated Environment Testing
Like most software, self-driving technology requires rigorous testing. The standards are even higher here, as lives are at stake. This means the ability to test or provide testing environments will increase in rapid demand.
Facilities that allow for testing need engineers who can assist software developers from the hundreds of driverless technology startups when it comes time to plug and play. This is just one of many routes a safety-focused software engineer could take.
Law-Friendly Programming
The legal aspects of self-driving technology vary from state to state, just like other driving laws. Software engineers must cope with that, ensuring automated technology obeys local laws based on locations. In some cases, full automation may be allowed in one state, but not the neighboring state. In those instances, the driverless car’s software must execute properly to ensure it follows laws.
Additionally, driverless cars must be able to comply with law enforcement and sudden changes, such as road closures. What happens when a human police officer pulls an automated car over? Software engineers need to make that call.
While forging new ground with automated technology, new laws also ensure auto manufacturers comply with every new precedent set. GM’s software engineers work rigorously to ensure the compliance of their 2019 fleet.
Software With Morals
Image Source: Unsplash
Most challenging of all is the moral dilemma of driverless software and other technology. How does a machine calculate whether it should hit a parked car or an animal in the street, given only those choices? While a human is often not as accurate as a machine, the human will usually make the choice to hit the parked car in this scenario based upon a simple but easy moral decision. A machine, if it doesn’t value the animal’s life, may choose differently, and that can become an ethical dilemma quite rapidly.
If a self-driving car does hit a person or object, who is liable? The driver? The manufacturer of the car? The software engineer who programmed it? These questions have yet to be fully answered, and only time and experience will shape these laws.
Software engineers need to program in a way that handles this and other moral challenges. This is perhaps one of the most fascinating and difficult aspects of programming self-driving technology.
Overall, software engineers will need the finite skill of putting the human touch into the technology they program. It’s not just about making life easier for people, but easing them into the technology, addressing their concerns, and answering questions the way they’ve gotten used to computer interfaces doing.
For a skilled software engineer heading into self-driving technology, jobs are plentiful for now, and it’s a solid, lucrative field until the self-teaching technology outpaces what we can do.