[경력] Senior Software Engineer
구분엔지니어링
직군소프트웨어 엔지니어
경력사항경력 7년 이상
고용형태정규직
근무지대한민국 서울특별시 강남구 테헤란로 415, 스파크플러스 4층

Senior Software Engineer


클래스101은 서비스 운영이 8년차로 접어 들면서 켜켜이 쌓인 여러 시스템의 문제들을 해결할 수 있는 IC(Individual Contributor) 엔지니어를 적극적으로 찾고 있습니다.현재 클래스101 시스템이 가지고 있는 주요 문제는 다음과 같습니다.


다수의 서비스가 중첩되어 복잡해진 시스템 관리

클래스101은 7년간 클래스의 개별 판매, 또 구독 서비스 판매같은 굵직한 비즈니스 모델의 변화를 겪었습니다. 또 플랫폼 내에서 VOD 뿐 아니라 준비물 등의 실제 유형의 상품 판매와 코칭권 등의 무형 상품 판매를 모두 다루고 있어 각기 다른 수강권 관리, 배송 관리, 정산 관리 정책들이 한 시스템 내에서 운영되고 있습니다.

서비스 역시 일반 고객들이 사용하는 웹, 앱 서비스는 물론 내부 직원들용 어드민, 비즈니스팀에 사용하는 각종 연동된 외부 서비스 등이 통합되면서 하나의 문제가 여러 영역에 걸쳐있는 경우가 많습니다. 예를 들어서 소비자가 VOD 강의를 수강할 때 거쳐야 하는 여러 측면에서의 인증(수강권, 등록 기기 검증등)을 빠르게 수행하면서도 안정적인 스트리밍 환경을 제공해야 하는데, 소비자가 "강의가 끊겨요"라는 문제에서 시스템적으로는 점검해야 봐야 하는 요소가 여러 시스템에 걸쳐있습니다. 이처럼 여러 계층의 문제를 종합적으로 이해하고 가장 최선의 실행을 수행할 수 있는 뛰어난 엔지니어가 필요한 상황입니다.


유실되어버린 제품 스펙과 운영 경험

클래스101은 빠른 성장의 시기가 있었지만, 최근 1년 사이 많은 엔지니어링 팀원들이 이탈하게 된 가슴아픈 시기도 있었습니다. 그러다보니 현재 제품의 상태를 명확히 진단하기가 어렵고, 그러다보니 막연하게 그냥 새로 작성하는 것이 나을 것 같다는 느낌만 주고 있습니다.

하지만 현재에도 월 수 백만 명의 사용자가 클래스101을 이용하고 있고, 또 비즈니스적으로 꾸준하게 새로운 비즈니스를 시도해야 하기에, 거대한 기존의 코드베이스위에 어떻게든 비즈니스가 성장할 수 있도록 덧붙이는 작업이 계속되고 있습니다.이에 복잡해진 비즈니스 로직들을 다시 한 번 정리하고, 실타래처럼 얽힌 문제들 속에 가장 먼저 풀어야 하는 그 문제의 시작을 식별하여 리팩토링을 하고자 전사적인 결정을 하였습니다. 이는 장기적인 관점의 로드맵이며, CEO부터 모든 영역의 리더십이 반드시 해결하고자 동의 한 주제입니다.


주요 업무

  • 클래스101의 다양한 서비스를 설계, 개발하고 운영합니다.
  • Discovery: 클래스메이트가 온라인 클래스, 준비물, 전자책, 크리에이터, 커뮤니티 등 클래스101이 가진 모든 콘텐츠 중 원하는 것을 쉽게 발견할 수 있도록 분류, 추천 및 검색 경험을 개선합니다.
  • Learning Experience: 다양한 환경에서 영상 콘텐츠를 실시간으로 스트리밍하고, 다른 클래스메이트들 혹은 크리에이터와 직접 소통하는 커뮤니티를 만들고, 수강률과 잔존율을 높이는 제품 실험을 진행하는 등 구매 이후의 경험을 책임집니다.
  • Creator: 크리에이터가 자유롭게 콘텐츠를 만들고, 클래스메이트들과 소통하고, 수익을 극대화할 수 있도록 다양한 제품을 만듭니다.
  • Commerce: 실물 및 비실물 상품의 단건 결제와 구독 결제, 주문 처리, 재고 관리와 배송, 정산과 세금 계산까지를 아우르는 온라인 마켓플레이스 플랫폼을 구축합니다.
  • Core: 인증, 알림, 실험 등 클래스101 제품의 기반 기능들을 만들고 발전시켜 지속적이고 확장 가능한 성장을 할 수 있도록 돕습니다.
  • B2B: 클래스101의 콘텐츠들을 기업 교육 및 복지에 사용할 수 있도록 학습 및 계약 관리 시스템을 구축합니다.
  • 클래스101의 전체 제품 도메인을 이해하고, 확장 및 관리가 용이하도록 단계적으로 마이그레이션합니다.



