Seorang insinyur perangkat lunak adalah seorang insinyur profesional berlisensi yang dididik dan terampil dalam penerapan disiplin teknik untuk pembuatan perangkat lunak. Seorang insinyur perangkat lunak sering bingung dengan seorang programmer, tetapi keduanya adalah disiplin ilmu yang sangat berbeda. Sementara seorang programmer membuat kode yang membuat program berjalan, seorang insinyur perangkat lunak membuat desain yang diimplementasikan oleh programmer. Menurut undang-undang A.S. tidak ada orang yang boleh menggunakan gelar insinyur (dari jenis apa pun) kecuali orang tersebut memegang lisensi teknik profesional dari dewan lisensi negara bagian dan memiliki reputasi yang baik. Seorang insinyur perangkat lunak juga bertanggung jawab atas kode etik tertentu.