Profession software developer

Software developers implement or program all kinds of software systems based on specifications and designs by using programming languages, tools, and platforms.

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 / Realistic
  • Investigative / Conventional

Knowledge

  • Technical drawings

    Drawing software and the various symbols, perspectives, units of measurement, notation systems, visual styles and page layouts used in technical drawings.

  • 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.

  • Engineering processes

    The systematic approach to the development and maintenance of engineering systems.

  • Engineering principles

    The engineering elements like functionality, replicability, and costs in relation to the design and how they are applied in the completion of engineering projects.

  • 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.

  • Project management

    Understand project management and the activities which comprise this area. Know the variables implied in project management such as time, resources, requirements, deadlines, and responding to unexpected events.

  • 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.

  • 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

  • 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.

  • Use technical drawing software

    Create technical designs and technical drawings using specialised software.

  • Create flowchart diagram

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

  • Use software design patterns

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

  • 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.

  • 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.

  • Interpret technical requirements

    Analyse, understand and apply the information provided regarding technical conditions.

  • Use software libraries

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

  • Define technical requirements

    Specify technical properties of goods, materials, methods, processes, services, systems, software and functionalities by identifying and responding to the particular needs that are to be satisfied according to customer requirements.

  • Identify customer requirements

    Apply techniques and tools, such as surveys, questionnaires, ICT applications, for eliciting, defining, analysing, documenting and maintaining user requirements from system, service or product.

  • 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.

  • Perform scientific research

    Gain, correct or improve knowledge about phenomena by using scientific methods and techniques, based on empirical or measurable observations.

  • 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.

  • Manage engineering project

    Manage engineering project resources, budget, deadlines, and human resources, and plan schedules as well as any technical activities pertinent to the project.

  • Develop automated migration methods

    Create automated transfer of ICT information between storage types, formats and systems to save human resources from performing the task manually.

Optional knowledge and skills

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