현재 클래스101이 찾고 있는 엔지니어는 다음과 같습니다:

  • 7년차 이상의 경력자로, 본인이 직접 작성하지 않았던 복잡한 시스템을 분석하고 문제의 근본 원인을 찾아 해결한 경험을 갖춘 분
  • 레거시 코드와 신규 코드 사이에서 균형 잡힌 접근으로 시스템을 개선할 수 있는 역량을 갖춘 분
  • 장기적인 관점에서 기술 부채를 해소하고 시스템의 안정성을 높이는 데 관심이 있는 분


다음은 클래스101에서 Senior Software Engineer에게 기대하는 역량입니다. 우리는 신규 입사자가 1년 이내로 아래 기대치를 모두 충족하기를 기대합니다.


역량

  • 기술
  • 클래스101의 엔지니어링 모범 사례를 직접 정의합니다.
  • 기존 코드베이스 혹은 신규 프로젝트에 새로운 패턴이나 규칙을 도입합니다.
  • 일상적이지 않은 어려운 문제에 직면했을 때도 좋은 소프트웨어 설계 능력을 보여줍니다.
  • 소프트웨어 설계 문서에 의미 있는 조언을 줄 수 있습니다.
  • 업무 범위
  • 큰 프로젝트의 계획 수립부터 출시까지의 모든 작업을 책임집니다.
  • 관리자와는 최소한의 방향성만 협의하고, 스스로 모든 작업을 진행합니다.
  • 도구 활용
  • 팀에서 사용하는 모든 도구들을 잘 이해하고 있습니다.
  • 팀에서 사용하는 도구들의 개선 방향을 제안하거나 직접 구현합니다.
  • 급박한 상황에서도 도구들을 효과적으로 사용해서 빠르게 문제를 파악하고 해결할 수 있습니다.


결과

  • 영향
  • 결과물에 대한 높은 기준을 가지고, 팀의 분기 단위 목표들을 제시간에 달성합니다.
  • 여러 개의 큰 프로젝트를 효과적으로 이끌어 팀의 로드맵 달성에 기여합니다.
  • 의사 결정
  • 적극적으로 이해관계자들의 의견을 수집하고, 문제의 핵심을 파악하고, 단기 및 장기적인 영향을 균형 있게 고려해서 가장 좋은 결정을 내립니다.
  • 적시에 결정을 내리되, 고객의 신뢰를 저버릴 수 있는 지름길을 선택하지 않습니다.
  • 자동화
  • 테스트 케이스 작성의 모범 사례를 직접 정의합니다.
  • 수동 작업을 하는 원인을 파악하고 핵심 문제를 수정해 재발하지 않도록 만듭니다.


참여

  • 계획
  • 맡은 프로젝트가 팀의 목표 달성에 기여하는지 판단할 수 있고, 필요한 경우 관리자와 논의해 더 적합한 프로젝트에 기여합니다.
  • 스스로 시간을 효율적으로 관리하고, 중요한 일을 찾아 집중합니다.
  • 주도적으로 사이클을 계획하고 작업을 분배합니다.
  • 팀의 로드맵 계획에 새로운 아이디어 및 방향성을 제안합니다.
  • 협업
  • 팀의 협업 방식을 최적화하고 모범 사례를 정의합니다.


