Not 100% sure how to frame this question but here goes…
I currently work as a Rails developer but want to work on more substancial / “meaty” projects and have always been very interested in embedded systems, especially systems that run on aircraft and especially submarines…..I know strange combination.
I have been doing some searching & found lockheed martin produces a lot of underwater systems for various navys around the world e.g. http://www.naval-technology.com/projects/nssn/
However, there is very little information about what software is used within these systems, what OS’s they use or anything else “technical”, presume there is a lot of C / C++ involved but that is just a guess… so its hard to know where to even begin learning what is required to potential work in these areas.
Just wondering if anyone has any experiance working with or more information about embeddeed systems in either the airline (onboard flight systems) or especially submarine systems?
Thanks!
I used to work as a Hardware/DSP/Software Engineer on sonar systems that were fitted to a number of different submarines (one of the sonar suites that I worked on is in the top centre control room picture here) but have been away from that product domain for a few years now.
I have used a variety of languages in their developments starting with PL/M and then ADA and some C although, the last I heard, the main language used is C++ running on commercial processing boards. At the end of my time working on sonars, intel X86 processors were not being used because they ran too hot and it was impossible to cool them sufficiently. I can’t say what the current processor of choice is. VxWorks or similar operating systems are used.
As to how to get in – read a few adverts for posts in this area and look at the skills that they require. Probably embedded and C++, maybe ADA. Get some experience in this area by getting a processor evaluation board (maybe some form of ARM) building a few little home projects that will allow you to understand interrupt functions and how to use the processor I/O, maybe an embedded OS (FreeRTOS is a good start). This will give you a start on the skills required when writing for a non windows/linux/desktop system.