The autotech industry is abuzz with the possibilities for AVs as well as the challenges developers face in making the dream a reality.
Margaret Toohey didn’t actually start in software development – she completed a degree in physics and has since moved into a senior software development role at Jaguar Land Rover (JLR).
Of course, the bedrock of problem-solving and abstract logic that Toohey gained in her degree has served her incredibly well and made picking up the programming elements of her job straightforward.
Yet in many ways, even those coming from a software development background will still find they need to upskill and innovate to keep pace with the rapid evolution of autonomous vehicle (AV) technology and the variety of difficult obstacles in the path of making what once seemed a heady sci-fi dream a reality.
What is your role within Jaguar Land Rover?
I work as a senior software developer in the automated driving department, working on the AI/algorithms team.
If there is such a thing, can you describe a typical day in the job?
Every day is different; some days I work mainly at my desk, some days I could be testing in the cars.
A pretty typical day would start with catching up on emails, and then our daily team meeting to chat about our current tasks and anything blocking us completing our work.
The next few hours would be at my desk, prototyping and generating data. After lunch, I would test the prototype code, or go out and test the software in the car if needs be.
Depending on how testing went, the code would be reworked then to improve it. Software development can be quite iterative, so it could take a few cycles of coding-testing-reworking before it’s done.
What types of project do you work on?
We work on traditional algorithms and machine-learning approaches for all the layers in the automated driving stack: perception, fusion, path-planning and motion control.
What skills do you use on a daily basis?
Apart from coding skills (my main experience would be in C and C++ but I’d use MATLAB and Python for prototyping), I think critical thinking and problem-solving would be the skills I use most. I’d also use data analysis and reporting skills quite a bit.
Teamwork is really important, too. Being able to work well with your team and meet deadlines not only makes work life more pleasant, but helps with knowledge transfer and exchange of ideas, and generally leads to more productive work.
Honestly though, I think the main skill a software developer needs is patience because testing, finding and fixing bugs can take a lot of time.
What is the hardest part of your working day?
The hardest part of my day would be when a model or simulation or something I’ve been working on for some time just will not work as expected. It can be frustrating sometimes but having a good team to bounce ideas or issues off helps keep me sane.
Do you have any productivity tips that help you through the working day?
I know everyone says it but coffee breaks are vital. Well, coffee/tea/water/juice breaks. I think getting away from the desk and getting some air or a change of scenery for a few minutes can help clear your head and give a fresh perspective, which can lead to better productivity.
When you first started this job, what were you most surprised to learn was important in the role?
The main thing I focused on when starting to work as a software developer was coding skills (I studied physics in university so was not trained as a developer), but I think problem-solving is a skill that is far more important to the role than I expected.
Being able to find different ways to approach problems is really important, particularly in automated driving, which is quite a cutting-edge sector.
How has the role of software developer changed as this sector has grown and evolved?
Automated driving software is possibly one of the best examples of a sector that is growing and evolving rapidly right now. Sensors (camera, radar, lidar, ultrasonics etc) are continually evolving and we see more and more sensors getting put on to cars.
The compute power available to process the huge volume of data is increasing and that, along with cloud services, means the automotive industry is in a position to do some really cool stuff with all that data. So, I would say the role of software developers in automotive has become more exciting as the sector has evolved.
What do you enjoy most about being a software developer?
I really enjoy how varied the job is. Apart from coding and sensor modelling, I get hands-on experience with hardware, like the sensors, and also get to drive the cars for testing and data capture etc. Getting to test in cars like the Jaguar F-Type and the Range Rover is also a fun aspect of the job.
Want to work at Jaguar Land Rover? Check out the Jaguar Land Rover Careers page for current vacancies.