hyperconnect career

지원하기

Machine Learning Software Engineer (HYPERCONNECT AI)

Engineering

[포지션 소개]

하이퍼커넥트 Machine Learning Software Engineer (MLSE)는 사람과 사람 사이를 연결하는 서비스에서, 소프트웨어 엔지니어링을 통해 머신러닝 기술을 서비스에 적용하고 사용자 경험을 혁신하는 일을 합니다. 사내 AI 조직에서 만든 영상/음성/문자/추천 등을 포함하여 다양한 도메인의 수많은 모델을 프로덕션에 적용하고, 모바일 및 클라우드 서버를 통해 안정적으로 제공하면서 마주하는 엔지니어링 문제들을 해결하며, 우리가 만들어 내는 기술이 실제 서비스의 성장에 기여하는 것을 목표로 합니다.

이러한 목표 아래 하이퍼커넥트의 ML Software Engineer는 여러 종류의 머신러닝 기술들을 수년간 발전시켜 나가고 있으며, 이렇게 축적된 기술들을 제품에 효과적으로 적용하는 방식을 고민하고 개발하고 있습니다.

ML Software Engineer는 우리가 보유한 모든 AI 기술을 제품에 적용하여 비즈니스 임팩트를 낼 수 있도록 하며, 지속 가능한 시스템을 개발하여 AI 기술의 적용이 가속화 되도록 하는 것을 목표로 합니다. 이 목표를 달성하기 위해

(1) On-device 에서 ML 모델을 잘 적용할 수 있도록 기반 코드를 개발합니다.
(2) 미디어를 전처리하고 ML 모델로 추론하는 전체 파이프라인의 성능 최적화를 수행합니다.
(3) A/B 테스팅을 통해 머신러닝 모델의 온라인 성능을 측정하고 유저의 경험을 개선합니다.
(4) ML 모델 기반의 확장성 있는 백엔드 서버를 개발합니다.
(5) ML 모델 추론 및 평가를 위한 실시간 데이터 파이프라인을 개발/운영합니다.

그 과정에서 다른 직군과도 밀접하게 협업하면서 KPI 달성에 도달하기 위해 필요로 하는 모든 과정(문제 정의, 가설 설정, 실험 설계, 분석 및 피드백)에 참여하며 주도적으로 업무를 진행하고 있습니다. 일하는 모습에 대한 조금 더 자세한 이야기는 다음의 내용을 참고하시면 좋습니다.

ML Software Engineer들이 풀고 있는 재미있는 문제들은 Tech blog에도 업로드 하고 있습니다.



[업무 환경]

[국내 최상위 수준의 AI 조직]

탑 티어 AI/ML 학회에 논문을 주기적으로 출판하는 Machine Learning Engineer 및 Machine Learning Research Scientist 들과 함께 일하고 있습니다. 하이퍼커넥트에서 출판한 논문은 여기서 확인해보실 수 있습니다.

[풍부한 MLOps 노하우]

50개 이상의 모델을 프로덕션에서 사용하고 있을 만큼, MLOps에 대한 노하우가 풍부한 조직에서 일할 수 있습니다.




[담당 업무]

하이퍼커넥트는 제품에 머신러닝 기술을 적용하기 위해 다양한 방면으로 노력하고 있습니다. 현재 하이퍼커넥트의 ML Software Engineer는 아래의 업무를 수행하게 됩니다.

[머신러닝 기능이 탑재된 클라이언트 SDK 개발]

하이퍼커넥트의 모바일 어플리케이션에 탑재되는 머신러닝 SDK를 TFLite 와 같은 도구를 이용하여 개발하고 운영합니다. 하이퍼커넥트에서 개발하는 SDK는 전 세계 각지에서 사용되는 수많은 디바이스에서 동작할 수 있어야 하기에, 매우 높은 안정성을 목표로 하며 개발되고 있습니다. 더불어 최고 성능의 머신러닝 API를 제공하기 위해 지속적으로 업데이트될 수 있어야 합니다. 나아가 앱 전체의 성능과 사용경험에 어떠한 영향을 줄 수 있는지 이해하고 관련된 코드를 최적화/수정합니다.

[추론 최적화]

