아마존 SDE-2L5 면접 경험 및 팁 인터뷰 준비를 위한 자원

아마존 SDE-2L5 면접 경험 및 팁 인터뷰 준비를 위한 자원
Cozy CodingPosted On Jul 7, 20246 min read

Hello Everyone,

A few months ago, I went through virtual onsite interviews at Amazon for the SDE-2 position, but unfortunately, I got rejected. I thought I would share my experiences and insights to help you with your upcoming interviews.

This article is divided into sections covering my interview experience and tips/resources for preparing for mid-senior level software engineering roles.

어느 날, 아마존에서 소프트웨어 개발자 직책을 신청해보기로 생각했습니다. 그들의 채용 포털에 로그인하고 몇 개의 직업 목록에 지원했습니다. 며칠 후에는 인사 담당자가 나에게 연락하여 평가 링크를 보냈습니다. 전혀 예상하지 못했어요.

나의 면접 경험

아마존 평가 시험을 통과한 후, 인사 담당자는 한 달 후에 가상 온사이트 면접 라운드를 예약해 주셨습니다.

각 라운드는 약 1시간입니다. 라운드별로 25분은 저수준 설계/고수준 설계/코딩 작업에 할애되며, 25분은 아마존 리더십 원칙 질문에 할애되며, 면접자가 할 수 있는/논의할 수 있는 추가 질문을 위해 5~10분이 할당됩니다.

다음은 각 라운드에서의 나의 경험입니다.

1 라운드:

  • 이번 라운드에서는 SDE-3가 나의 면접을 진행했습니다.
  • 코드 확장성 및 객체 지향 프로그래밍 개념에 중점을 둔 저수준 디자인 라운드입니다.
  • 질문은 일부 데이터 구문 분석 애플리케이션과 관련이 있습니다.
  • 필요한 클래스, 함수 등을 구현하고 지시된 대로 작업을 수행했습니다.
  • 나의 의견: 필요한 모듈을 코딩하는 동안 oops 개념을 설명해준 데로 잘 진행되었습니다.

2 라운드:

  • SDE-2님께서 이번 라운드에서 면접을 진행했습니다.
  • Leetcode의 수업 일정 문제와 비슷한 질문을 하셨습니다.
  • 필요한 테스트 케이스로 솔루션을 구현했고, 면접관과 솔루션을 공유했습니다.
  • 제 의견: DSA 문제를 필요한 테스트 케이스와 함께 해결했기 때문에 잘 진행된 것 같습니다.

라운드 3:

  • SDM님께서 이번 라운드에서 면접을 진행했습니다.
  • Netflix, Amazon Prime 등과 같은 비디오 스트리밍 서비스를 설계하는 것을 요청하셨습니다. 장치에 관계없이 자동 재생, 시청 기록 유지, 비디오 처리 및 배포 등 몇 가지 주요 기능에 초점을 맞춰 설계하라는 내용이었습니다.
  • 내 의견: 시스템 디자인 질문에 대한 구조를 따라가려 했습니다. 필요한 구성 요소를 설명하고 트레이드 오프를 설명했으며 요구 사항에 설명된 기능을 생성했습니다. 그러나 리더십 원칙 질문에 대해서는 제 이야기를 잘 설명하지 못한 것 같아요.

Round 4:

  • SDM님이 이번 라운드에서 나에게 면접을 봐 주셨어요.
  • 그분은 두 가지 데이터 관련 질문 스트림을 비교하는 차이점에 대해 물어봤어요.
  • 면접 중 문제 설명이 모호해서 이해하는 데 시간이 걸렸어요. 면접관이 의도적으로 문제를 모호하게 제시해 테스트하는 것일 수도 있겠다 싶어요. 면접자가 어떻게 모호한 문제를 다루고 해결하는지 능력을 테스트하는 것이겠죠.
  • 제 의견: 문제를 이해하는 데 시간이 걸렸어요. 문제를 이해하기 위해 몇 가지 명확한 질문을 하기 위해 시간을 썼어요. 문제를 더 빨리 파악할 필요가 있었어요. 불행히도, 1-2개의 리더십 원칙 질문을 위한 충분한 준비를 하지 않아서 제대로 대답하지 못했어요.

모든 면접관들이 각 라운드마다 3-4개 이상의 Amazon 리더십 원칙 질문에 초점을 맞추었어요.

중급-상급 소프트웨어 엔지니어 면접을 잘 준비하는 데 도움이 되는 자료들

