Οι χρήστες υπολογιστών είναι πιθανότατα περισσότερο εξοικειωμένοι με το λογισμικό που λειτουργεί στα λειτουργικά τους συστήματα. Ωστόσο, δεν είναι τόσο έμπειροι με το λογισμικό που ρυθμίζει τη λειτουργία ορισμένων εξελιγμένων εξαρτημάτων υλικού. Αυτά τα στοιχεία προγραμματίζονται από επαγγελματίες που ονομάζονται ενσωματωμένοι μηχανικοί λογισμικού.
Τα εξαρτήματα υλικού που εκτελούν συγκεκριμένες και εξειδικευμένες λειτουργίες ονομάζονται ενσωματωμένα συστήματα. Αυτά λειτουργούν ως υπολογιστές εντός υπολογιστών, με τους δικούς τους επεξεργαστές και μνήμη. Τα ενσωματωμένα συστήματα λαμβάνουν δεδομένα από συγκεκριμένα στοιχεία υλικού, εκτελούν τον προγραμματισμό τους και στη συνέχεια μεταφέρουν δεδομένα σε άλλα κομμάτια υλικού του μηχανήματος. Ο ρόλος ενός ενσωματωμένου συστήματος θα μπορούσε να είναι τόσο πολύπλοκος όσο η μετατροπή δεδομένων από εσωτερικές κεραίες σε μορφή δεδομένων που μπορεί να χρησιμοποιήσει η υπόλοιπη συσκευή ή τόσο απλός όσο η μετάδοση συγκεκριμένων σημάτων όταν ενεργοποιείται με ένα κουμπί. Ένας ενσωματωμένος μηχανικός λογισμικού δημιουργεί τα προγράμματα που τρέχουν αυτές τις συσκευές.
Η δουλειά ενός ενσωματωμένου μηχανικού λογισμικού είναι παρόμοια με τους μηχανικούς λογισμικού που δημιουργούν προγράμματα για επιτραπέζιους υπολογιστές. Ο πηγαίος κώδικας για τη μετατροπή δεδομένων σε μια μορφή σε άλλη είναι ο ίδιος σε έναν προσωπικό υπολογιστή όπως και σε ένα ενσωματωμένο σύστημα. Εκεί που η δουλειά του ενσωματωμένου μηχανικού λογισμικού διαφέρει είναι η προσθήκη επιπλέον κώδικα για την εκτέλεση του προγράμματος στο εξειδικευμένο κομμάτι υλικού που λειτουργεί ως ενσωματωμένο σύστημα.
Τα λειτουργικά συστήματα στα οποία εκτελούνται εφαρμογές επιφάνειας εργασίας περιλαμβάνουν μια ποικιλία λογισμικών προγραμμάτων οδήγησης. Αυτό είναι κατάλληλο για αυτά τα συστήματα λόγω του εύρους του υλικού που θα μπορούσε να υπάρχει στον υπολογιστή και του λογισμικού που μπορεί να εκτελέσει ένας χρήστης. Τα ενσωματωμένα συστήματα είναι αυτόνομα και εκτελούν μόνο ένα πρόγραμμα. Για το λόγο αυτό, ο προγραμματιστής χρειάζεται μόνο να φορτώσει έναν περιορισμένο αριθμό προγραμμάτων οδήγησης και το ίδιο το πρόγραμμα, στην περιορισμένη μνήμη της συσκευής. Η εργασία του ενσωματωμένου μηχανικού λογισμικού περιλαμβάνει συνήθως τον προσδιορισμό του μικρότερου αριθμού προγραμμάτων οδήγησης που θα χρειαστεί το πρόγραμμα για τη λειτουργία της ενσωματωμένης συσκευής.
Αφού ένας ενσωματωμένος μηχανικός λογισμικού ολοκληρώσει τον προγραμματισμό μιας συσκευής, η εργασία του πρέπει να τεκμηριωθεί. Τα ενσωματωμένα συστήματα δεν χρησιμοποιούνται ποτέ από μόνα τους, αλλά ως μέρος κάποιου μεγαλύτερου έργου. Για να κάνουν χρήση της συσκευής, άλλοι μηχανικοί πρέπει να γνωρίζουν πληροφορίες όπως:
ποια δεδομένα περιμένει το ενσωματωμένο σύστημα
τι μορφή δεδομένων αναμένει ο προγραμματισμός του
πώς θα αντιδράσει η συσκευή σε διαφορετικές εισόδους
τη μορφή των δεδομένων που θα εξάγει η συσκευή
Αυτές οι πληροφορίες στη συνέχεια περιλαμβάνονται στην τεχνική τεκμηρίωση που παράγουν οι ίδιοι οι μηχανικοί ενσωματωμένου λογισμικού, συχνά με τη μορφή εγχειριδίου. Μερικές φορές, τεχνικοί συγγραφείς, και όχι οι πραγματικοί μηχανικοί, δημιουργούν τέτοια εγχειρίδια, από τις σημειώσεις που παρέχουν οι μηχανικοί λογισμικού. Η κατοχή τεκμηρίωσης προς αναφορά είναι ανεκτίμητη για τους χρήστες.