Swarm: 커스텀 어셈블리로 200마리의 개미를 프로그래밍하는 미친 채용 챌린지
요즘 테크 업계의 채용 프로세스를 보면 솔직히 좀 지루합니다. 똑같은 LeetCode 문제, 달달 외워서 푸는 시스템 디자인 인터뷰… 엔지니어의 진짜 긱(Geek)스러운 열정을 평가하기엔 턱없이 부족하죠. 그런데 최근 Moment Technology에서 아주 흥미로운 프로젝트를 공개했습니다. 바로 커스텀 어셈블리 언어로 200마리의 개미 군단을 프로그래밍하는 챌린지, Swarm입니다.
처음엔 그저 흔한 코딩 게임인 줄 알았지만, 내부를 까볼수록 분산 시스템(Distributed System)과 창발적 행동(Emergent Behavior)에 대한 깊은 이해를 요구하는 훌륭한 엔지니어링 샌드박스더군요.
현대판 Corewar, 그리고 분산 시스템의 축소판
이 프로젝트를 한마디로 요약하자면 개미를 위한 어셈블리입니다. HN의 한 유저가 영화 쥬랜더를 패러디해 “What is this? Assembly for ants?”라고 농담을 던졌는데, 정확한 표현입니다.
과거 80년대 해커들이 즐기던 Corewar의 현대적인 웹 버전이라고 볼 수 있습니다. 여러분이 작성한 어셈블리 코드는 200마리의 개미 각각에 탑재되어 실행됩니다. 여기서 중요한 엔지니어링 포인트가 발생합니다.
- 제한된 리소스: 개별 개미(Node)는 매우 제한된 메모리와 명령어 셋을 가진 단순한 State Machine입니다.
- 창발적 행동: 개미 한 마리의 로직은 단순(dumb)하지만, 이들이 모이면 군집으로서 매우 복잡하고 지능적인(smart) 결과를 만들어냅니다.
Hofstadter의 명저 Godel, Escher, Bach를 읽어보신 분들이라면 이 개념이 얼마나 매력적인지 아실 겁니다. 우리는 종종 개별 마이크로서비스의 퍼포먼스에 집착하지만, 실제 대규모 트래픽 환경에서는 이들이 상호작용하며 만들어내는 전체 시스템의 Throughput과 Latency가 훨씬 중요하죠. 이 개미 군단은 정확히 그 분산 시스템의 축소판입니다.
UX와 진입 장벽: 아쉬운 디테일
하지만 시니어 엔지니어로서 쓴소리를 안 할 수가 없네요. 첫인상은 솔직히 꽤나 짜증 났습니다.
터미널 감성을 살리려는 의도는 알겠지만, 순수 블랙 배경에 0x002000 수준의 다크 그린 폰트를 사용한 건 명백한 UX 실패입니다. HN에서도 “대체 왜 이런 가독성 떨어지는 색 조합을 첫인상으로 고집하는가?”라는 비판이 쏟아졌죠. 다행히 터미널에서 theme set 명령어를 입력하거나 클릭을 하면 해결되지만, 굳이 이런 불필요한 허들을 만들 필요가 있었나 싶습니다.
게다가 시작부터 GitHub 계정 연동을 요구하는 것도 큰 진입 장벽입니다. 코드를 직접 짜기 전에 데모 시뮬레이션(Canned sim) 정도는 그냥 보여줬어야 합니다. Read-only 권한이라지만, 요즘 같은 시대에 무턱대고 서드파티 앱에 권한을 내어줄 시니어는 많지 않습니다.
채용 ROI: 하와이 여행을 걸 만한 가치가 있는가?
이 챌린지의 우승 상품은 무려 하와이 마우이 여행입니다. 스웩(Swag)과 배송비 등을 모두 합치면 대략 2만 달러 규모의 예산이 들어갔을 것으로 추정됩니다. 채용 하나 하려고 이렇게까지 돈을 써야 해?라는 의문이 들 수 있습니다.
하지만 엔지니어링 조직을 리드해 본 분들이라면 이게 얼마나 남는 장사인지 아실 겁니다.
- 기존 채용 비용: 리크루팅 에이전시에 지불하는 수수료(첫 해 연봉의 15~20%)만 해도 수만 달러입니다.
- 엔지니어의 시간: 수많은 이력서를 스크리닝하고, 기술 면접을 진행하는 데 들어가는 우리 팀 시니어들의 시간(Eng-days)을 돈으로 환산하면 2만 달러는 우스운 수준입니다.
이런 챌린지는 진짜 코딩을 즐기고 로우레벨 시스템에 흥미가 있는 진짜배기들을 알아서 필터링해 줍니다. 다만 HN의 누군가가 지적했듯, 하와이 여행 같은 보상은 부양가족이 없는 젊은 엔지니어들에게만 주로 어필할 수 있다는 점에서 타겟팅이 다소 편향될 수 있다는 점은 인정해야 합니다.
결론 (Verdict)
Moment의 Swarm 챌린지는 완벽하진 않습니다. 초기 UX는 불친절하고, GitHub 연동 강제는 귀찮습니다. 하지만 LeetCode 스타일의 획일화된 채용 시장에 던지는 매우 신선하고 도발적인 메시지임은 분명합니다.
단순히 API를 호출하고 프레임워크를 조립하는 것에 지쳤다면, 주말에 커피 한 잔 내려놓고 이 개미들을 위한 어셈블리 코드를 짜보는 것을 추천합니다. 잊고 있었던 로우레벨 엔지니어링의 재미를 다시 느낄 수 있을 겁니다.
References:
- Original Article: https://dev.moment.com/
- Hacker News Thread: https://news.ycombinator.com/item?id=47270807