리더십

  • 소통
  • 프로젝트 관리의 모범 사례를 보여줍니다.
  • 사이클을 계획할 때, 복잡한 문제에 대해 기술적인 조언을 주고 필요한 경우 적절한 해결책을 제시합니다.
  • 관리자가 팀의 현재 상태에 대해서 명확하게 알 수 있도록 지속적으로 공유합니다.
  • 주인 의식
  • 대부분의 시스템에서 발생하는 운영 문제들을 직접 해결합니다.
  • 다양한 시스템에서 발생하는 운영 문제들의 우선순위를 직접 구분하고 해결책을 제시할 수 있습니다.
  • 주요 장애의 발생부터 해결까지 대응을 주도합니다.
  • 팀이 시스템을 운영하는 방식을 최적화하고 모범 사례를 정의합니다.
  • 성장
  • 팀 전체의 기술적인 수준을 높이기 위해 지식을 공유하고 표준을 만드는 등 적극적으로 노력합니다.
  • 팀원들의 기술, 강점, 배경 및 스타일을 고려해서 개선해야 할 부분을 파악하고 성장을 돕습니다.
  • 팀원들의 작업에 적극적으로 조언하며 그들의 지식을 더욱 확장합니다.
  • 적극적으로 더 경험 적은 엔지니어들을 가르칩니다.
  • 잠재 후보자에게 팀의 기술적 과제를 설득력 있게 설명할 수 있습니다.


우대 사항

  • 클래스101에서 사용하고 있는 기술에 익숙하시다면 빠른 적응에 도움이 됩니다.
  • React, React Native, TypeScript, GraphQL, Apollo
  • Node.js, Apollo Federation, MongoDB
  • Java, Kotlin, Spring Boot, JPA, Aurora
  • Kafka, Redis, Kubernetes


채용 절차

서류 심사 > 코딩 테스트 (온라인) > 코딩 인터뷰 (대면/1~2시간) > 컬쳐 인터뷰(1시간)>레퍼런스 체크>채용

  • '코딩 인터뷰'는 기본적으로 1시간 진행되나, 심도있는 인터뷰가 필요할 시 추가 진행될 수 있음을 사전 안내드립니다.


공유하기
[경력] Senior Software Engineer

Senior Software Engineer


클래스101은 서비스 운영이 8년차로 접어 들면서 켜켜이 쌓인 여러 시스템의 문제들을 해결할 수 있는 IC(Individual Contributor) 엔지니어를 적극적으로 찾고 있습니다.현재 클래스101 시스템이 가지고 있는 주요 문제는 다음과 같습니다.


다수의 서비스가 중첩되어 복잡해진 시스템 관리

클래스101은 7년간 클래스의 개별 판매, 또 구독 서비스 판매같은 굵직한 비즈니스 모델의 변화를 겪었습니다. 또 플랫폼 내에서 VOD 뿐 아니라 준비물 등의 실제 유형의 상품 판매와 코칭권 등의 무형 상품 판매를 모두 다루고 있어 각기 다른 수강권 관리, 배송 관리, 정산 관리 정책들이 한 시스템 내에서 운영되고 있습니다.

서비스 역시 일반 고객들이 사용하는 웹, 앱 서비스는 물론 내부 직원들용 어드민, 비즈니스팀에 사용하는 각종 연동된 외부 서비스 등이 통합되면서 하나의 문제가 여러 영역에 걸쳐있는 경우가 많습니다. 예를 들어서 소비자가 VOD 강의를 수강할 때 거쳐야 하는 여러 측면에서의 인증(수강권, 등록 기기 검증등)을 빠르게 수행하면서도 안정적인 스트리밍 환경을 제공해야 하는데, 소비자가 "강의가 끊겨요"라는 문제에서 시스템적으로는 점검해야 봐야 하는 요소가 여러 시스템에 걸쳐있습니다. 이처럼 여러 계층의 문제를 종합적으로 이해하고 가장 최선의 실행을 수행할 수 있는 뛰어난 엔지니어가 필요한 상황입니다.


유실되어버린 제품 스펙과 운영 경험

