Čeprav je na voljo veliko različnih vrst delovnih mest oblikovalcev programske opreme, jih je mogoče mnoge razvrstiti v nekaj osnovnih kategorij. Položaji sistemskega inženirja običajno vključujejo oblikovalce programske opreme, ki so odgovorni za razvoj in nadzor računalniških sistemov za določeno podjetje. Aplikacijski inženirji so oblikovalci programske opreme, odgovorni za ustvarjanje nove računalniške programske opreme, pripomočkov in aplikacij, pogosto z ustvarjanjem in testiranjem kode za nov program programske opreme skozi celoten razvojni proces. Obstajajo tudi številna delovna mesta oblikovalcev programske opreme na določenih specializiranih področjih, kot so razvoj iger, ustvarjanje in administracija spletnih mest ter znotraj posebnih vidikov razvoja programske opreme, kot je oblikovanje uporabniškega vmesnika (UI).
Dela oblikovalcev programske opreme lahko pokrivajo široko paleto področij in procesov, odvisno od vrste programske opreme, ki jo želi oblikovalec razviti. Številna od teh delovnih mest zahtevajo sistemskega inženirja, ki je oblikovalec programske opreme, odgovoren za razvoj in nadzor programske opreme in računalniških sistemov v podjetju. Maloprodajno podjetje, na primer, lahko uporablja osnovni komercialni program za spremljanje prodaje in beleženje proračunov za podjetje. Nekatera podjetja pa imajo na voljo delovna mesta oblikovalca programske opreme za nekoga, ki ustvarja novo programsko opremo za uporabo v podjetju, prilagojeno posebnim potrebam tega podjetja ter jo razvija in nadzira oblikovalec.
Obstajajo tudi delovna mesta oblikovalcev programske opreme za oblikovalce, ki jih zanima ustvarjanje novih programov programske opreme v podjetju za programsko opremo, ki se pogosto imenuje inženirji aplikacij. Ti oblikovalci ustvarijo kodo za nov program z uporabo načrtovalnega dokumenta za usmerjanje razvoja programske opreme. Ta razvojni proces običajno poteka skozi več korakov, saj se osnovni programski opremi dodajo dodatni pripomočki in funkcije. Mnoga od teh podjetij imajo tudi delovna mesta oblikovalcev programske opreme za preizkuševalce, ki uporabljajo programsko opremo, da bi našli napake in napake, ki jih je treba popraviti pred komercialno izdajo programa.
Številna delovna mesta oblikovalcev programske opreme so podobna inženiringu aplikacij, vendar so usmerjena v določeno industrijo v okviru razvoja programske opreme ali na en vidik takšnega razvoja. Programerji v industriji iger so na primer običajno oblikovalci programske opreme z zanimanjem za razvoj programske opreme za igre na srečo, pogosto vključno s programiranjem umetne inteligence (AI) in drugimi vidiki razvoja iger. Obstajajo tudi oblikovalci, ki se osredotočajo na določen vidik razvoja in se odločijo za specializacijo na tem področju. Delo oblikovalcev programske opreme za te posameznike je mogoče najti na specializiranih področjih, kot sta načrtovanje in razvoj uporabniškega vmesnika, kar zahteva razumevanje, kako ljudje komunicirajo s tehnologijo in komunicirajo s njo.