💻

소프트웨어 엔지니어

플라네타리움은 플레이어와 게임 모더들의 창발적 기여가 온라인 게임에 새로운 생명을 불어넣는 탈중앙 게임 생태계를 개척하고 있습니다.
Libplanet은 게임 클라이언트들이 특정한 중앙 서버 없이 P2P 연결을 통해 분산 시스템을 구성하여 동작할 수 있게 만드는 오픈소스 라이브러리입니다. 소프트웨어 엔지니어는 이 Libplanet을 구현, 개선함과 동시에, 게임 개발자가 각 게임의 특성에 맞는 네트워크를 쉽게 구축할 수 있도록 시스템을 추상화합니다.

업무 내용

중앙 서버 없이도 플레이어 간의 네트워크에서 온라인 게임이 동작하도록 Libplanet 블록체인 코어 엔진을 개발합니다.
모바일과 데스크톱 게이밍에 적합한 분산 처리 구조를 설계하고, 이를 쉽게 배포할 수 있도록 합니다.
특정한 중앙 서버 없이도 게임 클라이언트들이 서로의 상태를 동기화 할 수 있어야 하므로, 이를 위한 클라이언트 간의 합의 시스템을 개발합니다.
어느 특정한 장르의 게임에 특화된 것이 아니라, 다양한 장르의 게임에서 널리 사용될 수 있게끔 확장성 있는 자료 구조를 설계합니다.
게임 제작 도구(Unity)에서 사용할 수 있는 SDK를 만들어, 게임 제작자들이 더 쉽게 블록체인 게임을 개발할 수 있도록 돕습니다.
Libplanet 사용자들과 소통하며 그들이 탈중앙화를 통해 새로운 재미를 창조할 수 있도록 협력합니다.
전 세계 오픈소스 커뮤니티와 소통하며 창의적인 개발자들의 기여를 장려합니다.

근무 형태 및 자격 요건

근무 형태

정규직
유연 근무제
재택 근무제

모집 인원

0명

지원 자격

학력 및 성별 무관
관련 경력 3년 이상 및 그에 준하는 경력

우대 사항

오픈 소스 프로젝트 메인테이너, 혹은 기여 경험
개발자가 사용하는 라이브러리 제작 경험
분산 시스템을 설계하고 개발해본 경험
네트워크 프로그래밍 경험
암호학 프리미티브에 대한 이해
블록체인 프로젝트 경험
출시된 게임의 서버를 개발한 경험
출시된 게임의 서버를 운영하며 라이브의 요구사항을 체험해본 경험
Unity를 통한 게임 개발 경험

사용하는 기술과 도구들

주요 기술

저희가 주로 사용하는 기술들은 아래와 같습니다.
C# (.NET Standard 2.0+)
이러한 기술들을 채택하게 된 근거는 아래와 같습니다.
2021년 현재 게임 개발에서 가장 활발히 사용하고 있는 도구는 Unity라고 판단하였고 내부적으로 개발하는 게임 역시 Unity (C#) 기반으로 개발하고 있습니다.
복잡한 게임 로직을 블록체인상에 담아내고 코드 재사용성을 높이기 위해 네이티브 익스텐션(Native Extension)을 제안합니다. 이를 효과적으로 구현하기 위해, 저희는 엔진 기술에도 C# / .NET 을 주로 사용하고 있습니다.

그외 도구들

그 외에 사용하고 있는 기술/도구들은 아래와 같습니다.
소스 코드의 형상 관리를 위해서는 Git을 사용합니다.
저장소는 GitHub를 사용합니다.
빌드/배포 자동화를 위해 Azure Pipelines, GitHub Actions를 사용합니다.
사내 테스트와 테스트넷 운영을 위하여 Amazon Web ServicesAmazon EKS를 사용합니다.

지원 방법 및 절차

지원 방법

자유 형식의 이력서와 GitHub 프로필 링크를 recruit@planetariumhq.com 으로 보내주세요.
이력서에 사진을 첨부하지 말아주세요.
메일을 보내실 때, 제목 앞에 [소프트웨어 엔지니어]를 붙여주세요.

채용 절차

아래 과정은 개별로 최대 4주 이내에 진행될 예정입니다.
1.
서류 전형 보내주신 이력서를 상세히 검토하여 이후 단계 진행 여부를 결정합니다.
2.
과제 테스트
미니 프로젝트 형태의 과제를 통해 업무에 필요한 역량을 확인합니다.
3.
심층 면접 실무진과 심층 면접을 진행합니다. 업무 역량 및 지식을 충분히 보유했는지, 협업 능력을 갖추었는지 등을 이 과정에서 평가합니다.
4.
경영진 면접 근무조건 및 출근일 등을 최종 협의합니다.