This is just my understanding.
For an engineer there are 3 key areas -
Technical Knowledge: Languages(C, C++, C#..), Tools(Rational Doors, Git, TFS, Starteam, Jira...), IDE(Visual Studio, Eclipse, XDeveloper interfaces..) etc
Domain Knowledge: You need to know anything and everything about your domain. I am medical guy so the entire hospital Information System is my area. I worked in Radiology, Lab equipments, Diagnostics, Administration..all in different companies spread across different continents. Standards like DICOM, HIPAA, HL7 etc.
Process Knowledge: How you develop the software. Like Waterfall, AGILE/SCRUM etc, Medical software guidelines like IEC 62304, CAPA's, various PLM systems, PMO's.
More experience you gain, you roles will vary. I have 2 roles right now. Software Build & release activities. So I need to take part in meetings, track status, ensure cadence, associated documentation for all those things. But since our cadence is bi weekly I have bit time. So I taken up development as well. So technically I am in all 3 now. otherwise, I never code. But i like coding..I am ok at it.