Hi, I'm Marlon, I'm 24 and I'm a second year software development student. Dreaming big is what I do. Aspiring Creator, Developer, Business owner and tech innovator.
Hi Marcell, hope you are doing well, don't know if you are still active on this platform, but I would like to pick your brain about autonomous driving.
I am a software development student from South Africa, I'm not studying towards a computer science degree rather I'm at a private college that provides practical software training and I get national certificates and international ones as well provided I pass the exams. So far I've covered Python, HTML, CSS, JavaScript, SQL Server, Java and C#. From what I'm reading C++ seems like the main language you need to know for this industry. I finish my studies in June 2022, I don't know if I can go into that field as a junior developer, but it really has peaked my interest and is something I would like to consider. If you could give me any advice on how to get started I would appreciate it alot. What can I do know to prepare myself? Also I see Nvidia has a lot of job openings for this type of role, what other companies should I be looking at, especially in Germany as well?
Thank you.
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
Hi, sorry for the late reply.
Yes, you realized it properly, the main language is C/C++, Python is an advantage. So these are the languages you should learn first. Next to that it's a good idea to learn a bit about robotics.
Regarding companies: there's a a lot of them, like: Bosch, Daimler, BMW, Tesla etc. Practically any OEM. As a beginner you have a better chance to join a smaller company.
Hi, I'm Marlon, I'm 24 and I'm a second year software development student. Dreaming big is what I do. Aspiring Creator, Developer, Business owner and tech innovator.
No problem, and thanks for getting back to me I really appreciate it. One thing I also read up on was the mathematical aspect, especially for AI. I have long since forgotten my high school math and the calculus and algebra I did at University when I left school. How important is it that I know these concepts if I want to be a self driving car engineer?
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
There are different roles in such projects. In case of some of them it's not that necessary, but I you'd like to be really good there, then it's better to fresh up your knowledge.
Hi, I'm Marlon, I'm 24 and I'm a second year software development student. Dreaming big is what I do. Aspiring Creator, Developer, Business owner and tech innovator.
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
Hi, I'm Marlon, I'm 24 and I'm a second year software development student. Dreaming big is what I do. Aspiring Creator, Developer, Business owner and tech innovator.
Ah, okay. At this moment it won't be possible for me to do that, but thank you for answering my questions. For now I'll look for some free resources if there are any.
Are you ever stressed about the fact that one tiny mistake you make could potentially cost (actual) lives?
To what degree would you feel responsible if a car using the software you wrote would be responsible for an accident?
How rigorous is testing done on your project? (both dev testing and QA testing)
Do you have automation testing? If so, how reliable are your tests?
Do you ever submit code that has known issues (regardless of severity) just to meet deadlines?
How do you handle ethical issues, such as the trolley dilemma?(iflscience.com/editors-blog/trolle...)
Is there a special (legal) team that gives you requirements/tasks in this sense? What if you disagree with them (morally)?
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
Basically how these systems and the development is designed it can not be the mistake of only one developer: there are code reviews, there is something called functional safety component, there are multiple levels of tests. So if something is happening that should be the mistake of multiple people. On the other hand of course such things can still happen. But as per now a lot of people are dying in traffic accidents I would be already happy if this number could be strongly decreased by autonomous driving, even if this number will never reach 0.
As I already mentioned it could be never the responsibility of only one developer, it must be a mistake of multiple people. But if so, of course I'm somehow responsible for that. As it is now: in case of most of the driving assistant systems, like emergency brake assistant it is mentioned, that they are not working 100% sure, but also they are strongly decreasing the number of accidents. It's like I'm driving my car on a daily base and of course there's the risk that I'm causing an accident, still I'm doing it.
Right now the most of such projects are still in research phase. That means the cars will be driven only by test drivers, who did certain driving courses before. In this phase the testing is not so strict. In case of safety critical systems going into serial development there are a lot of restrictions on the process, on reviews, on testing on code and on system level. And for safety cases there are even software tricks, like to processors are calculating the same with two different algorithms and if the results are not the same the system is changing into an error state and a lot of other different things.
There are automated tests as well on different levels: unit tests, software in loop, hardware in loop. They are trying to cover all cases, but of course issues can always happen. There is manual testing on the top of that.
Since this topic is still in research mode, yes. But it is always documented what parts are still not working properly and such software should never be published. There are so called software releases which are tested properly.
The whole requirement engineering is a separated team, they are braking the high level requirements and use cases on smaller, component level requirements. So me as a developer I'm never taking such decisions. And as it is right now, the development is really concentrated on more common use cases, like overtaking, handling traffic lights, changing lanes properly and so on. In this phase such corner cases are not really analysed yet. On the other hand in such (really rare) situation you as a driver of a car needs to make you own decision as well. Have you ever thinking about what would be your decision in such a case?
Thanks for taking the time to answer all my questions. It probably took you a while to write all those answers :)
I just have 3 things to add:
"In this phase such corner cases are not really analyzed yet" - corner cases that are deferred for later usually end up at the bottom of a backlog and will be forgotten by time. While that usually works for "regular" software, I would opt for a more rigorous approach in your case, since the software you're developing is, quite literally, a matter of life and death.
"you as a driver of a car needs to make you own decision as well. Have you ever thinking about what would be your decision in such a case?"
That's precisely the problem. When it's my decision and my decision alone, then it's on me.
But when a fully autonomous car makes a decision like that, then I'm not ok with living with the guilt of a decision I didn't make.
That's why these moral issues are so delicate and should be analyzed thoroughly before implementing anything.
"So me as a developer I'm never taking such decisions"
Just some friendly advice, be very careful with that.
You may think that "you're just following orders", but that exactly what the developers from Volkswagen thought when they wrote the software that tricked the pollution tests. And one them went to jail for that: bbc.com/news/business-41053740.
Thanks again for taking the time to answer my questions.
hello right now, I just start to find a job after the graduation. And I got an interview for the position software developer for testing system on autonomous driving. But I am confused and had no experience before. So could you take some time to help me about what kind of things or skills I need to prepare for this job interview. I have already searched a lot but still not so clear about this job. For a new graduate, can you give me some advice about that. sooooo thank you in advance.
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
Hi, it is difficult to answer your question without a job description, because it can have several meaning. Based on its name it is supposed to be some the development of a simulation or test automatisation tool. So it is like normal tool development. But it is unclear which language/technologies are they using.
Hi, thanks again. Since the company is located in Berlin and the main language used here is c++. Referring to the job description, the responsibilities of this job is to develop modular software to secure driver assistance systems. The tasks also include analyzing the requirements with the team and design the architecture and interfaces. It is also required for this job to integrate hardware, such as sensors for detecting the environment, and software systems like for recording data and web service. All the development is completed in agile team. For the requirement of applicants, experience about ADTF or ROS is ideal necessary.
Lot of new things seems to me. Can you give some tipps.
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
Well, then it sounds rather like to work on the real AD code.
It requires a complex knowledge, but since you are a junior, I hope the expectations are also like that.
What you can do:
-Read about scrum
-Read through everything what you know about c++ (especially topics like smart ptrs, templates, virtual classes)
-Go through this ROS tutorial: wiki.ros.org/ROS/Tutorials
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
First of all the different sensors can replace each other in some cases. Like for example in case of heavy rain you can not rely on camera, but the radar/lidar is enough etc.
On the otherhand in case of sensor errors, the system is going into a so called degradation mode, it's up to the type of the degradation it is either introducing some limitations into the functionality, or disabling it. In the second case of course as far as possible the car is bringing itself into a safe state, like stopping.
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
It is difficult to give a clear answer, because this area is changing extremely fast.
One thing is sure: software has a more and more important role in this field.
So the only thing I can suggest is to learn programming as much as you can. Go to the university and study something connecting to programming (computer science, computer engineering, software engineering) and then apply to automotive companies. I think this will be the right way. Good luck!
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
Mainly C++, but for prototyping and tooling Python is used as well
It is really a huge project with over 100 engineers working on that, with very different roles: system engineers, product owners, software engineers, test engineers etc.
I have a feeling that if an autonomous car is built to work in extremely crowded and not very well defined roads, it would work anywhere better. How far from reality am I?
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
I'm not sure if I understand you correctly. But of course the city scenarios are the most complicated ones. But there can be some other tricky situations as well: difficult weather conditions (fog, heavy rain, snowy road surface) or for example a road construction.
What do you think will be the timeline before autonomous cars become commonplace on the roads? And, how long do you think before the majority of cars are autonomous?
Hi,
I'm a software developer with around 5 years experience. Currently I'm mainly focusing on software architecture, technical project leading, programmer soft skills and blogging.
Here I'm a bit pessimistic. Most of the companies are planning the first serial production for the upcoming 5-7 years, but I think it will take a bit longer. But once it will be introduced I think it will become quite fast popular and since most of the new cars today already have most of the sensors (they have front camera, back camera, radar, ultrasonic sensors) only the software needs to be changed strongly I don't expect too high prices. On the other hand there are different levels of autonomous driving. Features like highway pilot or traffic jam assistant are already almost perfect.
Top comments (26)
Hi Marcell, hope you are doing well, don't know if you are still active on this platform, but I would like to pick your brain about autonomous driving.
I am a software development student from South Africa, I'm not studying towards a computer science degree rather I'm at a private college that provides practical software training and I get national certificates and international ones as well provided I pass the exams. So far I've covered Python, HTML, CSS, JavaScript, SQL Server, Java and C#. From what I'm reading C++ seems like the main language you need to know for this industry. I finish my studies in June 2022, I don't know if I can go into that field as a junior developer, but it really has peaked my interest and is something I would like to consider. If you could give me any advice on how to get started I would appreciate it alot. What can I do know to prepare myself? Also I see Nvidia has a lot of job openings for this type of role, what other companies should I be looking at, especially in Germany as well?
Thank you.
Hi, sorry for the late reply.
Yes, you realized it properly, the main language is C/C++, Python is an advantage. So these are the languages you should learn first. Next to that it's a good idea to learn a bit about robotics.
Regarding companies: there's a a lot of them, like: Bosch, Daimler, BMW, Tesla etc. Practically any OEM. As a beginner you have a better chance to join a smaller company.
No problem, and thanks for getting back to me I really appreciate it. One thing I also read up on was the mathematical aspect, especially for AI. I have long since forgotten my high school math and the calculus and algebra I did at University when I left school. How important is it that I know these concepts if I want to be a self driving car engineer?
There are different roles in such projects. In case of some of them it's not that necessary, but I you'd like to be really good there, then it's better to fresh up your knowledge.
Alright, thank you. Do you have any advice on which projects I should focus on for my portfolio, to get a job in this industry.
It costs some money, but I can really propose you the Self Driving Cars nanodegree of Udacity. That gives a really good overview on this domain.
Ah, okay. At this moment it won't be possible for me to do that, but thank you for answering my questions. For now I'll look for some free resources if there are any.
Hi,
I try to answer all your points:
Basically how these systems and the development is designed it can not be the mistake of only one developer: there are code reviews, there is something called functional safety component, there are multiple levels of tests. So if something is happening that should be the mistake of multiple people. On the other hand of course such things can still happen. But as per now a lot of people are dying in traffic accidents I would be already happy if this number could be strongly decreased by autonomous driving, even if this number will never reach 0.
As I already mentioned it could be never the responsibility of only one developer, it must be a mistake of multiple people. But if so, of course I'm somehow responsible for that. As it is now: in case of most of the driving assistant systems, like emergency brake assistant it is mentioned, that they are not working 100% sure, but also they are strongly decreasing the number of accidents. It's like I'm driving my car on a daily base and of course there's the risk that I'm causing an accident, still I'm doing it.
Right now the most of such projects are still in research phase. That means the cars will be driven only by test drivers, who did certain driving courses before. In this phase the testing is not so strict. In case of safety critical systems going into serial development there are a lot of restrictions on the process, on reviews, on testing on code and on system level. And for safety cases there are even software tricks, like to processors are calculating the same with two different algorithms and if the results are not the same the system is changing into an error state and a lot of other different things.
There are automated tests as well on different levels: unit tests, software in loop, hardware in loop. They are trying to cover all cases, but of course issues can always happen. There is manual testing on the top of that.
Since this topic is still in research mode, yes. But it is always documented what parts are still not working properly and such software should never be published. There are so called software releases which are tested properly.
The whole requirement engineering is a separated team, they are braking the high level requirements and use cases on smaller, component level requirements. So me as a developer I'm never taking such decisions. And as it is right now, the development is really concentrated on more common use cases, like overtaking, handling traffic lights, changing lanes properly and so on. In this phase such corner cases are not really analysed yet. On the other hand in such (really rare) situation you as a driver of a car needs to make you own decision as well. Have you ever thinking about what would be your decision in such a case?
Thanks for taking the time to answer all my questions. It probably took you a while to write all those answers :)
I just have 3 things to add:
"In this phase such corner cases are not really analyzed yet" - corner cases that are deferred for later usually end up at the bottom of a backlog and will be forgotten by time. While that usually works for "regular" software, I would opt for a more rigorous approach in your case, since the software you're developing is, quite literally, a matter of life and death.
"you as a driver of a car needs to make you own decision as well. Have you ever thinking about what would be your decision in such a case?"
That's precisely the problem. When it's my decision and my decision alone, then it's on me.
But when a fully autonomous car makes a decision like that, then I'm not ok with living with the guilt of a decision I didn't make.
That's why these moral issues are so delicate and should be analyzed thoroughly before implementing anything.
Just some friendly advice, be very careful with that.
You may think that "you're just following orders", but that exactly what the developers from Volkswagen thought when they wrote the software that tricked the pollution tests. And one them went to jail for that: bbc.com/news/business-41053740.
Thanks again for taking the time to answer my questions.
Best of luck in the future!
hello right now, I just start to find a job after the graduation. And I got an interview for the position software developer for testing system on autonomous driving. But I am confused and had no experience before. So could you take some time to help me about what kind of things or skills I need to prepare for this job interview. I have already searched a lot but still not so clear about this job. For a new graduate, can you give me some advice about that. sooooo thank you in advance.
Hi, it is difficult to answer your question without a job description, because it can have several meaning. Based on its name it is supposed to be some the development of a simulation or test automatisation tool. So it is like normal tool development. But it is unclear which language/technologies are they using.
Hi, thanks again. Since the company is located in Berlin and the main language used here is c++. Referring to the job description, the responsibilities of this job is to develop modular software to secure driver assistance systems. The tasks also include analyzing the requirements with the team and design the architecture and interfaces. It is also required for this job to integrate hardware, such as sensors for detecting the environment, and software systems like for recording data and web service. All the development is completed in agile team. For the requirement of applicants, experience about ADTF or ROS is ideal necessary.
Lot of new things seems to me. Can you give some tipps.
Well, then it sounds rather like to work on the real AD code.
It requires a complex knowledge, but since you are a junior, I hope the expectations are also like that.
What you can do:
-Read about scrum
-Read through everything what you know about c++ (especially topics like smart ptrs, templates, virtual classes)
-Go through this ROS tutorial: wiki.ros.org/ROS/Tutorials
thanks a lot. It really gives me a instruction to prepare for.
How are the vehicles programmed to behave if they loose one or more sensors while in motion/driving?
For example: if a autonomous car loses its front facing camera, can it take appropriate action without intervention from the driver?
First of all the different sensors can replace each other in some cases. Like for example in case of heavy rain you can not rely on camera, but the radar/lidar is enough etc.
On the otherhand in case of sensor errors, the system is going into a so called degradation mode, it's up to the type of the degradation it is either introducing some limitations into the functionality, or disabling it. In the second case of course as far as possible the car is bringing itself into a safe state, like stopping.
How can i become an autonomous vehicle engineer if my current age is 15 years
Hi,
It is difficult to give a clear answer, because this area is changing extremely fast.
One thing is sure: software has a more and more important role in this field.
So the only thing I can suggest is to learn programming as much as you can. Go to the university and study something connecting to programming (computer science, computer engineering, software engineering) and then apply to automotive companies. I think this will be the right way. Good luck!
What programming language do you use ?
How big is your team and what are the members of your team.
Do you use agile? e.g. scrum
I have a feeling that if an autonomous car is built to work in extremely crowded and not very well defined roads, it would work anywhere better. How far from reality am I?
I'm not sure if I understand you correctly. But of course the city scenarios are the most complicated ones. But there can be some other tricky situations as well: difficult weather conditions (fog, heavy rain, snowy road surface) or for example a road construction.
What do you think will be the timeline before autonomous cars become commonplace on the roads? And, how long do you think before the majority of cars are autonomous?
Here I'm a bit pessimistic. Most of the companies are planning the first serial production for the upcoming 5-7 years, but I think it will take a bit longer. But once it will be introduced I think it will become quite fast popular and since most of the new cars today already have most of the sensors (they have front camera, back camera, radar, ultrasonic sensors) only the software needs to be changed strongly I don't expect too high prices. On the other hand there are different levels of autonomous driving. Features like highway pilot or traffic jam assistant are already almost perfect.
I love to do work in IT field How To Make Someone Miss You