데이터 구조 및 알고리즘 질문에 대한 아래 측면에 집중해 보세요

  • 입력 (면접관과 입력 사항을 확인/명확히하세요)
  • 출력 (면접관과 출력 사항을 확인/검증하세요)
  • 데이터 구조 (문제에 기반하여 데이터를 어떻게 모델링할 수 있는지 명확히 생각해 보세요)
  • 알고리즘 (문제를 해결하기 위해 어떤 사전 구축된 알고리즘이 사용될 수 있는지 분석하세요)
  • 해결 방법 단계 (코드 작성 전에 접근 방식을 면접관과 확인 후 진행해 보세요)
  • 시간 및 공간 복잡도 (접근법을 설명할 때, 시간/공간 복잡도를 면접관에게 전달하세요)
  • 최적화된 해결책 (면접관이 최적화된 방법을 요청하거나 이를 따르는 경우, 시간/공간 복잡도를 최적화하거나 어떤 알고리즘을 사용해 보세요)

우리는 이러한 유형의 문제를 해결할 때 다음과 같은 한정된 데이터 구조와 알고리즘을 활용할 수 있습니다. 그러나 시간/공간 복잡성과 같은 제약 사항에 기반하여 필요한 문제 설명을 기반으로 그것들을 사용하는 것은 매우 까다로울 수 있습니다.

Low-Level Design

Please refer to the below flow map, which I have created to bring together all concepts for an overall perspective.

Flow Map

Feel free to go through the educational resource I provided above in the resource section and practice problem-solving by integrating Object-Oriented Programming, SOLID principles, and Design Patterns. Happy coding!

시스템 디자인

시스템 디자인 라운드에서는 아래 프로세스/구조를 따르려고 노력합니다. 필요에 따라 수정할 수 있습니다.

  1. 기능 요구 사항 (요구 사항을 묻거나 명확히 하세요)
  2. 비기능 요구 사항 (대기 시간, 가용성 등을 명확히 하세요)
  3. 용량 추정 (필요시 저장 용량, 계산 용량 추정을 진행해야 하는지 면접관에게 물어보세요)
  4. 데이터베이스 스키마/모델 디자인
  5. API 디자인
  6. 고수준 디자인 (요구 사항에 따라 고수준 디자인을 그립니다)
  7. 디자인 확장 (면접관의 요구에 따라 확장합니다)
  8. 필요한 경우 트레이드오프 (필요시 트레이드오프를 설명하세요)

행동 질문

Amazon의 경우, 회사 웹사이트에 언급된 16가지 리더십 원칙을 따라야합니다. 저는 자원 섹션에 언급한 링크들을 확인하면서 이 16가지 리더십 원칙에 대한 2-3가지 시나리오를 준비해보았습니다.

기타 회사의 경우, 아래 이미지를 참고하시면 도움이 될 것 같습니다. 이미지 출처: X

Amazon Leadership Principles

제 학습 내용

  • 이전에 면접에서 행동 부분을 과소평가했었어요. DSA/LLD/HLD 과제보다 이러한 부분이 중요하다는 것을 깨달았어요. 인터뷰어는 실제 비즈니스 사용 사례에서 특정 상황을 효율적으로 다룬 경험이나 앞으로 어떻게 다룰지에 대한 아이디어를 얻을 수 있기 때문에 커뮤니케이션이 중요해요!
  • 중급-시니어 레벨에서는 효율적이고 자신감 있게 후속 질문에 빠르게 대답해야 해요.
  • 인생을 너무 진지하게 받아들이지 마세요 ;) 실수는 일어날 수 있어요. 결국 개선할 거예요. 빠르게 실패하고 그 실패를 다음 동작을 보완하기 위해 활용하세요.
  • 동기부여는 일시적이에요. 행동이 동기부여를 만들어냅니다. 그 반대로는 안 돼요.
  • 노력을 꾸준히하고, 저항력을 보이고, 끈질기고 목표를 달성하기 위해 끈질기 있어야 해요.

저는 내가 면접을 잘 봤다고 느꼈지만 몇 가지 LP 질문에 잘 대답하지 못했고, 마지막 라운드에서 코딩 문제를 잘 해결하지 못했어요. 그래서 제 거절의 이유가 될 수 있어요. 어쨌든, 낙담하지 않고 내 다음 면접을 위해 노력할 거에요. 다가올 면접이 예정돼 있다면 다시 도전하겠지요 :)

모두 학습하는 즐거움 느끼세요!

제 경험을 공유해주세요! 제게 도움이 될 수 있을 거예요. 감사합니다!