RTOS Embedded SW coding interview 후기들 1

  • #3610162
    Shine Bright 69.***.24.86 1907

    주로 칩셋SW 하는 회사들 면접 본 후기입니다. 경력입니다.
    다들 리트코드 몇백문제씩 풀고 coding interview를 준비하시길래, C++로 공부해서 리트코드를 풀면서 인터뷰 준비를 했었어요.
    (제가 주로 사용하던 언어는 C입니다.)

    첫번째는 영어입니다. 인터뷰어들도 그닥 영어를 잘 하는 건 아니지만, 정말 못 알아 듣겠는 인터뷰어들도 있더라고요.
    주로 hiring manager나 그 팀 technical leader 정도와 기술 인터뷰를 보는데, 기존 경력에 대한 질문부터 Job Behavioral questions, 그리고 coding 두세문제 정도까지 한시간 동안 계속 물어봅니다. 이 때 인터뷰 대상자가 영어를 못해서 어버버 하고 있으면 시간이 아까울 것 같아요. 영어를 못해서 대답을 잘 못하는건지, 진짜 모르는 건지 알 수도 없을테고,, 본인이 들을 만한 질문 리스트를 만들어서 달달 외우시면 좋을 것 같아요.카메라 켜놓고 녹화하면서 연습해보고 교정하는 것도 도움이 될 것 같습니다.

    두번째는 코딩 준비하실 때, RTOS하는 Embedded SW쪽이니까 기본적인 것들은 C로 준비하시는게 좋을 것 같아요. 인터뷰어들이 C++을 모르는 경우들이 좀 있고, 꼭 C로 하자는 경우들도 있더라고요. (RTOS입니다. Android나 Linux Embedded SW 아니예요.)

    리트코드에서 알고리즘 푸느라고 일부러 C++을 계속 공부해가면서 준비했었는데 Embedded쪽은 그런 알고리즘을 거의 쓰지 않으니 그런 질문은 잘 안하는 것 같아요. 물론 2차 3차까지 가거나, 구글, 아마존 같은 곳은 알고리즘 문제도 많이 나오겠지만, 제가 본 곳은 그런곳이 아니네요. 그러니까 리트코드로 어려운 문제들은 자료구조에 따른 다양한 컨테이너가 존재하고, 표준함수가 잘 되어 있는 C++로 준비하시고, 아주 기본적인 것들은 C로도 한번 더 준비하시는게 좋을 것 같아요. 제 경험상 주로 bit manupulation, string 변환, 포인터 이런거 물어보는 사람들은 C를 주로 하는 사람들이고, 쉬운문제라고 linked list부터 내는 사람은 C++ 하는 사람일 가능성이 높아요. 아예 처음부터 인터뷰어한테 어떤 언어가 더 편한지 물어보는 것도 방법이 것 같아요.

    왜 인터뷰어가 편한 언어를 물어보는게 필요할 꺼라고 생각했냐면, 인터뷰어가 코드에 대해서 계속 물어봅니다. 본인이 잘 아는 랭퀴지이면 대충 알아듣는데, 본인이 모르는 랭귀지인경우 잘 모르는 경우가 많더라고요. 그래서 또하나, 코딩 공부하실 때, 나의 코딩을 상대방한테 이해시키는 연습을 많이 하셔야 합니다. 코딩을 하면서 계속 말로 설명하면서 코딩을 하는 연습을 하셔야 되요. 내가 어떤 알고리즘을 쓸건지, 이곳에서 이 변수는 어떤 역할을 할건지, 이 부분은 뭘 위한 코딩인지 등등등,, 코딩 해 놓고 쉬운 코드 설명을 못해서 어버버 대고 있으면, 정말 나 자신이 한심하게 느껴지고, 인터뷰어들한테 짜증이 나더라고요.
    처음에는 이런 쉬운 코드를 몰라서 물어보는건가 했는데, 반반인듯 해요. 잘 이해 못하는 경우도 있고, 이해를 했지만 설명을 얼마나 잘하는지 보려고 하는 경우도 많았던 것 같아요. 완전 변수 하나만 써도 뭘 할지 감잡고, 내가 하려던 알고리즘을 이야기 하며 그런거 말고 다른 것을 생각해보라는 귀신 같은 사람도 있었습니다.

    그리고 문제를 낼 때, 실제 리트코드 처럼 코드에 인풋, 아웃풋이 다 주어지고 돌려가면서 문제를 풀어내는게 아니라, 어떤 곳은 노트패드 하나 띄워서 첨부터 코딩해보라고 하기도 하고, 어떤 곳은 무료 C++ 컴파일러 앱 같은거 화면 쉐어 해서 풀어보라고 하고, 구글닥 공유해서 코딩을 워드 위에 하기도 합니다. 그렇기 때문에 실제 돌려가며 버그 잡고 확인할 시간은 없고, 대략적인 알고리즘을 설명하면서 코드를 짠다고 보면 되요.

    인터뷰는 회사들 마다 정말 다양한 플랫폼을 사용했습니다. Zoom, Microsoft Teams, Hirevue같은 화상 컨퍼런스 플랫폼을 이용해서 본인 화면 share하거나, 내 컴퓨터의 화면을 쉐어 하도록 요청해서 코딩 인터뷰를 진행하는 팀들이 있었고요. Coderpad같은 coding과 화상 컨퍼런스를 같이 할 수 있는 툴을 이용하지만, coderpad는 coding 화면 share 용도로만 쓰고, 전화로 계속 인터뷰 하는 곳도 있었습니다. 이런 곳은 인터뷰를 많이 하기 때문에 인터뷰어의 노출을 꺼리는 것 같았어요.

    두번째 글에서는 코딩 인터뷰에 나왔던 질문들을 정리해 보겠습니다.
    뭔가 링크가 있어서 그런지, 코드가 있어서 그런지, 코딩 질문 작성한 게시글이 안올라가네요.

    • a 64.***.218.106

      chipset sw 라면 드라이버 개발관련일 가능성있겠군요. 그럼 애플레케이션은 사실상 크게 관련이 없고 로우레벨 컴파일러 아케텍쳐와 프로토콜 관련된 퍼포먼스 업그레이드에 중점을 둘듯 하네요. 그렇다면 프로그래밍 언어 자체의 사용 능력과 운영체제 자체의 문법을 이해하는게 가장 중요할듯 하군요

    • 무의미 174.***.154.56

      드라이버 보다는 device firmware일거 같네요.

      • Shine Bright 69.***.24.86

        너무 특수 분야라서 언급하기 그랬는데 다들 너무 궁금해 하시네요.
        모뎀 Protocol SW 분야입니다. 회사는 모뎀 칩셋업체들과, 텔레매틱스 하는 자동차 업체 포함입니다.

    • 걱정 98.***.137.163

      이제 막 주니어 올라가려고 하는 Computer Engineering 학생입니다. 회망 진로는 임베디드로 잡았는데 어떻게 스펙을 준비해야할지 잘 몰라서 조언을 구하고자 하는데 괜찮으실까요? 마이크로컨트롤러로 RTOS, 펌웨어 등을 만드는 공부를 하고 싶은데 혼자 준비하려니 굉장히 막막하네요.

      • Shine Bright 69.***.24.86

        저는 그런쪽으로 잘 몰라요. 전공도 컴싸 아니고 전자공학이고요. 일도 한국에서 오래 해서 미국 분위기 너무 모르고요. 여기 리뷰글 댓글들 보면 Embedded쪽 많으신 듯 한데, 질문 글 올려보면 댓글들이 많이 달릴 것 같아요.