2P by neo 2023-09-16 | favorite | 댓글 1개
  • 작가 Matt Basta가 Uber를 위한 도구를 개발한 경험을 공유, 이 도구는 Excel과 유사하며 회사의 데이터 과학자들이 직면한 특정 문제를 해결하기 위한 것이었다.
  • Uber의 데이터 과학자들은 여러 노트북을 사용하여 밤새 데이터 과학 모델을 실행하였는데, 이는 비효율적이었으며 데이터와 돈의 손실을 초래하였다.
  • Basta는 Uber의 "Crystal Ball" 팀에 합류하여 이 과정을 자동화하기 위한 "R-Crusher"라는 도구를 개발하였다. 그는 프론트엔드 엔지니어로서 이 도구를 위한 사용자 인터페이스를 구축하는 것이었다.
  • 이 도구는 Uber의 내부 프론트엔드 프레임워크인 "Bedrock"를 사용하여 몇 주 안에 완성되었다. 그 후 Basta는 이 도구에 사용자 중심의 기능을 추가하기 위해 7명의 프론트엔드 팀을 구성하였다.
  • 이 도구의 주요 목적은 중국에서의 Uber 운영을 지원하는 것이었다. 이 회사는 현지 택시 호출 서비스인 Didi와 경쟁하고 있었다. 이 도구는 중국에서 예상되는 승차 인원 데이터를 생성하고 운전자 인센티브를 결정하는 데 사용되었다.
  • 그러나 이 도구는 Uber China 팀이 사용하는 Excel 스프레드시트를 모방해야 하는 도전에 직면하였다. 이 스프레드시트는 복잡한 공식을 포함하고 있었으며 운전자 인센티브를 결정하는 데 사용되었다.
  • Basta는 Excel 공식을 읽고 실행할 수 있는 브라우저 기반의 스프레드시트 엔진을 구축하기로 결정하였다. 그는 이전 직장인 Box에서 개발한 도구인 "Box Sums"의 프로토타입을 시작점으로 사용하였다.
  • Excel의 순환 참조 등 여러 기술적인 도전을 극복한 후, 이 도구는 성공적으로 Uber의 R-Crusher 프론트엔드인 Wesley에 통합되었다.
  • 그러나 도구가 출시된 직후, Uber China는 Didi에게 팔렸고, 이 도구는 더 이상 필요하지 않아 Wesley에서 제거되었다.
  • Basta는 이 경험에 대해 반성하며, 엔지니어가 작성하는 모든 코드는 결국 레거시 코드가 된다고 말한다. 그는 자신의 작업의 장기성에 집착하기보다는 비즈니스 가치를 창출하는 데 초점을 맞추는 것의 중요성을 강조한다.
Hacker News 의견
  • Uber를 위한 브라우저 기반 스프레드시트 엔진의 창조에 대한 기사, 중국에서 예상되는 승차 고객 관련 데이터를 처리하기 위한 Excel과 유사한 방식
  • 저자는 중국에서 경제 및 산업 스파이의 만연성을 강조하며, 기술 산업에서의 자신의 경험을 통한 일화적 증거를 인용
  • 저자는 소프트웨어 엔지니어링에서 실용주의의 중요성을 강조하며, 코드는 "애완동물이 아닌 소"처럼 취급되어 더 이상 유용하지 않을 때 폐기되어야 한다고 주장
  • Uber를 위해 작성된 코드의 소유권에 대한 논의가 있으며, 일부는 이것이 Uber의 재산인지, 저자의 이전 고용주인 Box의 재산인지 의문을 제기
  • 일부 댓글 작성자들은 JavaScript로 전체 스프레드시트 엔진을 구축하는 결정에 의문을 제기하며, Apache POI와 같은 기존 솔루션을 대신 사용했어야 했다고 제안
  • 저자가 코드를 Github에서 공개적으로 사용할 수 있게 한 결정이 칭찬받으며, 일부는 코드가 Uber에 의해 최종적으로 사용되지 않았더라도 카타르시스의 형태를 제공한다고 제안
  • 일부 댓글 작성자들은 Uber가 직면한 문제에 대한 대안적인 해결책을 제안하며, 모델이 출력하는 데이터에 Excel을 직접 연결하는 것과 같은 방법을 제안
  • 엔지니어의 역할에 대한 저자의 관점이 강조되며, "아름다운 장신구"를 만드는 것보다 결과를 제공하는 것의 중요성에 초점을 맞춤
  • Uber의 내부 애플리케이션 시스템이 디자인과 효율성에 대해 칭찬받으며, 한 댓글 작성자는 30분 이내에 하위 도메인에서 Hello World 애플리케이션을 실행할 수 있었다고 주장
  • 기사는 Uber의 BI 팀이 직면한 도전에 대한 내부자의 관점을 제공하며, 인센티브에 소비된 상당한 자원과 Excel과 같은 기존 도구를 복제하려는 압력을 포함