하이퍼커넥트의 머신러닝 인스턴스들의 효율적인 서빙과 더불어 추론 시 병목이 되는 부분을 찾아내고 최적화 하는 것이 필요할 수 있습니다. 하드웨어 최적화, 모델 최적화, 배포타겟 별 최적화 등 다양한 층위에서 이를 실행할 수 있습니다. 프로파일링 등을 적극적으로 이용하고 로깅되는 다양한 데이터 징후를 탐지하여 이러한 문제를 도출하고 해결해 나가고 있습니다.

[머신러닝 기반의 백엔드 어플리케이션 설계 및 구현]

하이퍼커넥트와 매치그룹에서 운영 중인 서비스들의 품질을 높이기 위한 다양한 머신러닝 기반의 백엔드 서비스 (JVM, golang, python)를 개발합니다. 글로벌 스케일에서 실시간 동작이 가능하도록 성능 관점에서의 많은 고민과 함께 설계되고 있으며, 팀에서 운영 중인 마이크로서비스들은 전사 내에서도 가장 높은 수준의 트래픽을 처리하고 있습니다.
Requirements
  • 2년 이상 Mobile Client 개발 유관 경력이 있거나, 그에 준하는 실력을 보유하신 분
  • CS fundamentals (운영체제, 컴퓨터 시스템 아키텍처, 자료구조 및 알고리즘)에 대한 탄탄한 기본지식을 보유하신 분
  • Java, Kotlin, Swift 중 한 가지 이상 언어에 능숙하고, 그 외 Python, Go, JavaScript 등 프로그래밍 언어를 학습하여 개발이 가능하신 분
  • 데이터 분석에 필요한 SQL 사용에 능숙하며, 존재하고 있는 데이터의 의미를 이해하고 실제 비즈니스의 문제 해결의 근거로 사용이 가능하신 분
  • 다양한 개발 경험을 통해 여러 스택을 넘나드는 걸 좋아하고, 익숙하지 않은 환경에 빠르게 적응할 수 있는 분
  • 새로운 문제를 빠르게 정의하고, 주도적으로 해결하실 수 있는 분
  • 공동의 목표 달성을 위해 서로 협력하고 서로에게 도움을 요청할 수 있는 긍정적이고 상호 존중하는 팀워크 자세를 보유하신 분
  • 기계학습과 딥러닝에 대한 관심이 있으신 분
  • Preferred Qualifications
  • 1년 이상 Python을 이용하여 ML/DS 라이브러리나 딥러닝 프레임워크를 활용한 경험이 있으신 분
  • 1년 이상 C++를 이용한 라이브러리 개발 경험이 있으신 분
  • 머신러닝 모델의 학습부터 서비스 배포까지 해보신 경험이 있으신 분
  • 여러 개발 조직과 협업하며 업무를 진행한 경험이 있으신 분
  • Linker, Loader 및 시스템 레벨의 저수준 라이브러리를 설계, 빌드, 디버깅한 경험이 있으신 분
  • 프러덕션 수준의 모바일, 웹 환경에서 모델을 배포하고 여기서 생길 수 있는 다양한 층위의 문제들을 다뤄 보신 분
  • 영어로 소통하는 것에 어려움이 없는 분
  • 고용형태/채용절차
  • 고용 형태: 정규직
  • 채용 절차: 서류전형 > Recruiter Call > 1차 면접 > 2차 면접 > 최종합격 (* 필요 시 전형이 변경 진행될 수 있습니다.)
  • 서류 전형의 경우 합격자에 한하여 개별 안내드릴 예정입니다.
  • 지원 서류: 자유 양식의 상세 경력기반 영문이력서(PDF)
  • 기타
  • 하이퍼커넥트는 증명사진, 주민등록번호, 가족관계, 혼인여부 등 채용과 관계없는 개인정보를 요구하지 않습니다.
  • 수습기간 중 급여 등 처우에 차등이 없습니다.
  • 제출해 주신 내용 중 허위 사실이 있을 경우 채용이 취소될 수 있습니다.
  • 관련법 상 근로제공에 결격사유가 있는 경우 채용이 취소될 수 있으며, 필요시 사전에 안내된 채용 절차 외에도 추가 전형 및 서류 확인이 진행될 수 있습니다.
  • 필요 시 지원자의 동의 하에 평판조회 절차가 진행될 수 있으며, 평판조회 결과에 따라 채용이 취소될 수 있습니다.