We can supply quality code to your specification. From a driver for a bespoke hardware interface to a fully automated system, we will work closely with your engineers to provide the necessary solution. We design using UML and will provide full documentation. Importantly, our software engineers understand hardware! This greatly improves communication and productivity.

  • Specification

When designing a system we will work closely with you to draw up a list of requirements and from this we will prepare a software specification. Once the specification has been agreed by both parties we will start the design process.

  • Design

Where possible we use Object Orientation to produce code that is maintainable and reuseable. For all OO designs we use UML (Unified Modelling Language) as our standard for visualisation and documentation.  This allows us to adjust and hone the design before we write any code.  We also use proven design patterns if applicable. You may choose to have your engineers involved at this stage if they will work on the system in future.

  • Code

Having finalised the design of your system, the coding process is usually straightforward. For the majority of applications we use C / C++ for control code on PC platforms ( MS Windows, Linux).  We generally use C, C++ and assembler for embedded systems.  On Windows platforms we use C++, Visual C# or (.Net) for user interfaces and some non real time control code.

  • Test

Testing can be conducted after coding using test cases written against the requirements.  Alternatively, TDD (test driven development) can be employed for iterative testing during the design/coding phase.

software skills checklist

High Level Operating Systems: 

  • Windows, Windows Embedded Standard and CE
  • Linux
  • UNIX

Embedded Systems:

  • ARM Cortex
  • ST range of Microcontrollers
  • Microchip PIC and dsPIC range
  • Microchip MPLAB / HiTEC PICC Compiler
  • Motorola PowerPC
  • Freescale HCS12
  • Green Hills
  • Multi IDE
  • Express Logic ThreadX

I/O and Peripherals

  • CAN bus ( CANOpen / DeviceNet )
  • SPI bus ( Serial Peripheral Interface )
  • I2C bus ( Inter - IC)
  • RS 232, 422, 485
  • Other Serial Data buses ( e.g. Aircraft data buses - Arinc 429)
  • Proprietary Parallel and Legacy buses ( HSD, DR11-W )

Programming Languages: 

  • C, C++, SQL
  • C#, Visual Basic.NET and VB6
  • Microcontroller / DSP / Embedded code
  • Legacy (FORTRAN, Borland Turbo C++ etc)


  • DO-178B Certification (Aviation)
  • IEC 60601-1 (Medical)
  • IEC 1508 (SIL) (Industrial) 


  • Real time embedded and PC applications
  • Real-world interfacing
  • Device Drivers (Windows, Linux, RTX)
  • Multi-threaded applications
  • I/O heavy applications
  • SQL and other Databases




Real Time Computing Ltd