Profession embedded systems software developer

Embedded systems software developers program, implement, document and maintain software to be run on an embedded system.

Would you like to know what kind of career and professions suit you best? Take our free Holland code career test and find out.

Personality Type

  • Investigative / Conventional

Knowledge

  • Internet of Things

    The general principles, categories, requirements, limitations and vulnerabilities of smart connected devices (most of them with intended internet connectivity).

  • Computer programming

    The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms (e.g. object oriented programming, functional programming) and of programming languages.

  • ICT debugging tools

    The ICT tools used to test and debug programs and software code, such as GNU Debugger (GDB), Intel Debugger (IDB), Microsoft Visual Studio Debugger, Valgrind and WinDbg.

  • Embedded systems

    The computer systems and components with a specialised and autonomous function within a larger system or machine such as embedded systems software architectures, embedded peripherals, design principles and development tools.

  • Tools for software configuration management

    The software programs to perform configuration identification, control, status accounting and audit, such as CVS, ClearCase, Subversion, GIT and TortoiseSVN perform this management.

  • Integrated development environment software

    The suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface, such as Visual Studio or Eclipse.

Skills

  • Develop ICT device driver

    Create a software program that controls the working of an ICT device and its interaction with other applications.

  • Use software design patterns

    Utilise reusable solutions, formalised best practices, to solve common ICT development tasks in software development and design.

  • Develop software prototype

    Create a first incomplete or preliminary version of a piece of software application to simulate some specific aspects of the final product.

  • Utilise computer-aided software engineering tools

    Use software tools (CASE) to support the development lifecycle, design and implementation of software and applications of high-quality that can be easily maintained.

  • Interpret technical texts

    Read and understand technical texts that provide information on how to perform a task, usually explained in steps.

  • Provide technical documentation

    Prepare documentation for existing and upcoming products or services, describing their functionality and composition in such a way that it is understandable for a wide audience without technical background and compliant with defined requirements and standards. Keep documentation up to date.

  • Create flowchart diagram

    Compose a diagram that illustrates systematic progress through a procedure or system using connecting lines and a set of symbols.

  • Debug software

    Repair computer code by analysing testing results, locating the defects causing the software to output an incorrect or unexpected result and remove these faults.

  • Use software libraries

    Utilise collections of codes and software packages which capture frequently used routines to help programmers simplify their work.

  • Analyse software specifications

    Assess the specifications of a software product or system to be developed by identifying functional and non-functional requirements, constraints and possible sets of use cases which illustrate interactions between the software and its users.

Optional knowledge and skills

xcode ansible apl vbscript ml (computer programming) prolog (computer programming) swift (computer programming) kdevelop staf sas language scala assembly (computer programming) python (computer programming) objective-c salt (tools for software configuration management) c++ c# abap integrate system components software anomalies lisp use automatic programming develop creative ideas pascal (computer programming) haskell common lisp eclipse (integrated development environment software) puppet (tools for software configuration management) javascript java (computer programming) world wide web consortium standards perl ict security legislation typescript develop automated migration methods r use object-oriented programming scratch (computer programming) jenkins (tools for software configuration management) openedge advanced business language matlab object-oriented modelling php cobol ruby (computer programming) use logic programming asp.net design user interface visual studio .net apache maven microsoft visual c++ use concurrent programming groovy ajax adapt to changes in technological development plans sap r3 collect customer feedback on applications use functional programming