클래스101은 빠른 성장의 시기가 있었지만, 최근 1년 사이 많은 엔지니어링 팀원들이 이탈하게 된 가슴아픈 시기도 있었습니다. 그러다보니 현재 제품의 상태를 명확히 진단하기가 어렵고, 그러다보니 막연하게 그냥 새로 작성하는 것이 나을 것 같다는 느낌만 주고 있습니다.

하지만 현재에도 월 수 백만 명의 사용자가 클래스101을 이용하고 있고, 또 비즈니스적으로 꾸준하게 새로운 비즈니스를 시도해야 하기에, 거대한 기존의 코드베이스위에 어떻게든 비즈니스가 성장할 수 있도록 덧붙이는 작업이 계속되고 있습니다.이에 복잡해진 비즈니스 로직들을 다시 한 번 정리하고, 실타래처럼 얽힌 문제들 속에 가장 먼저 풀어야 하는 그 문제의 시작을 식별하여 리팩토링을 하고자 전사적인 결정을 하였습니다. 이는 장기적인 관점의 로드맵이며, CEO부터 모든 영역의 리더십이 반드시 해결하고자 동의 한 주제입니다.


주요 업무

  • 클래스101의 다양한 서비스를 설계, 개발하고 운영합니다.
  • Discovery: 클래스메이트가 온라인 클래스, 준비물, 전자책, 크리에이터, 커뮤니티 등 클래스101이 가진 모든 콘텐츠 중 원하는 것을 쉽게 발견할 수 있도록 분류, 추천 및 검색 경험을 개선합니다.
  • Learning Experience: 다양한 환경에서 영상 콘텐츠를 실시간으로 스트리밍하고, 다른 클래스메이트들 혹은 크리에이터와 직접 소통하는 커뮤니티를 만들고, 수강률과 잔존율을 높이는 제품 실험을 진행하는 등 구매 이후의 경험을 책임집니다.
  • Creator: 크리에이터가 자유롭게 콘텐츠를 만들고, 클래스메이트들과 소통하고, 수익을 극대화할 수 있도록 다양한 제품을 만듭니다.
  • Commerce: 실물 및 비실물 상품의 단건 결제와 구독 결제, 주문 처리, 재고 관리와 배송, 정산과 세금 계산까지를 아우르는 온라인 마켓플레이스 플랫폼을 구축합니다.
  • Core: 인증, 알림, 실험 등 클래스101 제품의 기반 기능들을 만들고 발전시켜 지속적이고 확장 가능한 성장을 할 수 있도록 돕습니다.
  • B2B: 클래스101의 콘텐츠들을 기업 교육 및 복지에 사용할 수 있도록 학습 및 계약 관리 시스템을 구축합니다.
  • 클래스101의 전체 제품 도메인을 이해하고, 확장 및 관리가 용이하도록 단계적으로 마이그레이션합니다.



현재 클래스101이 찾고 있는 엔지니어는 다음과 같습니다:

  • 7년차 이상의 경력자로, 본인이 직접 작성하지 않았던 복잡한 시스템을 분석하고 문제의 근본 원인을 찾아 해결한 경험을 갖춘 분
  • 레거시 코드와 신규 코드 사이에서 균형 잡힌 접근으로 시스템을 개선할 수 있는 역량을 갖춘 분
  • 장기적인 관점에서 기술 부채를 해소하고 시스템의 안정성을 높이는 데 관심이 있는 분


다음은 클래스101에서 Senior Software Engineer에게 기대하는 역량입니다. 우리는 신규 입사자가 1년 이내로 아래 기대치를 모두 충족하기를 기대합니다.


역량

  • 기술
  • 클래스101의 엔지니어링 모범 사례를 직접 정의합니다.
  • 기존 코드베이스 혹은 신규 프로젝트에 새로운 패턴이나 규칙을 도입합니다.
  • 일상적이지 않은 어려운 문제에 직면했을 때도 좋은 소프트웨어 설계 능력을 보여줍니다.
  • 소프트웨어 설계 문서에 의미 있는 조언을 줄 수 있습니다.
  • 업무 범위
  • 큰 프로젝트의 계획 수립부터 출시까지의 모든 작업을 책임집니다.
  • 관리자와는 최소한의 방향성만 협의하고, 스스로 모든 작업을 진행합니다.
  • 도구 활용
  • 팀에서 사용하는 모든 도구들을 잘 이해하고 있습니다.
  • 팀에서 사용하는 도구들의 개선 방향을 제안하거나 직접 구현합니다.
  • 급박한 상황에서도 도구들을 효과적으로 사용해서 빠르게 문제를 파악하고 해결할 수 있습니다.


