Sde1 amazon: Amazon SDE I Software Engineer Salary | $143K-$204K+

Опубликовано: March 18, 2023 в 1:20 am

Автор:

Категории: Miscellaneous

Amazon Interview Experience for SDE 1 (6-Months Experienced)

Improve Article

Save Article

  • Difficulty Level :
    Hard
  • Last Updated :
    01 Sep, 2021
  • Read
  • Discuss
  • Improve Article

    Save Article

    I applied for SDE1 Role in Amazon March 2021. Selection process completed till Mid-June. I will try to give all the details in this Article.

    Apply – I visited Amazon career page, there I found some roles for SDE1 (6 months experienced). I messaged 3-5 people working in amazon for referral through linkedIn. I attached my resume and job Id in the message. And one generous person referred me for the same. In 1 week, recruiter contacted me. and I got a coding round link.

    Coding Round – Coding round was of 45 min. There were 2 coding questions, both were of customized sort function. 

    • In Interviews, Expectations for every coding question asked was explanation, optimized coded solution, time & space complexity. Take your time, but do every question properly. Show your perfection. There will also be interviews with only 1 coding question asked. 
    • Prepare a professional scenario, instances for questions related to Leadership principles.

    Round 1 – He started the interview with a small introduction of both of us. He asked about OOP concepts. He asked about my current project, learnings in my current company. He asked about vertical and horizontal scaling, small definitions. Coding questions:

    1. https://www.geeksforgeeks.org/segregate-0s-and-1s-in-an-array-by-traversing-array-once/. I easily did this question in my first attempt. So, he also asked to solve this problem https://www.geeksforgeeks.org/sort-an-array-of-0s-1s-and-2s/ I did it completely too.
    2. There is a manager who needs to manage tasks and schedule them. Tasks have a dependency on one another. For this, the solution was topological sorting. https://www.geeksforgeeks.org/topological-sorting/ I wrote the solution. The interviewer caught the edge case. i.e. Topological sorting is only applicable to the acyclic graphs. I missed this case. I wrote the correct code in the end. 

    Round 2 – Round 2 happened on the same day. Interview started directly with the coding questions:

    1. https://www.geeksforgeeks.org/length-of-the-longest-substring-without-repeating-characters/. I gave the most optimized solution in my first attempt. I did two mistakes in my code. It was pointed by the interviewer. I resolved it.
    2. https://www.geeksforgeeks.org/inorder-successor-in-binary-search-tree/. This question was new to me. We both discussed for the solution. At the end, we developed O(h) time complexity solution. I wrote the solution. He was satisfied.

    Leadership Principle questions: How you gained your interest in coding? What you managed the preparation for amazon with company work?

    Round 3 – Interviewer was hiring manager. He started the interview with small introduction of both of us.  

    • Then, He jumped to coding question: https://www.geeksforgeeks.org/add-two-numbers-represented-by-linked-lists/. I wrote the correct code in my first attempt. Then, he discussed how much the code will change, if there numbers are float. He wanted me to give answer in modular way. Discussion and writing pseudo code went long. So, only 1 coding question was solved.
    • Leadership Principle questions: How you handle tight deadlines ? How you handle conflicts in work? 

    I asked about my feedback to the interviewer. He said:

    1. I assumed that, every node will have 1 digit. Number is an integer, not a float. Number is always positive, not negative. I should have asked these questions to him.
    2. I wrote function named as “add2ll”. He adviced me to write it full as “additionOf2LinkedList”.
    3. He told me the minimal code alerations for float numbers.

    Round 4 – This was the bar-raiser round, most important round of the interviews. He thoroughly asked me about my work in current company.

    • Leadership Principle questions: Situations, where you did more than expected? How you handle tight deadlines? 

    Then, He asked me this coding question:

    1. Convert given doubly linked list to spiral ordered binary tree.
      eg. 1-2-3-4-5-6-7-8
         1
        2  3  
       7  6 5  4
      8

      At first, I was giving confusing solution. Then he asked me which data structure to be used to traverse binary tree in spiral order. From there, I got the correct solution. i.e. Traversal of doubly linked list and the reverse of https://www.geeksforgeeks.org/level-order-traversal-in-spiral-form-using-deque/

    I wrote the complete, error-free code in one go. Interviewer was impressed with me.

    Result: Selected for SDE1 profile. Thanks to GeeksforGeeks. 

    Tips – 

    1. Study lots of amazon interview experiences. It will help.
    2. If you covered all the edge cases in the code, and your code is correct. Then, interviewer will really be impressed with you. Dry run your code, before submitting to interviewer.
    3. Give proper, complete names to function and variables.
    4. If you have doubts for the question. Do ask it. Interviewers will be happy to answer.
    5. Propose a solution to interviewer at first. If he is fine with it, then start coding. 
    6. Think a question before-hand, that you can ask to interviewers at the end. 
    7. Luck plays an important role. So, be consistent in your practice and in applying in jobs. All the dreams, will come to you one day.

    Next

    Segregate 0s and 1s in an array

    Related Articles

    What’s New

    We use cookies to ensure you have the best browsing experience on our website. By using our site, you
    acknowledge that you have read and understood our
    Cookie Policy &
    Privacy Policy

    How I got a job at Amazon as SDE-1 | by Viraniaman

    I recently floated a google form in a LinkedIn post for referring people to various positions they might be interested in at Amazon, and I got an overwhelming response. I suspect there was so much interest due to the overlapping events of people getting laid off/newly graduating without offers due to the Pandemic, and Amazon greatly increasing the number of available job openings. I put some amount of automation in place and referred close to 500 people who filled the form. One other thing that was asked of me over and over again, was to share the process that I used to get an interview and then to crack it. This post is in response to that.

    Let me start off by giving a brief background about myself. If you are not interested in this, you can skip to the next part. I graduated from IIT Bombay in 2018 with a Bachelor’s degree in Electrical Engineering. As it might be apparent, I was not inclined towards my major as a career choice, and decided to devote significant amounts of time in college into what I actually loved — programming. I attempted many different things — competitive programming, building web portals for use within our college network, and taking on courses in Machine Learning. Of these, I achieved some amount of success in making a web portal that was used to map Professors to aspiring Teaching Assistants, and vice versa. A lot of professors signed up for it and so did large chunk of the student body, and it led to a huge improvement in the quality of TA sessions, which really boosted my confidence to pursue this as a career. I prepared for my campus interviews and was able to bag an offer from VMware.

    I really enjoyed my time at VMware, where I stayed until the end of March, 2020. I learned a lot about real world software projects, programming patterns, design patterns, project planning and management, working in a team, and a lot of other “boring” things you probably won’t learn at college but are incredibly important. Much has been said elsewhere on the internet about how to be a good developer and grow your career once you get a job, but this is out of scope for this post (one of the things you will learn as a developer — clarify the scope of your project thoroughly :-P). I eventually decided to switch jobs as the next step to grow in my software engineering career. I got offers from 3 companies — Flipkart, MoEngage and Amazon, and eventually accepted the offer from Amazon by following basically the steps I outline below. I am not saying it will work for everyone, but it can at least serve as a starting point if you have no idea where to begin.

    There are broadly three parts to getting a job. First is getting an interview, second is preparing for the interview, and third is performing well in the interview itself. All steps require planning and commitment. I can shed some light on the planning part, but commitment over a potentially long period of time until you reach your goal has to come from within. You should make progress, no matter how little, every day on your plan, otherwise it won’t work. This is true for everything one does, in my opinion.

    Getting an interview

    Let me start off by saying that getting an interview is probably much easier if you come from a so called Tier-1 college in India — places like IITs, NITs, BITS, IIITs, etc. This is just the harsh reality. It doesn’t mean that people from other colleges don’t have a chance, or that they are less capable. It just means that they will have to work much harder to get a foot in the door. I do believe that companies have started to move past this ancient perception that they will get good candidates only from IITs or BITS, but it will take some time to get better. Anyhow, I will explain what all I did, and maybe that can serve as a starting point for you to getting an interview, but as with everything, I don’t guarantee results, and if things don’t work for you, try to figure out something else that does work.

    Once I realized that I had to make a switch, I updated my LinkedIn profile with everything I had done since I had joined VMware. I highly recommend LinkedIn to get visible to recruiters, and updating your profile to the latest version should also help you gain more visibility. I don’t recommend making it too flashy and loaded with meaningless jargon like Blockchain, AI, IOT (unless you have done significant work on it) or make false claims as it only makes you look bad when you get asked about it in the interview and cannot answer it. Anyway most software engineering jobs today (in my potentially wrong opinion) are about making APIs and microservices, and all the related work around it, so having blockchain or IOT experience won’t necessarily translate directly to that or help in getting an interview.

    I also highly recommend making your profile visible to recruiters as looking actively for a job. After I made this change, I almost immediately started getting tons of connection requests from recruiters wanting to hire me. I suspect this also had to do with the fact that I come from a “Tier-1” college, but it should at least be better than not having it turned on for everyone.

    I also recommend making an account on Instahyre. I got a lot of messages from recruiters from there as well, and a lot of startups hire from here. Some of them might be good as well, so it is worth checking out.

    I did apply to a lot of jobs on LinkedIn and Instahyre, but the offers that came to me materialized only out of the recruiters who directly contacted me.

    Preparing for the Interview

    Let me just make a blanket statement at this point: In my opinion, there are only two things that are important to cracking the interview for a junior software developer position — significant programming projects, and a strong grasp on algorithm and data structures basics. Everything else you can learn at your job. So don’t let things like “lack of experience in xxx technology” hold you back.

    Interviews for SDE-1 type roles are only of three broad types: DS/Algo problem solving, managerial, and Software Coding — where you have to write a small software system whose specification they will give you. Not all companies will have all these rounds, but most good product companies will have at least the first two.

    For the DS/Algo, I decided to stick with GeeksForGeeks, as it had all the material from the past interviews of all major product companies — Amazon and Flipkart to be particular. I went through many recent SDE-1 interview experience submissions for both these companies, and made a google sheet of all the problems that were asked, with links to their solutions on GeeksForGeeks. I also made an initial problem solving strategy, which although I did not follow to the letter, but helped me rapidly revise concepts and learn new ones as well. The strategy is as follows:

    1. Set timer for 20 minutes to come up with an approach.
    2. Read and understand question.
    3. Try to solve it within the timer bound. Not the implementation, only the approach.
    4. Look at solution and make notes if it is something new that you have learnt.
    5. Implement the solution on your own, if it is something new that you have learnt that you have not implemented before.
    6. Check off the problem from the google sheet, and add a short note there if the solution was something new.

    In practice, it did not go exactly this way. I would set a timer and come up with an approach, but then I would learn that a different DS/Algo that I am not completely familiar with would give a much better solution. In my experience you don’t need to learn all the details of extremely esoteric algorithms and data structures that you come across in competitive programming, but you should have a solid grasp on the basic Data Structures, their related algorithms and other fundamental concepts — Graphs, Binary search trees, Heaps, Stacks, Queues, Linked lists, Dynamic Programming and basic algorithms for sorting, searching, tree traversals, etc. You can find several such lists on the internet, googling should help you for this.

    So if I got any question that made me learn something new, I made notes and implemented the solution on my own (after reading but not copying the one provided) in C++ and STL. This took a lot more time in the beginning, but after a while these concepts started getting repeated in other questions as well, so I saved time later by putting in the initial effort. I skipped the questions that required very advanced algorithms or data structures, but there were only one or two of those, and indeed I was not tested on them in the interviews. I also skipped very easy questions, as they would not add any additional knowledge that I did not already have.

    I recommend using C++ and STL as it has a lot of data structures and algorithms built in, and in problems where you are not required to implement them on your own, the STL library implementations will give you a huge boost to solve the problem easily. C++ solutions on GeeksForGeeks usually do include use of STL, and that should help you learn the library too. If they don’t include it, you should definitely google and search for implementations for common algorithms/data structures in STL that you may need to solve a problem, and that should also help you learn the basic set of approaches you can have while solving a problem.

    One thing that I feel I did well was not spend too much time on finding an approach for any problem on my own. My intention was not to become an algorithms researcher who can come up with completely new algorithms on my own. It was to familiarize myself with the kind of questions that are generally asked, and getting comfortable with using a set of algorithms and data structures that I knew as tools for solving interview-type problems. Coming up with completely novel approaches to problems is not an expectation in any interview, in my experience.

    For Software Coding I practiced only 1–2 problems asked in Flipkart in recent interviews. In hindsight, I should have followed a similar pattern and practiced getting my IDE set up, and solving a few more of these types, as doing this fresh in an interview setting will be difficult and an extra pressure.

    I did not particularly prepare for the managerial round, but there are some HR-type questions that you should have a pre-defined answer for. I will cover this in more detail in the next part.

    The Interview itself

    I will cover the managerial interview type first. You should have ready your professional introduction — a short story of your professional life so far, the work you have done and the journey you have taken. Don’t introduce many personal elements in this story, and keep it small, and try to cover everything important in a 2–3 minute monologue. This would be the answer to the most common opening question — tell me about yourself.

    The interviewer might take it from there in any direction they like — they might start grilling you on just one of your projects, in which case you should give an answer as honestly as possible, and if you don’t know something just admit it. They might also ask generally about your experiences, your learnings, your mistakes etc. In these kinds of questions, it is again best to remain honest. It is not an issue to strategically expose a one or two of your professional errors — as long as they are not too big and unacceptable — and explain what you learned from that experience and how you will make sure you will never let that mistake happen again.

    An interviewer might also ask about your future plans, and its always the best bet to say that you intend to grow in the career ladder that their company has, and take a leadership role in the future. You should also be mentally ready to face ad-hoc questions that are unrelated to your role. For example, I was asked to solve a physics problem from my JEE days in my Flipkart interview. They are not looking to see if you can solve it, they are just observing how you think. You should not give up on this question and keep trying to solve it until they give up or until you have solved it.

    This is true even for DS/Algo type questions. It is best if you are able to solve a question, but if you are not, the next best thing is to show that you are not giving up and asking questions. You should always ask clarifying questions for open ended problems given to you during the coding round like what are the constraints of the problem? What is the time and space complexity that they expect? After solving the problem with one approach, ask if they need further improvement on the time and space complexity. Such questions will be highly context driven, but it is important to ask. Also, think loudly — discuss your approach with the interviewer. They may give you feedback for your approach, which you should carefully consider and use to amend your solution.

    Software Coding round in Flipkart: This happened only in Flipkart. It might be useful to try establishing a rapport with the interviewer and asking questions about the company and giving a brief introduction about yourself as well. They will give you a specification and expect you to code up the solution in 1.5 hours. There is no constraint on the language or tools you can use. It is useful to have your IDE set up and having practiced a few of these questions before going into the interview.

    Bar Raiser round in Amazon: This is particular to Amazon. It is similar to a typical managerial round, but with the added twist that you should be familiar with the Leadership Principles of Amazon. Others have covered this type of interview in a lot more detail and some googling should have you prepared for this.

    You should also have a few questions ready from your end to be asked to the interviewers if they ask you whether you have any questions for them. Don’t ask anything that you could have easily googled, like how much profit the company made in the last year, or something like that. Instead you can ask about their personal experience working at the company, how their typical day looks like, etc. I am not a fan of asking about work-life balance, as it might indicate to some that you are already making excuses to not work, but this is subjective. You might need to research a bit about the company and know the expectations of the role to craft meaningful questions before going into the interview. Do take some time to think about this, as a thoughtful question from your end can make all the difference.

    Overall, my recommendation is to stay polite, confident and keep your eyes and ears open. If you feel the need to prepare more, ask a friend or relative to help you out and take a mock interview.

    Lastly, a failed interview is not the end of the world, and does not reflect on one’s capabilities. All these are only profit making corporations at the end of the day, and while having goals and dreams to join these companies is good, you should realize that you as a person are much more than just a job at a corporation, and your self worth should not be tied to it. I viewed it this way — if I failed it, I would be exactly where I was before with nothing lost. If I passed it, I would have a good job and make a decent living. There’s no downside to either case. There’s always another company you can interview at. Your happiness and mental health is more important than anything else. All the best!

    90,000 LinkedIn 90,001 90,002 (Korean)Italiano (Italian)简体中文 (Chinese (Simplified))Nederlands (Dutch)日本語 (Japanese)Norsk (Norwegian)Polski (Polish)Português (Portuguese)Română (Romanian)Russian (Russian)Svenska (Swedish)Tagalog ( Tagalog)ภาษาไทย (Thai)Türkçe (Turkish)العربية (Arabic)

    nine0005 Wedج المحاولة مرة خرى للصص اليا# أو الال لـship imesز المς للمزيد ← المومات

    66

    Omlouváme se, nemůžeme najít stránku, kterou hledate. Zkuste se vrátit zpátky na předchozí stránku, nebo se podívejte do našeho Centra nápovědy pro více informací

    Přejít do informačního kanálu

    Vi kan desværre ikke finde den side, du leder efter. Gå tilbage til den forrige side, eller besøg Hjælp for at få flere oplysninger

    Gå til dit feed

    Die gewünschte Seite konnte leider nicht gefunden werden.

    Versuchen Sie, zur vorherigen Seite zurückzukehren, or besuchen Sie unseren Hilfebereich, um mehr zu erfahren.

    Zu Ihrem Feed

    Uh oh, we can’t seem to find the page you’re looking for. Try going back to the previous page or see our Help Center for more information

    Go to your feed

    nine0005 Vaya, parece que no podemos encontrar la pagina que buscas. Intenta volver a la página anterior o visita nuestro Centro de ayuda para más información.

    Ir a tu feed

    Nous ne trouvons pas la page que vous recherchez. Essayez de retourner à la page précédente ou consultez notre assistance clientèle pour plus d’informations

    Ouvrez votre fil

    Maaf, sepertinya kami tidak dapat menemukan halaman yang Anda cari. Coba kembali ke halaman sebelumnya atau lihat Pusat Bantuan kami untuk informasi lebih lanjut

    Buka feed Anda

    Non abbiamo trovato la pagina che stai cercando.

    Prova a tornare alla pagina precedente o visita il nostro Centro assistenza per saperne di più.

    Vai al tuo feed

    申し訳 あり ませ ん。 探し の ページ が ませ ん。 前 の ページ 戻る か 、 ヘルプセンター で を ご 確認 ください

    원하시는 이전 페이지로 돌아가거나 고객센터에서 자세히 알아보세요.

    홈으로 가기

    nine0005 Harap maaf, kami tidak dapat menemui laman yang ingin anda cari. Cuba kembali ke laman sebelumnya atau lihat Pusat Bantuan kami untuk maklumat lanjut

    Pergi ke suapan

    De pagina waar u naar op zoek bent, kan niet worden gevonden. Probeer terug te gaan naar de vorige pagina of bezoek het Help Center voor meer informatie

    Ga naar uw feed

    Vi finner ikke siden du leter etter. Gå tilbake til forrige side eller besøk vår brukerstøtte for mer informasjon

    Gåtil din feed

    Nie możemy znaleźć strony, której szukasz.

    Spróbuj wrócić do poprzedniej strony lub nasze Centrum pomocy, aby uzyskać więcej informacji

    Przejdź do swojego kanalu

    A página que você está procurando não foi encontrada. Volte para a página anterior ou visite nossa Central de Ajuda para mais informações

    Voltar para seu feed

    Ne pare rău, nu găsim pagina pe care o căutatţi. Reveniţi la pagina anterioară sau consultaţi Centrul nostru de asistenţă pentru mai multe informaţii

    Accesati fluxul dvs.

    The page you are looking for cannot be found. Please return to the previous page or visit our help center page for more information.

    Go to tape

    Sidan du letar efter hittades inte. Gå tillbaka till föregående sida eller besök vårt Hjälpcenter för mer information

    Gå till ditt nyhetsflöde

    nine0005 ขอ อภัย ดู เหมือน เรา พบ หน้าที่ คุณ กำลัง หา อยู่ ลอง กลับ ไป ที่ เพจ ก่อน หรือ ดู ศูนย์ ความ ของ เรา สำหรับ เพิ่มเติม

    6

    Naku, mukhang hindi namin mahanap ang pahina na hinahanap mo.

    Subukang bumalik sa nakaraang pahina o tingnan ang aming Help Center para sa higit pang impormasyon

    Pumunta sa iyong feed

    Aradığınız sayfa bulunamadı. Önceki sayfaya geri dönün veya daha fazla bilgi için Yardım Merkezimizi görüntüleyin

    Haber akışınıza gidin

    前往首頁動態

    LinkedIn

    (French)한국어 (Korean)Italiano (Italian)简体中文 (Chinese (Simplified))Nederlands (Dutch)日本語 (Japanese)Norsk (Norwegian)Polski (Polish)Português (Portuguese)Română (Romanian)Russian (Russian)Svenska ( Swedish)Tagalog (Tagalog)ภาษาไทย (Thai)Türkçe (Turkish)العربية (Arabic)

    Wedج المحاولة مرة خرى للصص اليا# أو الال لـship imesز المς للمزيد ← المومات

    66

    Omlouváme se, nemůžeme najít stránku, kterou hledate. Zkuste se vrátit zpátky na předchozí stránku, nebo se podívejte do našeho Centra nápovědy pro více informací

    Přejít do informačního kanálu

    Vi kan desværre ikke finde den side, du leder efter.

    Gå tilbage til den forrige side, eller besøg Hjælp for at få flere oplysninger

    Gå til dit feed

    Die gewünschte Seite konnte leider nicht gefunden werden. Versuchen Sie, zur vorherigen Seite zurückzukehren, or besuchen Sie unseren Hilfebereich, um mehr zu erfahren.

    Zu Ihrem Feed

    Uh oh, we can’t seem to find the page you’re looking for. Try going back to the previous page or see our Help Center for more information

    Go to your feed

    nine0005 Vaya, parece que no podemos encontrar la pagina que buscas. Intenta volver a la página anterior o visita nuestro Centro de ayuda para más información.

    Ir a tu feed

    Nous ne trouvons pas la page que vous recherchez. Essayez de retourner à la page précédente ou consultez notre assistance clientèle pour plus d’informations

    Ouvrez votre fil

    Maaf, sepertinya kami tidak dapat menemukan halaman yang Anda cari.

    Coba kembali ke halaman sebelumnya atau lihat Pusat Bantuan kami untuk informasi lebih lanjut

    Buka feed Anda

    Non abbiamo trovato la pagina che stai cercando. Prova a tornare alla pagina precedente o visita il nostro Centro assistenza per saperne di più.

    Vai al tuo feed

    申し訳 あり ませ ん。 探し の ページ が ませ ん。 前 の ページ 戻る か 、 ヘルプセンター で を ご 確認 ください

    원하시는 이전 페이지로 돌아가거나 고객센터에서 자세히 알아보세요.

    홈으로 가기

    nine0005 Harap maaf, kami tidak dapat menemui laman yang ingin anda cari. Cuba kembali ke laman sebelumnya atau lihat Pusat Bantuan kami untuk maklumat lanjut

    Pergi ke suapan

    De pagina waar u naar op zoek bent, kan niet worden gevonden. Probeer terug te gaan naar de vorige pagina of bezoek het Help Center voor meer informatie

    Ga naar uw feed

    Vi finner ikke siden du leter etter.

    Gå tilbake til forrige side eller besøk vår brukerstøtte for mer informasjon

    Gåtil din feed

    Nie możemy znaleźć strony, której szukasz. Spróbuj wrócić do poprzedniej strony lub nasze Centrum pomocy, aby uzyskać więcej informacji

    Przejdź do swojego kanalu

    A página que você está procurando não foi encontrada. Volte para a página anterior ou visite nossa Central de Ajuda para mais informações

    Voltar para seu feed

    Ne pare rău, nu găsim pagina pe care o căutatţi. Reveniţi la pagina anterioară sau consultaţi Centrul nostru de asistenţă pentru mai multe informaţii

    Accesati fluxul dvs.

    The page you are looking for cannot be found. Please return to the previous page or visit our help center page for more information.

    Go to tape

    Sidan du letar efter hittades inte.