Arvutikasutajad tunnevad tõenäoliselt kõige paremini nende operatsioonisüsteemides töötavat tarkvara. Paljud nad ei ole aga nii kogenud tarkvaraga, mis reguleerib teatud keerukate riistvarakomponentide tööd. Need komponendid on programmeeritud professionaalide poolt, keda nimetatakse manustatud tarkvara inseneriks.
Riistvarakomponente, mis täidavad spetsiifilisi ja erifunktsioone, nimetatakse manussüsteemideks. Need toimivad arvutitena arvutites, millel on oma protsessorid ja mälu. Manussüsteemid võtavad vastu andmeid konkreetsetelt riistvarakomponentidelt, teostavad nende programmeerimist ja edastavad seejärel andmed teistele masina riistvaraosadele. Manussüsteemi roll võib olla sama keeruline kui andmete teisendamine sisemistest antennidest ülejäänud seadme jaoks kasutatavasse andmevormingusse või sama lihtne kui konkreetsete signaalide edastamine, kui see aktiveeritakse nupuga. Manustatud tarkvara insener loob programmid, mis neid seadmeid käitavad.
Manustatud tarkvara inseneri töö on sarnane tarkvarainseneridele, kes loovad programme lauaarvutite jaoks. Lähtekood ühes vormingus andmete teisendamiseks on personaalarvutis sama, mis manussüsteemis. Kui manustatud tarkvara inseneri töö erineb, on lisakoodi lisamine, et programm saaks töötada manustatud süsteemina toimivas spetsiaalses riistvaras.
Operatsioonisüsteemid, milles töölauarakendused käitavad, hõlmavad mitmesuguseid draiveritarkvarasid. See on nende süsteemide jaoks sobiv, kuna arvutis võib olla palju riistvara ja tarkvara, mida kasutaja võib käivitada. Manussüsteemid on iseseisvad ja käitavad ainult ühte programmi. Sel põhjusel peab programmeerija seadme piiratud mällu laadima vaid piiratud arvu draivereid ja programmi enda. Manustarkvara inseneri töö hõlmab tavaliselt väikseima draiverite arvu kindlaksmääramist, mida programm vajab manustatud seadme kasutamiseks.
Kui sisseehitatud tarkvara insener on seadme programmeerimise lõpetanud, tuleb tema töö dokumenteerida. Manussüsteeme ei kasutata kunagi iseseisvalt, vaid osana mõnest suuremast projektist. Seadme kasutamiseks peavad teised insenerid teadma järgmist teavet:
milliseid andmeid manussüsteem ootab
millist andmevormingut selle programmeerimine ootab
kuidas seade erinevatele sisenditele reageerib
seadme väljastatavate andmete vorming
Seejärel lisatakse see teave tehnilisse dokumentatsiooni, mille manustarkvara insenerid ise koostavad, sageli käsiraamatu kujul. Mõnikord koostavad tehnilised kirjutajad, mitte tegelikud insenerid, selliseid käsiraamatuid tarkvarainseneride esitatud märkmete põhjal. Dokumentide olemasolu, millele viidata, on kasutajatele hindamatu.