본문 바로가기
leetcode

[인턴십 합격] Amazon 인턴십 합격수기

by sk_victoria 2024. 3. 16.

Amazon Software Development Engineer 인턴에 합격했다는 메일을 받았다! 면접이 끝난지 6일만이었다.

이번 아마존 인턴은 정말 되고 싶었던 이유가, 찐 "software development"를 할 수 있는 기회이기 때문이다. 대학교 주전공도, 회사도, 대학원 전공도 약간씩 Computer Science랑은 조금씩 거리가 있어서 정말 소프트웨어를 공부할 수 있는 기회는 그리 많지 않았던 것 같아 항상 아쉬웠었다.

그래서 이번 인턴 면접은 준비하는 과정 자체가 즐거웠다. 중간고사 시즌에, 과제, TA, 논문도 준비해야해서 정신없이 바빴는데 그래도 짬을 내서 leetcode 한문제씩 푸는 그 시간이 정말 귀했다. 대학원은 내가 원하는 것을 배우러 오는 곳인데, 만 26살이 되어서야 내가 원하는 것들 (leetcode, 논문 내보기)을 하고있는 것 같아서 기뻤다.

면접은 1:1 화상면접으로 이루어졌다. 원래 45분으로 스케줄되어있었는데, 나는 면접관이 계속 좀만 더 얘기를 해보자며 시간을 계속 늘려서 총 1시간 반동안 면접을 봤다..

처음에는 면접관이 인사를 하면서 시작했다. 내가 긴장해있는 걸 눈치채고 긴장을 풀어주기 위해서였는지 면접관이 먼저 자기소개를 해주었다. 이전회사에서는 어떤 일을 했는지, 어쩌다 이직을 해서 아마존에서 일하게됐는지, 아마존에서는 무슨일을 하는지 등등에 대해서 얘기해주었다.

다음에 바로 behavioral interview로 진행되었다. 미국의 인터뷰는 behavioral / technical interview로 나뉜다. behavioral은 우리나라의 인성면접 이라고 보면 된다. 나는 두 문제가 나왔는데, 1. 리더로서 가장 힘들었던 순간이 언제였냐, 2. 많은 정보 없이 결정을 내려야 했던 순간이 언제였냐 였다. 두 문제 모두 예상질문에 있던 것들이라 거의 생각 안하고 대답이 가능했다. 1번 문제는 2021년 현차 학술대회를 나갔을 때 결과가 빨리 안나오고 + 팀원간 불화로 인해 리더로서 힘들었던 순간을 얘기했고 2번 문제는 회사 다닐때 그룹원이 대거 빠지게 되면서 내가 일을 갑자기 많이 맡아 성능까지 빠른 시일내에 올려야했던 순간을 얘기했다.두 문제 모두 꼬리질문이 이어졌다. 1-1. 만약 그때로 다시 돌아간다면 어떤 걸 했을 것 같냐, 2-1. 정보가 없어서 모든 걸 닥치는대로 시도해봤다고 했는데, 어떤 파라미터를 조정해야 성능이 잘 나오는지는 구체적으로 어떻게 안거냐 정도의 질문이 나왔다. 꼬리질문은 이전에 생각해보진 못했던 것이었지만, 직접 내가 경험했던 것이기 때문에 손쉽게 대답할 수 있었다. 확실히 인성면접은 내가 경험하고 절실하게 느꼈던 것 위주로 준비해야 하는 것 같다.

그 다음은 technical interview로 진행되었다. 바로 코딩문제로 가기 앞서 먼저 간단한 개념을 물어보았다. 너무 많은 걸 물어보셔서 다 기억도 나질 않는다. 최대한 복기하자면
1. OOP와 Functional programming의 차이점,
2. array가 무엇인지
3. array 와 list의 차이는 무엇인지
4. array로 내가 뭔가를 찾으려고 하는데 그럼 time complexity가 얼마나 되는지
5. 만약 내가 array를 sorting했다면 이제는 뭔가를 찾을 때 time complexity가 얼마나 되는지
6. list로 내가 뭔가를 찾으려고 하는데 그럼 time complexity가 얼마나 되는지
7. 만약 내가 list를 sorting 했다면 이제는 뭔가를 찾을 때 time complexity가 얼마나 되는지
8. 컴파일러를 설명해봐라
9. assembler를 설명해봐라
10. 상속은 왜하는가
11. class를 설명해봐라
12. 변수를 설명해봐라
13. time complexity가 무엇인지
14. abstract class를 설명해봐라
15. call by reference랑 call by value랑 뭐가 다른지 설명해봐라
16. 변수의 scope에 대해서 설명해봐라

이거 말고 한 10개는 더 질문했던 것 같은데 정말 다 기억이 나질 않는다. 최대한 예를 들어서 얘기하려고 애썼고, 최대한 내 경험을 살려서 대답하려고 애썼다. 예를 들어서 대답을 할 때 "abstract class란~"로 시작하지 않고 "내가 qt5로 abstract class를 구현했을 때 좋았던 점은~"으로 시작했다. (맞는 접근법인지는 모르겠다.. 내가 개념을 알고있다는 것을 어필함과 동시에 경험도 최대한 강조하려고 했던 생각에서였다.)

마지막으로 coding interview를 했다. 코딩 인터뷰는 정말 쉬웠다. 이미지가 주어지고 간단한 스무딩 필터를 구현해보라는 문제가 나왔다. 코딩문제에서 중요한 점은 코드를 한줄한줄 짜는 것과 동시에 왜 내가 이코드를 짜고 있는지 면접관에게 계속 얘기를 해야하는 점이다. 먼저 이미지에 패딩을 한 후, 필터링하는 코드를 짰고, 면접관이 몇가지 지점을 지적해주었다. 면접관의 지적을 받고 코드를 다시 고쳐서 코드를 완성할 수 있었다.

나름 선방한 면접이었다.. 라고 생각하면서 마칠려고 했는데 면접관이 되게 알 수 없는 표정으로 "결과는... 잘 모르겠지만 수고했어요^^" 라고 해서 마지막이 굉장히 찝찝했다.. 이 찝찝함 덕분에 최종결과가 나오는 6일 내내 불안해하면서 보냈다.

그래도 영영 인터뷰도 못 보고 여름을 꼼짝없이 애틀란타에서 지내야 할줄 알았는데 이렇게 기회가 주어져서 감사하다. 아래 그림처럼 최종적으로 오퍼 승인을 하고, 면접관에게도 링크드인으로 감사인사를 보냈다.

최종 오퍼 승인 submission 페이지
사실 내가 인터뷰를 잘 볼 수 있었던 건 인터뷰어를 잘 만났기 덕분인 것 같다. 인터뷰 보는 내내 편안하게 해주어서 자신있게 말할 수 있었다.

FAANG 중 하나인 아마존에 가게 된 것도 기쁘고, Austin이라는 새로운 곳에 3달동안 살게 되는 것도 기쁜데 사실 제일 기쁜 건 Amazoninan들에게 찐 software coding을 배울수 있는 기회가 주어져서 정말 기쁘다. 절대 내가 이 기회를 허투루 쓰지 않았으면, 내가 초심을 잃지 않았으면 좋겠다. 올 2024년 여름이 정말 기대된다!

'leetcode' 카테고리의 다른 글

DP (Dynamic Programming)  (0) 2024.12.30
Data Structure  (0) 2024.02.18
[인턴십] 아마존 final round를 준비하며  (1) 2024.02.13
[인턴십] 웨이모 1차 인터뷰 후기  (2) 2023.10.31

댓글