Os programadores de software investigam, concebem e desenvolvem software para computadores e redes ou programas utilitários especializados. Analisam as necessidades dos utilizadores e desenvolvem soluções de software, aplicando princípios e técnicas da informática, da engenharia e da análise matemática. Actualizam o software ou melhoram as capacidades do software existente. Os programadores de software podem trabalhar com engenheiros de hardware para integrar sistemas de hardware e software e desenvolver especificações e requisitos de desempenho. Podem manter bases de dados dentro de uma área de aplicação, trabalhando individualmente ou coordenando o desenvolvimento de bases de dados como parte de uma equipa.