-
컴파일러 엔지니어는 프로그래밍 언어를 직접 설계하지 않고, 기존 언어를 더 빠르고 효율적으로 실행되게 만드는 소프트웨어 엔지니어링 분야
- 이 직무는 전체 소프트웨어 엔지니어 일자리 중 극히 일부만 존재하며, 진입 장벽이 높고 수요가 제한적
- 채용 기업은 스타트업, 대형 기술기업, 학계, 금융권, 오픈소스 프로젝트 등으로 다양하지만, 대부분은 경력자 중심 구조
- 면접에서는 C++ 기반 알고리듬 구현, 언어 설계, 컴파일러 최적화, 저수준 시스템 지식 등이 중점 평가 항목
- MIT 강의와 오픈소스 학습 자료를 활용한 준비 과정, 그리고 꾸준한 네트워킹과 추천(referral) 이 취업 성공의 핵심 요소로 제시됨
컴파일러 엔지니어란 무엇인가
- 컴파일러는 한 프로그래밍 언어로 작성된 코드를 다른 언어로 변환하는 소프트웨어 도구
- 컴파일러 엔지니어는 이러한 언어의 구현과 최적화를 담당
- 새로운 언어를 설계하기보다는 기존 언어의 실행 효율을 높이는 역할
- 글 작성자는 샌프란시스코 베이 지역의 대형 기술기업에서 프로그래밍 언어 성능 향상을 담당 중
글을 쓰게 된 이유
- 컴파일러 분야 취업 관련 정보가 온라인에 거의 없어, 신입·졸업생을 위한 실질적 가이드를 제공하기 위해 작성
- 머신러닝이나 풀스택 관련 자료는 많지만, 컴파일러 관련 콘텐츠는 부족
- 약 1년간 시행착오 끝에 취업에 성공한 경험을 공유
개인 경력 요약
- 2023년 MIT에서 수학·컴퓨터과학 복수 전공으로 졸업
- 대학원 연구 기반 석사과정 중단 후, 2024년 뉴욕의 스타트업에서 오픈소스 언어 확장 작업 수행
- 이후 샌프란시스코의 상장 기술기업으로 이직
컴파일러 엔지니어를 채용하는 곳
- Indeed 기준 “software engineer”는 116,000건, “compiler engineer”는 400건 수준
-
스타트업: 신입 채용 가능성이 높으며, 작성자도 첫 직장을 스타트업에서 시작
-
대형 기술기업: Tesla, Waymo, Nvidia 등 하드웨어·자동차 기업 중심
- FAANG 기업의 경우 인턴 전환 형태로 입사한 사례 존재
-
학계: 연구 자금 축소로 기회 제한
-
퀀트 금융사: Jane Street, Five Rings 등에서 고성능 컴퓨팅 역량을 요구
-
오픈소스 프로젝트: 일부 스타트업이 관련 채용 진행
이력서와 네트워킹 전략
-
추천(referral) 이 가장 효과적인 접근 방식으로 언급
- 지인이나 지인의 지인을 통해 추천 요청
- SNS 프로필에 “compilers” 관심을 명시해 주목도 상승
- 개인적 배경(미국 시민권, MIT 학위 등)이 유리하게 작용했음을 인정
- 네트워크가 부족한 경우, 이후 섹션에서 차별화 전략 제시
면접 유형
-
자료구조·알고리듬 문제: BFS, 우선순위 큐 구현 등, 대부분 C++ 사용
-
언어 설계: 제약 조건이 있는 간단한 언어의 문법(grammar) 작성
-
프로그래밍 언어 관련 질문: 선호 언어 이유 등
-
중간 표현(IR) : x86 어셈블리 해석 및 변환, MLIR 기반 과제 포함
-
최적화 패스: 상수 전파, 죽은 코드 제거, 대수적 단순화 구현
-
컴파일러 기본 구조: 정적·동적 컴파일러 비교, 구성 요소 설명
-
그래프 이론: 제어 흐름 그래프, 레지스터 할당 등
-
저수준 시스템 주제: 데드락, 레이스 컨디션, 메모리 할당, 파이프라인 등
-
행동 질문: “왜 컴파일러를 하고 싶은가” 등 동기 중심
면접 준비 과정
- MIT OCW 강의를 중심으로 학습
-
Computation Structures: 파이프라인, 어셈블리, 이진 연산 등 저수준 개념
-
Computer Language Engineering: C++ 및 대규모 코드베이스 경험
-
Performance Engineering: 성능 최적화 중심, 현 직장 취업에 결정적 역할
-
Theory of Computation: 언어 문법 설계 이해에 도움
- Cornell의 Advanced Compilers 자율 학습 과정도 참고
개선점 및 배운 점
-
멘토 부재: LinkedIn을 통한 네트워킹 필요성 인식
-
전문서적(Engineering a Compiler, Dragon Book)은 개념 복습에는 유용하지만 실전 대비에는 한계
-
면접 질문 기록 부재: 복기 부족을 아쉬움으로 언급
-
오픈소스 참여 미흡: Carbon, Mojo 프로젝트를 검토했으나 기여하지 못함
컴파일러를 선택한 이유
- 수학 전공에서 출발해 이론적 사고와 저수준 프로그래밍의 유사성에 매료
- 머신러닝의 경험적 접근보다 원리 기반 시스템 구축에 흥미
- MIT 시절 친구들과의 협업, 경쟁, 커뮤니티 분위기가 선택에 영향
- “돈과 명예보다 원리 탐구를 즐기는 사람들의 분야”로 묘사
기술 취업 시장과 조언
- 현재 기술 취업 시장의 경쟁 심화 언급
- 일부 친구들은 수백 건 지원 후 소수의 면접만 획득
-
차별화 전략으로 오픈소스 참여, 소셜미디어 활용, 대학 자원 활용, 커뮤니티 활동 제안
- 뉴욕의 시스템 리딩 그룹 등 전문 스터디 모임 참여 사례 소개
- 이러한 활동이 직접적인 취업 보장은 아니지만 기회 확률을 높임
결론 및 개인적 경험
- 2024년 스타트업 이전에는 컴파일러 관련 산업 경험이 없었음
- 2025년 채용 과정에서 낮은 시급의 포지션에도 지원했으나 박사 과정 지원자에게 기회가 돌아감
-
10개월간 수십 회 면접 후 최종 취업 성공, 현재는 프로그램의 밀리초 단위 성능 향상에 집중
- 컴파일러 분야 종사자에게 연락을 요청하며, Palo Alto 지역에서의 새로운 시작 언급
- 마지막으로 자신의 소설 『You Had Me at Hello World』 출간 소식 공유