Embedded software in the past has required that hardware be in hand to in order to begin any significant software testing. Today software tools such as simulators are available allowing designers to test software in stages before any hardware has been produced. This gives the software (and hardware designers a concurrent design path cutting down on the overall design cycle time.
In the case where both application software and embedded software are required, the software development naturally separates into multiple design paths. If your in-house staff normally handles all the application software, we will work with them to provide a seamless integration between your application and the interfacing hardware and embedded software.
Most embedded software is written in assembly language for the tightest and fastest code execution possible. Higher level languages may be used on request or when the design team deems the application may gain an advantage from its use.