Các nhà phát triển phần mềm nghiên cứu, thiết kế và phát triển phần mềm máy tính và mạng hoặc các chương trình tiện ích chuyên dụng. Họ phân tích nhu cầu của người dùng và phát triển các giải pháp phần mềm, áp dụng các nguyên tắc và kỹ thuật của khoa học máy tính, kỹ thuật và phân tích toán học. Họ cập nhật phần mềm hoặc nâng cao khả năng phần mềm hiện có. Các nhà phát triển phần mềm có thể làm việc với các kỹ sư phần cứng máy tính để tích hợp các hệ thống phần cứng và phần mềm và phát triển các thông số kỹ thuật và yêu cầu về hiệu suất. Họ có thể duy trì cơ sở dữ liệu trong một lĩnh vực ứng dụng, làm việc riêng lẻ hoặc phối hợp phát triển cơ sở dữ liệu như một phần của nhóm.