결과

  • 영향
  • 결과물에 대한 높은 기준을 가지고, 팀의 분기 단위 목표들을 제시간에 달성합니다.
  • 여러 개의 큰 프로젝트를 효과적으로 이끌어 팀의 로드맵 달성에 기여합니다.
  • 의사 결정
  • 적극적으로 이해관계자들의 의견을 수집하고, 문제의 핵심을 파악하고, 단기 및 장기적인 영향을 균형 있게 고려해서 가장 좋은 결정을 내립니다.
  • 적시에 결정을 내리되, 고객의 신뢰를 저버릴 수 있는 지름길을 선택하지 않습니다.
  • 자동화
  • 테스트 케이스 작성의 모범 사례를 직접 정의합니다.
  • 수동 작업을 하는 원인을 파악하고 핵심 문제를 수정해 재발하지 않도록 만듭니다.


참여

  • 계획
  • 맡은 프로젝트가 팀의 목표 달성에 기여하는지 판단할 수 있고, 필요한 경우 관리자와 논의해 더 적합한 프로젝트에 기여합니다.
  • 스스로 시간을 효율적으로 관리하고, 중요한 일을 찾아 집중합니다.
  • 주도적으로 사이클을 계획하고 작업을 분배합니다.
  • 팀의 로드맵 계획에 새로운 아이디어 및 방향성을 제안합니다.
  • 협업
  • 팀의 협업 방식을 최적화하고 모범 사례를 정의합니다.


리더십

  • 소통
  • 프로젝트 관리의 모범 사례를 보여줍니다.
  • 사이클을 계획할 때, 복잡한 문제에 대해 기술적인 조언을 주고 필요한 경우 적절한 해결책을 제시합니다.
  • 관리자가 팀의 현재 상태에 대해서 명확하게 알 수 있도록 지속적으로 공유합니다.
  • 주인 의식
  • 대부분의 시스템에서 발생하는 운영 문제들을 직접 해결합니다.
  • 다양한 시스템에서 발생하는 운영 문제들의 우선순위를 직접 구분하고 해결책을 제시할 수 있습니다.
  • 주요 장애의 발생부터 해결까지 대응을 주도합니다.
  • 팀이 시스템을 운영하는 방식을 최적화하고 모범 사례를 정의합니다.
  • 성장
  • 팀 전체의 기술적인 수준을 높이기 위해 지식을 공유하고 표준을 만드는 등 적극적으로 노력합니다.
  • 팀원들의 기술, 강점, 배경 및 스타일을 고려해서 개선해야 할 부분을 파악하고 성장을 돕습니다.
  • 팀원들의 작업에 적극적으로 조언하며 그들의 지식을 더욱 확장합니다.
  • 적극적으로 더 경험 적은 엔지니어들을 가르칩니다.
  • 잠재 후보자에게 팀의 기술적 과제를 설득력 있게 설명할 수 있습니다.


우대 사항

  • 클래스101에서 사용하고 있는 기술에 익숙하시다면 빠른 적응에 도움이 됩니다.
  • React, React Native, TypeScript, GraphQL, Apollo
  • Node.js, Apollo Federation, MongoDB
  • Java, Kotlin, Spring Boot, JPA, Aurora
  • Kafka, Redis, Kubernetes


채용 절차

서류 심사 > 코딩 테스트 (온라인) > 코딩 인터뷰 (대면/1~2시간) > 컬쳐 인터뷰(1시간)>레퍼런스 체크>채용

  • '코딩 인터뷰'는 기본적으로 1시간 진행되나, 심도있는 인터뷰가 필요할 시 추가 진행될 수 있음을 사전 안내드립니다.