전 직장에서의 컬쳐 쇼크
스타트업에서 근무하다 Intel 에 처음 조인했을 때, 가장 적응이 안되었던 부분 중 하나는 바로 ‘업무의 범위’였다. 스타트업 시절처럼 몰아치는 Feature 를 구현하며 방대한 양의 코드를 작성할 것이라고 예상했지만, 실제 팀에서 마주한 업무와 요구 역량은 그런것이 전혀 아니었다.
내가 속해 있었던 팀은 차량용 AI 및 소프트웨어 시스템을 구현하고 최적화하는 팀이었다. 풀어야 하는 문제들은 대략 다음과 같았다.
BIOS, OS 커널, 하이퍼바이저 등 시스템 하부 구조에서 발생하는 복잡한 에러 분석 및 해결
메모리, CPU, 주변기기(Peripheral) 등 컴퓨팅 자원의 극한 최적화
AI 모델 및 애플리케이션의 성능 병목 지점 탐색과 개선
장시간 가동에도 무너지지 않는 시스템 설계 및 검증
예상할 수 있듯, 이런 문제들은 단순히 코드를 많이 작성한다고 해결되지 않는다. 기능을 새로 만들기보다 기존의 코드와 시스템 구조, 그리고 실행 로그를 파고들며 새로운 개선점과 설계 방향을 고민하는 데 훨씬 많은 시간을 쏟아야 했다.
바이브코딩이 대세가 된 지금, 업계의 분위기는 (또는 링크드인 포스트들의 흐름은) 어떻게 하면 큰 품을 들이지 않고 결과물을 만들어 내는 데에 초점을 맞추는 듯 하다.
하지만 내가 경험한 엔지니어링의 세계에서 요구하는 직무 역량은 결이 조금 다르다. 성공한 기업들은 이미 공고하게 구축된 프로덕트를 보유하고 있다. 그들이 엔지니어에게 원하는 것은 '얼마나 빨리 새로운 것을 만드느냐'가 아니라 다음과 같은 역량들인데,
전반적인 시스템 구조를 깊이 있게 이해하고 설계할 수 있는 역량
병목 구간을 정확히 짚어내고 타당한 개선 포인트를 제안할 수 있는 통찰력
하부 레벨의 전문 지식을 바탕으로 문제를 풀어가는 해결력
이 아닐까 싶다.
실제로 당시 팀에서 AI 를 활용하더라도, 바이브 코딩처럼 End-to-End 로 해결할 수는 없었다. 궁금한 내용을 물어보는 참고용으로 쓸 순 있어도, 결국 하드웨어와 OS 커널 레벨의 지식 및 철저한 검증이 뒷받침되어야 했기 때문이다. 깊은 수준의 컴퓨팅 시스템 이해가 필수적이었던 셈이다.
회사에 막 합류 후 도무지 갈피를 잡을 수 없던 커널 로그를 보며 낑낑댈 때, 주변에는 괴물 같은 동료들이 있었다. 로그 하나로 에러의 원인을 추적해 OS부터 어셈블리 레벨의 끝단까지 파고들어 해결해내던 그들의 모습은, 내가 엔지니어로서 나아가야 할 방향과 자질에 대해 커다란 영감을 주었다. 학교나 교재, 일반적인 강의에서는 결코 배울 수 없는 진짜 '실무 스킬'이란 이런 것들이구나 하는 것들이었다.
마침 그 중 압도적인 퍼포먼스를 보여주던 동료분이 이런 임베디드 시스템 업계의 기술들을 주니어 레벨의 개발자들에게 잘 전달하고자 강의를 개설한 듯 하다.
바이브 코딩으로 새로운 결과물을 빨리 만들어내고자 하는 사람을 위한 강의는 아니다. 컴퓨팅 시스템의 깊은 레벨을 이해하고 진득히 앉아서 그 안에서 일어나는 병목과 에러를 끈질기게 디버깅 하기 위한 기술의 기초체력을 위한 강의가 될 것이다.
그분의 기술적 깊이와 실무 감각, 그리고 이러한 지식이 얼마나 희소하고 체득하기 어려운지 직접 경험한 나로서는 이 강의를 진심으로 추천한다.
분야: 임베디드 시스템
대상: 주니어 개발자
링크: https://www.inflearn.com/course/임베디드-시스템의-본질-기본편-emb
