시스템 엔지니어는 프로그래머가 아니나 프로그래머와 가장 밀접한 관계를 맺고 일하는 사람들이다. 이들은 프로그래머가 개발한 소프트웨어(혹은 서비스)가 동작할 수 있도록 기반 시스템(base system) 혹은 인프라 구조(infra structure)를 설계 및 구축하고 운영하며 늘 정상적으로 동작하는지 감시하는데다가 끊임없이 보수한다. 예기치 못한 장애로 인해 어느 한 부분에 장애가 발생하면 문제를 파악하고 고치기도 하며 - 때로는 하드웨어 뿐만 아니라 소프트웨어 오류 또한 관리하고 수정한다 -, 노후한 부분에 대한 보수 및 장비 교체 등을 주도하기도 한다. 시스템이 최고의 성능을 발휘할 수 있도록 튜닝(tunning)하는 역할 또한 이들의 몫이다.
프로그램을 개발하는 것도 아니고, 아름다운 그래픽을 만들어 내는 디자이너처럼 화려하지도 않고, 전체 팀을 총괄하는 프로젝트 매니저처럼 세련된 모습도 아니며 눈에 띄지 않고 조용히 자신의 역할을 수행하는 사람들이지만, 너른 바다를 항해하는 거대한 여객선 밑에서 묵묵히 엔진을 움직이는 사람들처럼 그들의 책임은 막중하다. 물에 떠 있기만 한 배는 아무 의미가 없지 않은가? 발전소가 멈추면 도시가 암흑에 빠지듯 시스템 엔지니어가 서버를 제대로 운영하지 않으면 인터넷에 연결된 소프트웨어 사용자들은 패닉에 빠지고, 모든 기업을 업무가 마비되고 마는것이다. 휴대폰 통화와 항공기 운항 등 거의 모든 문명을 지탱하고 있는 사람들이라 칭할 수 있다.
Architect는 TA(Tehchnical Architect), DA(Data Architect)., AA(Application Architect),. QA(Quality Architect) 등의 역할이 존재한다.