Inženir računalniške programske opreme je strokovnjak za teorijo računalniških sistemov ter načrtuje in vzdržuje programsko opremo. Ti inženirji običajno spadajo v dve kategoriji: inženir programske opreme za računalniške aplikacije in inženir programske opreme za računalniške sisteme. Običajno bo inženir računalniške programske opreme delal na številnih projektih, vključno s proizvodnjo, industrijo, vlado in izobraževalnimi ustanovami. Ti strokovnjaki so pogosto analitični in zelo podrobno usmerjeni ter na splošno imajo visokošolsko izobrazbo iz računalniške programske opreme ali inženiringa programske opreme. Programski inženir mora nenehno slediti svojemu poklicu, saj se pojavljajo novi programski jeziki in tehnologije.
Ko dobi projekt, inženir računalniške programske opreme analizira situacijo in uporabi svoje računalništvo, inženirstvo in matematiko, da dokonča nalogo. Običajno bo oseba na tem položaju uporabljala sistemske diagrame poteka, ki podrobno opisujejo, kako bodo podatki tekli skozi računalnik. Po izdelavi programa ga bo inženir programske opreme preizkusil in se prepričal, da v podatkih ni napak.
Inženir programske opreme za računalniške aplikacije ustvarja aplikacijske programe, ki imajo natančen namen. Običajno programski inženir računalniških aplikacij uporablja poseben programski jezik, kot so C, C++ in Java. Ta tip inženirja lahko dela na projektu sam ali v skupinah.
Strokovnjak, ki je inženir programske opreme za računalniške sisteme, je na splošno odgovoren za načrtovanje programske opreme, ki je potrebna za pravilno delovanje računalniškega sistema. Programski inženir za računalniške sisteme pomaga tudi pri organizaciji računalniških zahtev za različne oddelke organizacije in pomaga pri čim bolj nemotenem komunikaciji med oddelki. Ta vrsta inženirja računalniške programske opreme poskrbi, da so sistemi, ki jih gradijo, varni.
Delovno okolje inženirja računalniške programske opreme je običajno sestavljeno iz pisarne, laboratorija ali drugega delovnega mesta, ki vsebuje računalniško opremo. Običajno bo programski inženir delal 40 ur na teden, vendar lahko dela tudi dlje, če je pod rokom. Nekateri inženirji programske opreme, ki delajo za svetovalno podjetje, bodo potovali na obisk k strankam, včasih tudi v tujino. Programski inženir preživi veliko časa pred računalniškim zaslonom in lahko razvije obremenitev oči ali sindrom karpalnega kanala.
Oseba morda potrebuje le dveletno diplomo ali certifikat, da postane programski inženir v nekaterih primerih, vendar delodajalci pogosto raje dajejo diplomo iz računalništva, programskega inženiringa, računalniških informacijskih sistemov ali matematike. Večina inženirjev programske opreme bo imela nacionalni certifikat za glavne računalniške jezike. Za več tehničnih položajev bo morda potrebna podiplomska diploma.
Da bi bil v koraku s stalno spreminjajočim se poklicem, se inženir programske opreme na splošno udeležuje tečajev stalnega izobraževanja in seminarjev strokovnega razvoja. Poklic zahteva iznajdljivost in močne tehnike reševanja problemov. Ko programski inženir pridobi več izkušenj, lahko napreduje do vodje projekta ali vodje informacijskih sistemov.