Infocomm TechnologyInformation and communications technology professionalsISCO 2512
software developer
Software developers implement or program all kinds of software systems based on specifications and designs by using programming languages, tools, and platforms.
Do You Have the Skills for This Role?
Core competency requirements inferred from the occupation's skill profile. Take the free assessment to see how you match.
Must-Have Skills (Advanced)
Problem SolvingAdvanced
CommunicationAdvanced
CollaborationAdvanced
Digital FluencyAdvanced
Developing PeopleAdvanced
Self ManagementAdvanced
Supporting Skills
Creative ThinkingIntermediate
Customer OrientationBasic
European Skills Framework
Skills and knowledge areas required for this occupation based on European classification.
Essential (22)
engineering principlesengineering principlesThe engineering elements like functionality, replicability, and costs in relation to the design and how they are applied in the completion of engineering projects.computer programmingcomputer programmingThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms (e.g. object oriented programming, functional programming) a...technical drawingstechnical drawingsDrawing software and the various symbols, perspectives, units of measurement, notation systems, visual styles and page layouts used in technical drawings.ICT debugging toolsICT debugging toolsThe 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.project managementproject managementThe discipline of project management, the activities which comprise this area and the variables implied in it, such as time, resources, requirements, deadlines, and responding to unexpected events.integrated development environment softwareintegrated development environment softwareThe 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.web servicesweb servicesXML-based information systems that allows for direct interactions between applications through Internet. It is a set of protocols for transferring data between applications and systems.use an application-specific interfaceuse an application-specific interfaceUnderstand and use interfaces particular to an application or use case.develop automated migration methodsdevelop automated migration methodsCreate automated transfer of ICT information between storage types, formats and systems to save human resources from performing the task manually.identify customer requirementsidentify customer requirementsApply techniques and tools, such as surveys, questionnaires, ICT applications, for eliciting, defining, analysing, documenting and maintaining user requirements from system, service or product.utilise computer-aided software engineering toolsutilise computer-aided software engineering toolsUse software tools (CASE) to support the development lifecycle, design and implementation of software and applications of high-quality that can be easily maintained.debug softwaredebug softwareRepair 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 design patternsuse software design patternsUtilise reusable solutions, formalised best practices, to solve common ICT development tasks in software development and design.perform scientific researchperform scientific researchGain, correct or improve knowledge about phenomena by using scientific methods and techniques, based on empirical or measurable observations.use technical drawing softwareuse technical drawing softwareCreate technical designs and technical drawings using specialised software.manage engineering projectmanage engineering projectManage engineering project resources, budget, deadlines, and human resources, and plan schedules as well as any technical activities pertinent to the project.develop software prototypedevelop software prototypeCreate a first incomplete or preliminary version of a piece of software application to simulate some specific aspects of the final product.use software librariesuse software librariesUtilise collections of codes and software packages which capture frequently used routines to help programmers simplify their work.create flowchart diagramcreate flowchart diagramCompose a diagram that illustrates systematic progress through a procedure or system using connecting lines and a set of symbols.interpret technical requirementsinterpret technical requirementsAnalyse, understand and apply the information provided regarding technical conditions.define technical requirementsdefine technical requirementsSpecify 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 acc...analyse software specificationsanalyse software specificationsAssess 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 interac...
Optional (83)
HaskellHaskellThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Haskell.KDevelopKDevelopThe computer program KDevelop is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is devel...ErlangErlangThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Erlang.SAS languageSAS languageThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAS language.Ruby (computer programming)Ruby (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Ruby.Common LispCommon LispThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Common Lisp.Apache MavenApache MavenThe tool Apache Maven is a software program to perform configuration identification, control, status accounting and audit of software during its development and maintenance.LispLispThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Lisp.Apache TomcatApache TomcatThe open-source web server Apache Tomcat provides a Java web server environment which uses a built in container where HTTP requests are loaded, allowing the Java web applications to run on local and s...Visual BasicVisual BasicThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Visual Basic.screen readerscreen readerSoftware program which converts screen elements such as text, images, or buttons, displayed in the computer into Braille or speech. Assistive technology used by visually impaired or blind people to in...defence standard proceduresdefence standard proceduresMethods and procedures typical for defence applications such as the NATO Standardization Agreements or STANAGs
Standard definitions of the processes, procedures, terms, and conditions for common milit...Java (computer programming)Java (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Java.DrupalDrupalThe open-source web-based software system written in PHP, used for creating, editing, publishing and archiving blogs, articles, web pages or press releases, which requires a higher level of technical ...software frameworkssoftware frameworksThe software development environments or tools used to improve the efficiency of new software development by providing specific features that support and guide the development.Prolog (computer programming)Prolog (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Prolog.OpenEdge Advanced Business LanguageOpenEdge Advanced Business LanguageThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in OpenEdge Advanced Business Language.blockchain opennessblockchain opennessThe different levels of openness of a blockchain, their differences, and their advantages and disadvantages. Examples are permissionless, permissioned, and hybrid blockchains.JavaScriptJavaScriptThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in JavaScript.PerlPerlThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Perl.Smalltalk (computer programming)Smalltalk (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Smalltalk.PHPPHPThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in PHP.software anomaliessoftware anomaliesThe deviations of what is standard and exceptional events during software system performance, identification of incidents that can alter the flow and the process of system execution.XcodeXcodeThe computer program Xcode is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is develope...Assembly (computer programming)Assembly (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Assembly.C#C#The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C#.RRThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in R.GroovyGroovyThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Groovy.ASP.NETASP.NETThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ASP.NET.cyber attack counter-measurescyber attack counter-measuresMethods, technologies and techniques used to defend (detect, monitor and recover) against cyber attacks. These cyber attacks include several attack vectors such as malware, denial of service (DoS) att...APLAPLThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in APL.object-oriented modellingobject-oriented modellingThe object-oriented paradigm, which is based on classes, objects, methods and interfaces and their application in software design and analysis, programming organisation and techniques.Puppet (tools for software configuration management)Puppet (tools for software configuration management)The tool Puppet is a software program to perform configuration identification, control, status accounting and audit.data visualisation softwaredata visualisation softwareA computer tool or application that creates a graphical and visual representation of data, allowing a better understanding and interpretation of complex data through visual elements such as maps, char...smart contractsmart contractA software program in which the terms of a contract or transaction are directly coded. Smart contracts are executed automatically upon fulfilment of the terms and therefore require no third party to o...STAFSTAFThe tool STAF is a software program to perform configuration identification, control, status accounting and audit.Eclipse (integrated development environment software)Eclipse (integrated development environment software)The computer program Eclipse is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is develo...WordPressWordPressThe open-source web-based software systems used for creating, editing, publishing and archiving blogs, articles, web pages or press releases which are mostly managed by users with limited web programm...AnsibleAnsibleThe tool Ansible is a software program to perform configuration identification, control, status accounting and audit.NoSQLNoSQLThe Not Only SQL non-relational database used for creating, updating and managing large amounts of unstructured data stored in the cloud.ICT security legislationICT security legislationThe set of legislative rules that safeguards information technology, ICT networks and computer systems and legal consequences which result from their misuse. Regulated measures include firewalls, intr...Microsoft Visual C++Microsoft Visual C++The computer program Visual C++ is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is dev...TypeScriptTypeScriptThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in TypeScript.World Wide Web Consortium standardsWorld Wide Web Consortium standardsThe standards, technical specifications and guidelines developed by the international organisation World Wide Web Consortium (W3C) which allow the design and development of web applications.Oracle Application Development FrameworkOracle Application Development FrameworkThe Java framework software development environment which provide specific features and components (such as enhanced reusability features, visual and declarative programming) that support and guide en...Ajax FrameworkAjax FrameworkThe Ajax software development environments which provide specific features and components that support and guide web applications development.blockchain platformsblockchain platformsThe different integrated infrastructures, each with their own characteristics, that allow the development of blockchain applications. Examples are multichain, ehtereum, hyperledger, corda, ripple, ope...CoffeeScriptCoffeeScriptThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in CoffeeScript.Objective-CObjective-CThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Objective-C.JavaScript FrameworkJavaScript FrameworkThe JavaScript software development environments which provide specific features and components ( such as HTML generation tools, Canvas support or Visual design) that support and guide JavaScript web ...ML (computer programming)ML (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ML.IBM WebSphereIBM WebSphereThe application server IBM WebSphere provides flexible and secure Java EE runtime environments to support application infrastructure and deployments.SPARKSPARKThe Java micro framework software development environment which provide specific features and components that support and guide web applications development.AJAXAJAXThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in AJAX.C++C++The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C++.trading softwaretrading softwareThe finance and trading integrated software solutions.SAP R3SAP R3The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAP R3.Swift (computer programming)Swift (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Swift.MATLABMATLABThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in MATLAB.Salt (tools for software configuration management)Salt (tools for software configuration management)The tool Salt is a software program to perform configuration identification, control, status accounting and audit.Python (computer programming)Python (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Python.Scratch (computer programming)Scratch (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scratch.VBScriptVBScriptThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in VBScript.COBOLCOBOLThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in COBOL.Pascal (computer programming)Pascal (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Pascal.ABAPABAPThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ABAP.Internet of ThingsInternet of ThingsThe general principles, categories, requirements, limitations and vulnerabilities of smart connected devices (most of them with intended internet connectivity).Jenkins (tools for software configuration management)Jenkins (tools for software configuration management)The tool Jenkins is a software program to perform configuration identification, control, status accounting and audit of software during its development and maintenance.ScalaScalaThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scala.migrate existing datamigrate existing dataApply migration and conversion methods for existing data, in order to transfer or convert data between formats, storage or computer systems.use concurrent programminguse concurrent programmingUtilise specialised ICT tools to create programs that can execute concurrent operations by splitting programs into parallel processes and, once computed, combining the outcomes together.use logic programminguse logic programmingUtilise specialised ICT tools to create computer code composed of series of sentences in logical form, expressing rules and facts about some problem domain. Use programming languages which support thi...do cloud refactoringdo cloud refactoringOptimise application to best use cloud services and features, migrate existing application code to run on cloud infrastructure.use object-oriented programminguse object-oriented programmingUtilise specialised ICT tools for programming paradigm based on the concept of objects, which can contain data in the form of fields and code in the form of procedures. Use programming languages which...collect customer feedback on applicationscollect customer feedback on applicationsGather a response and analyse data from customers to identify requests or problems in order to improve applications and overall customer satisfaction.use query languagesuse query languagesRetrieve information from a database or information system using computer languages designed for the retrieval of data.use automatic programminguse automatic programmingUtilise specialised software tools to generate computer code from specifications, such as diagrams, structured informations or other means of describing functionality.utilise machine learningutilise machine learningUse techniques and algorithms that are able to extract mastery out of data, learn from it and make predictions, to be used for program optimisation, application adaptation, pattern recognition, filter...develop creative ideasdevelop creative ideasDeveloping new artistic concepts and creative ideas.use functional programminguse functional programmingUtilise specialised ICT tools to create computer code which treats computation as the evaluation of mathematical functions and seeks to avoid state and mutable data. Use programming languages which su...integrate system componentsintegrate system componentsSelect and use integration techniques and tools to plan and implement integration of hardware and software modules and components in a system.adapt to changes in technological development plansadapt to changes in technological development plansModify the current design and development activities of technological projects to meet changes in requests or strategies. Ensure that the organisation's or client's needs are met and that any sudden r...design user interfacedesign user interfaceCreate software or device components which enable interaction between humans and systems or machines, using appropriate techniques, languages and tools so as to streamline interaction while using the ...
Related Occupations
Other occupations in the Other category that share similar skill requirements.
AI Replacement Risk
65/ 100
High Risk
Low riskHigh risk