If you are here from my twitter, It's probably no news to you that I had the opportunity to interview with Amazon twice this year (2022) and I magnificently shat the bed. I applied to join both the RDBMS and AWS Amplify teams as a software engineer and I was lucky enough to be called for an interview. I failed the interview with the RDBMS team because I was given more than enough clues during the technical problem. I also failed the technical interview with the Amplify team because I could not solve the technical problem within the stipulated time period. What a way to start the new year 😅
In addition to the usual advantages of preparing for a job interview which include restructuring your CV, refreshing your memory on old concepts and a good career retrospection, the personal growth through preparation and the interviews themselves have been immense. I had quite a number of eye opening moments about my skills, the depth of my experience, my technical knowledge, my leadership abilities and my willingness to own projects.
The following are the different areas through which I improved.
- Exposure and application of leadership principles
- Improved articulation of my skills with examples
- Highlighted a lot of my weak spots
- Improved application of data structures from preparation
- Improved application of problem solving
- Seeking out projects that broaden my professional horizon (having more than one example for leadership principles)
- An idea of what to expect next
Exposure and application of leadership principles
The amazon leadership principles are sort of like a creed that guides the plans, actions and results of individual amazon employees and amazon as a whole. Before my interviews I had only heard about them in passing. These principles seem to cover most facets of your life as an employee and can be applied at most jobs and most levels. Throughout my preparation, the aim was to connect my past experiences to these leadership principles which would imply that I could thrive under the intense fast paced environment at amazon. While doing this, I was glad to know that I already exhibited some of these qualities at work while also realising that I still had a lot more of these principles to implement at work.
Improved articulation of my skills with examples
While I was aware of my experience and my career achievements, I quickly realised during my preparation that I could not articulate my experiences precisely enough that it would sell me as a competent engineer. I tackled this by drawing up an excel file that tabled all the leadership principles and my relating experience in the STAR format. Breaking it down like this allowed me to rearrange my experiences in a coherent and precise manner while highlighting the impact. For example, in the image below I related one of my experiences to the Invent and simplify leadership principle.
The situation provides enough a backstory and context to the interviewer which makes your story more human. It also prevents subsequent questions down the line which may force you to repeat your whole story for clarification. The task implies that you were able to decipher what needed to be done in that situation. The action shows that you are familiar with implementation or delegation depending on your position on the project. Finally, results mean impact and that is what every team is looking for. I've moved on to regularly document my work successes/experiences in this manner.
Highlighted my weak spots
As much as I was impressed to see that I already implement some of the leadership principles, I quickly realised the vast room for improvement. It is generally safe to have more than one experience tagged to a leadership principle just to reduce repetition along the various stages of the interview cycle. For some principles such as ownership and Invent and simplify, I lacked depth and have consciously decided to cover these potholes. This exposure has enhanced my purpose at work especially in connection to the growth of my career. Obviously the appropriate route here would be to take more initiative and volunteering to lead more projects.
Improved application of data structures from preparation
First of all, my knowledge around DSAs (Data structures and algorithms) was super rusty. After rummaging through reviews online about Amazon's technical interview questions, most people considered them easy to finish. Of course I did not believe that 😂. I spent months solving various leetcode questions which was good, however I struggled to spot what type of data structure a question needed or what type of algorithm was suitable for the question. This brought me to the realisation that I didn't fully understand the basics of some important DSAs. Going back to the drawing board and treating the subject like I had 0 knowledge helped me understand when and where these DSAs were needed and how best to implement them. In some instances you may need to tweak an algorithm to fit the problem at hand and that cannot happen if you have a frail understanding of it. Also, understanding the tradeoffs for your choice is very important. No one wants an engineer who only used a solution because that's all he/she knows.
Improved application of problem solving
In my second interview with Amazon, I was tested with hackerrank type questions. From my experience, hackerrank type questions are very elaborate and are presented in a story mode. Deciphering the actual problem from the story is also another thing I found difficult because my problem solving skills were not the best. Going through a number of these have helped improve my ability to extract the problem and solve it (still learning). This is a very important skill because real world problems almost always require deciphering before solving. Also, being able to debug your solution under the clock is another important skill, not just for interviews, but for your general career.
Seeking out projects that broaden my professional horizon
After speaking to a manager at Amazon during my preparation, I found out that engineers take on many tasks that are outside their job scope. These tasks may include customer relations, stakeholder management and being thrown into stacks you have no idea about. There is no place for "this is not my job" over there. Seeking experience beyond my job scope is something I already do. Working with UX/UI and making design suggestions while contributing to copywriting are some of the things I actively seek when I work on a project. Continuously doing this may make an engineer more useful to the team, enhances one's knowledge via diverse perspectives and prepares one for leadership roles.
An idea of what to expect next
In retrospect I may have spent more than enough time going over the leadership principles as opposed to practising more technical questions. Keeping a cool head during the technical interview was not the easiest mostly because I did not prepare well enough. Managing my social life, time at work and time at the gym with this preparation was a hell of a job, but it was very fulfilling. This experience has given me an idea of what to expect and what to focus my efforts on when I get another shot. Drop me a shoutout on twitter if you liked this article or need any questions answered. See you in the next one 😁
Top comments (2)
Thanks for sharing 🙏
Very informing piece! We can only get better💪🏾. Thanks for sharing your experience.