Backend Engineer

  • Product Team
  • Seoul, Korea, Republic of

Backend Engineer

Job description

기술로 크리에이티브의 문을 엽니다.

Shakr는 모든 광고주가 새로운 디지털 마케팅 환경에서 성공할 수 있도록 도와주는 비디오 기술 제품을 제작합니다. Fortune 500 선정 기업을 포함한 2,000곳 이상의 비즈니스에서 성장을 위해 Shakr를 이용하여 수십만개 이상의 동영상 광고를 만들고 있습니다.


Shakr의 제품 팀은 어떻게 일하나요? 😎

아이디어 구체화

실제 개발에 들어가기 앞서 아이디어를 구체화하고 검증하는 과정을 진행합니다. 와이어프레임을 그려보고, 아이디어가 영향을 줄 고객군을 고려하여 어떤 방향으로 구현이 되어야 할 지 결정합니다. 

대략적인 방향이 결정되면, 고객성공팀(Customer Success)과 같이 아이디어에 밀접한 관련이 있는 팀과의 대화를 통해 고객의 입장에서 아이디어가 어떻게 받아들여질지, 어떤 효과를 달성할 수 있을지 확인합니다. 뉴욕 오피스 및 전 세계에서 리모트 근무를 하는 팀원들과 대화할 때에도 Slack과 Zoom 같은 온라인 커뮤니케이션 도구를 활용해 효율적으로 협업합니다. 논의가 충분히 이루어진 이후 Notion, Linear, Asana 같은 도구로 역할과 책임을 정리하고 다음 단계를 결정합니다.

개발

아이디어가 충분히 구체화되면 본격적인 개발에 들어갑니다. 모든 코드 작업은 GitHub의 Pull Request로 이루어지는데, GitHub Actions가 각 프로젝트마다 지정해둔 단위 테스트와 린터를 실행하여 오류를 사전에 예방합니다. 예를 들면, 백엔드 프로젝트에서는 Rubocop이 코딩 스타일을 검사하고, RSpec이 단위 테스트를 구동하고, Code Climate이 변경점 및 전체 코드 커버리지를 계산하여 보여줍니다.

개발 도중에 피드백이 필요하다고 생각되거나 머지 준비가 되었을 때 코드 리뷰 요청을 합니다. PR마다 최소 1명이 코드 리뷰를 하는데, 코딩 스타일부터 변수 이름 변경 권유, 리팩토링 제안까지 다양한 조언을 합니다. 

배포

리뷰가 끝나면 PR이 머지되고, 다음 릴리즈 사이클에 배포를 진행합니다. 내부 및 외부 도구를 이용하여 배포는 개발자가 직접 진행할 수 있는 환경이 마련되어 있어, 필요할 때 바로 배포를 진행할 수 있습니다.

사용자의 작업 흐름에 중요한 영향을 미치는 배포를 할 때는, 점진적 출시(Phased rollout)을 사용하여 부정적 영향을 최소화합니다. 자세한 데이터 분석이 필요한 경우 고객성공팀과 함께 데이터를 분석하고 다음 단계를 결정합니다.


어떻게 대우하나요? 🥳

Shakr에서는 규칙에 구애받지 않고, 자율성에 기반한 업무 환경을 만들기 위해 다양한 지원을 하고 있습니다.

  • 10시에서 11시 사이에 출근하고, 6시쯤 퇴근하는 출퇴근 제도를 운영합니다. 현재는 코로나 확산 방지를 인해 개발팀의 대부분은 완전 재택 근무를 진행하고 있습니다.
  • 쉬어야 할 때, 쉬고 싶을 때 쉴 수 있는 유연한 휴가를 제공합니다.
  • 리모트(원격 근무)를 자유롭게 합니다. 집에 볼 일이 있어도, 카페나 다른 원하는 공간에서 기분 전환을 하고 싶어도 리모트를 할 수 있습니다.
  • 업무시 사용하는 하드웨어는 생산성에 큰 영향을 주기 때문에 아끼지 않습니다. 맥북 프로 혹은 동급 구성의 장비를 제공합니다.
  • 개발에 도움이 되는 소프트웨어나 서비스 사용에 인색하지 않습니다. 팀원에 따라 Tower, OmniGraffle 혹은 Sketch와 같은 소프트웨어부터 Code Climate, Datadog와 같은 서비스도 적극적으로 사용합니다.
  • 사무실에서 함께 먹는 점심 식사를 지원합니다.

Requirements

백엔드 엔지니어는 어떤 일을 하나요? 🤔

Shakr의 백엔드는 대부분 Ruby 및 Rails 프레임워크를 사용하는 서비스로 구성되어 있습니다. 사용자 관리, 정기권 처리, 영상 제작부터 비디오 템플릿 관리까지 다양한 역할을 담당하고 있으며, 백엔드 엔지니어로서 다음과 같은 업무를 맡게 됩니다.

  • Shakr 제품 기획과 설계를 백엔드 엔지니어의 관점으로 참여합니다.
  • API 서버의 신규 기능을 개발하고, 출시를 담당합니다.
  • 기존에 서비스되고 있는 제품이나 컴포넌트의 유지 보수를 담당합니다.

Shakr에서는 스스로를 이끌 수 있고, 제품의 기술적인 면 뿐만 아니라 디자인과 경험을 중요시하며, 빠른 기능 개발과 확장성의 균형을 잡을 수 있는 엔지니어를 모시고 있습니다. 우리는 주요 제품에 직접 기여하고, 제품이 향하는 방향을 함께 정합니다. 전 세계에 있는 다양한 문화권의 팀원과 함께 멋진 결과를 만들고 있습니다.


자격 요건

  • 하나 이상의 현대적인 프로그래밍 언어(Ruby, Elixir, Python, Javascript, Go 등)로 백엔드 서버 개발을 진행해본 경험
  • 단위 테스트(Unit Test) 및 관련 프레임워크에 대한 관심
  • 데이터베이스 구조와 백엔드 설계 패턴에 대한 이해

선호 요건

  • 큰 규모의 Ruby on Rails 애플리케이션을 관리해 본 경험
  • 하나 이상의 단위 테스트 프레임워크(RSpec, Test::Unit 등) 사용 경험
  • PostgreSQL 쿼리 최적화 및 데이터 구조 설계 경험
  • 애플리케이션 프로파일링 및 최적화 경험
  • 다른 역할을 가진 여러 팀과 영어 및 한국어로 능동적으로 의사소통을 할 수 있는 능력과 의지

채용 절차

  • 서류 검토
  • 1차 면접 (대면 혹은 화상)
  • 2차 면접 (기술)
  • 처우 협의