Tietokoneen käyttäjät tuntevat todennäköisesti parhaiten ohjelmiston, joka toimii heidän käyttöjärjestelmissään. Heillä ei kuitenkaan ole niin paljon kokemusta ohjelmistosta, joka säätelee tiettyjen kehittyneiden laitteistokomponenttien toimintaa. Nämä komponentit ohjelmoivat ammattilaiset, joita kutsutaan sulautetuiksi ohjelmistosuunnittelijoiksi.
Laitteistokomponentteja, jotka suorittavat erityisiä toimintoja, kutsutaan sulautetuiksi järjestelmiksi. Nämä toimivat tietokoneina tietokoneissa, joissa on omat prosessorit ja muisti. Sulautetut järjestelmät ottavat tietoja tietyistä laitteistokomponenteista, suorittavat niiden ohjelmoinnin ja välittävät sitten tiedot muille laitteen laitteille. Sulautetun järjestelmän rooli voi olla yhtä monimutkainen kuin tietojen muuntaminen sisäisistä antenneista muuhun laitteeseen käytettävään datamuotoon tai yksinkertainen kuin tiettyjen signaalien lähettäminen, kun painike aktivoi ne. Sulautettu ohjelmistosuunnittelija luo ohjelmat, jotka käyttävät näitä laitteita.
Upotetun ohjelmistosuunnittelijan työ on samanlainen kuin ohjelmistosuunnittelijat, jotka luovat ohjelmia pöytätietokoneille. Lähdekoodi tietojen muuntamiseksi yhdestä muodosta toiseen on sama henkilökohtaisessa tietokoneessa kuin sulautetussa järjestelmässä. Sulautetun ohjelmistosuunnittelijan tehtävä vaihtelee lisäämällä lisäkoodia, jotta ohjelma voidaan ajaa sulautetuksi järjestelmäksi toimivalla erikoislaitteistolla.
Käyttöjärjestelmät, joissa työpöytäsovellukset toimivat, sisältävät erilaisia ohjainohjelmistoja. Tämä sopii näille järjestelmille tietokoneessa mahdollisesti olevan laitteiston ja käyttäjän mahdollisesti käyttämän ohjelmiston vuoksi. Sulautetut järjestelmät ovat itsenäisiä ja suorittavat vain yhden ohjelman. Tästä syystä ohjelmoijan on ladattava vain rajoitettu määrä ohjaimia ja itse ohjelma laitteen rajoitettuun muistiin. Sulautetun ohjelmistosuunnittelijan työ sisältää yleensä sen, että määritetään pienin määrä ohjaimia, joita ohjelma tarvitsee sulautetun laitteen käyttämiseen.
Kun sulautettu ohjelmistosuunnittelija on lopettanut laitteen ohjelmoinnin, hänen työnsä on dokumentoitava. Sulautettuja järjestelmiä ei koskaan käytetä yksinään, vaan osana jotakin suurempaa projektia. Laitteen hyödyntämiseksi muiden insinöörien on tiedettävä seuraavat tiedot:
mitä tietoja sulautettu järjestelmä odottaa
mitä tietomuotoa sen ohjelmointi odottaa
miten laite reagoi eri tuloihin
laitteen tuottaman datan muoto
Nämä tiedot sisällytetään sitten sulautettujen ohjelmistosuunnittelijoiden itse tuottamaan tekniseen dokumentaatioon, usein käsikirjan muodossa. Joskus tekniset kirjoittajat todellisten insinöörien sijasta luovat tällaisia käyttöoppaita ohjelmistosuunnittelijoiden antamien muistiinpanojen perusteella. Asiakirjoihin viittaaminen on käyttäjille korvaamatonta.