Amazon.com, Inc. is an American multinational technology company which focuses on e-commerce, cloud computing, and much more. It has been referred to as "one of the most influential economic and cultural forces in the world”.
I'm pretty good at leetcode (was able to pass some 3 to 5 rounds of interviews), I got good at by practicing and continuous learning. Now I want to be good at software engineering in general like debugging, building components, understanding complex things/systems, etc. I see one of the suggestions is to improve on fundamentals of software engineering, how do I do that? and What action items can I follow consistently? Any concrete suggested steps will be great instead of just some general bullet points. Thank you all.
I work with several senior engineers who split their time between teams. This leads to odd stand up updates such as “I have no updates for this team”. As a result, I feel like I’m not getting value from their updates, and I also don’t know how to structure my updates to make it relevant for them.
Here's the experience I have so far with leadership:
And here's more details about my current team:
Sometimes I sit in meetings that I feel aren't really necessary. How can I better identify whether these meetings are necessary and propose a better asynchronous form of communication (slack post, quip doc, etc) if they aren't?
Some of these meetings include status update meetings (besides standup), and meetings where people are there just to absorb knowledge. Is it a general rule of thumb to have meetings primarily to get alignment on decisions? Are there cases where we can get alignment asynchronously as well via commenting on a slack post/quip doc, etc.
I'm on a team with many new SDE 1s, and I'm trying to get them up to speed. However talking with all of them takes a lot of time, and it's affecting my velocity with project execution. My manager suggested that I set up office hours. Does that idea make sense and are there any other ways to make this all more efficient?
For context - I have recently left Amazon and I'm actively looking for another role that suits my lifestyle in terms of work/life balance as well as the interest during the job role. Given how the market is right now - I was wondering if it is better to get a contract role until you can get the opportunity that you find interesting or go for a full-time opportunity regardless?
I have been at SDE 2 for a couple years now, and I feel like getting to SDE 3 is unnecessarily complicated. I've gone through multiple teams, and the recurring theme is that there isn't enough SDE 3 scope for me. You also need a lot of documentation (think 5+ pages) to show that you have the sufficient impact to deserve the promo, and that's really daunting as well. Any tips on how I can find that SDE 3 scope and navigate this senior promotion in general?
Through a series of unpredictable events, my team has boiled down to just my manager, myself, and many entry-level engineers (SDE 1s). Some of the SDE 1s have some experience (e.g. a somewhat tenured internal transfer) but many are new grads.
My manager is being more hands-on with this gap (and I like my manager overall), working through technical reviews and whatnot, and has other plans to shore up the seniority of the team. However, it looks like a lot of responsibility will fall on me to upscale this team and help deliver. This is nice as there's a pretty clear path to SDE 3 for me, but I'm also a relatively new SDE 2, so I'm unsure if I have what it takes.
All that being said, is this overall situation good or bad? The growth potential is there, but I'm also afraid of being overwhelmed.
I've always been the one to dive into problems and solve them without thinking about how difficult they are but recently I've been running into this failure mode where many of the problems I work on involve using old tools that are cumbersome to work with. The result is that it takes much longer to deliver my work compared to those that work on packages with newer tools (I'm talking about native AWS lambda, s3, dynamo, etc) and sometimes I wonder if I'm doing what's best for my career.
Some cumbersome tool examples include
My company has at least acknowledged the issues with the above first two bullets and has slowly started deprecating those tools. Oftentimes the senior and mid-level engineers work with newer tools and therefore aren't as familiar with the older ones, which is fine. I could just avoid working with these packages altogether and only work on the packages that involve the shiny new aws tools but I'm not sure if that mentality is what's best for my career.
My starter project was to migrate a web service to a new API which offers similar functionality. This was intended to be a pretty straightforward migration, mostly renaming + replacing some strings. However, this project took much longer than my manager or I anticipated. How could I have predicted and prevented this?
Amazon is well-known for its design doc reviews, which appear to be small-scale system design reviews. However, I'm having trouble understanding them, let alone recommending modifications.
I'm aware of Alex Xu's Byte by Byte go course, but I'm skeptical using it as it's specifically for interview preparation. I want to learn for the workplace. I can definitely look at blog posts and current design documentation, but I'd prefer something more structured. How can a novice learn system design and grow to the advanced/intermediate level? What books or resources would you suggest?
During design meetings, when there are questions that causes circling around a topic that is marked as out of topic. Even though I tell people that it is out of topic as we don't have time to build it and no plan to build it in future and people are still ask questions about same topic. When I personally feel its a nice to have feature but the scope has already been defined, what to tell and move forward to continue with the rest of the design?
I was recently laid off but finding getting interviews to be quite difficult. If I cannot get a position in the next 6 months but spend that time focusing on interview prep, will employers view the gap as a red flag?
As a senior IC, I am included as part of leadership meetings (Director+). I gain a lot of early insights into business direction, which is great. However I would like to see how i can take part in the discussions and have effective conversations?
I am looking for a book suggestion and/or framework to use on how to go about improving on this?
Few dimensions which could impact this -
One thing I have noticed about competent engineers is that they have a very strong understanding of upstream and downstream dependencies in terms of what are the typical parameters being passed into our API's and what we return and what are the things we pass into our dependencies API's and what they return,
How can I learn the context behind what data is typically being passed quickly? I understand that one of the best ways to learn is to start tinkering, and call the API's myself and see what they return. I was wondering if there is any faster way because surely a staff/principal/TL doesn't have the time to tinker with all of the different dependency services and understand what they take in and return. Is it just a matter of reading documentation and asking around?
My manager told me in my 1:1 that he would like to see me working more independently. He had few points for me like utilize other engineers to unblock and have more discussions on team channel. I feel like I already work quite independently. I drive discussions on my own and involve stakeholders as needed. I speak out whenever I see any issue or I've something to contribute.
I'm trying to understand what can I do more here and show my manager I'm already doing what he's suggesting.
I'm in process for L5 promotion and I feel this feedback can negatively impact my chances.
What are common limiting beliefs that you all believe software engineers have that aren't true that typically cause them to hold themselves back or causes them to not progress as quickly as they'd like?
I would assume that at each stage there are some beliefs that we have that cause us to not progress, I am currently most interested in SDE2->Senior, but would also be interested in hearing other common limiting beliefs to progress past senior as well!
Say a recruiter from Series C reaches out to you for a SWE role.
What all are the questions that one should ask in order to do the understand the potential of the startup so that there is less risk of layoffs when joining there, given the uncertain times.
I am aware of crunchbase website and looking at the news article that are linked there. What other homework one should during/before/after the interview process in terms of questions to ask, information to collect?
The limitation that is usually is the startups have very few employees so it is difficult to get concrete answers about the culture, WLB, actual work unless you are in their network.
Since Dec 2021 to Aug 2022, My managers changed 4 times after and I got promoted from sde1 to 2. Due to multiple projects and managers, I could not take ownership as I was still in ramp up phase but manager was expecting more at the SDE2 level, pointing issues, demotivating. So I took internal transfer to a different team. I am in this new team for 3 months. 1 month - I took to even understand the basics. Manager left and new manager joined. I had to go on vacation for 15 days. I don't have metrics to show that I am performing at the SDE2 level because
Worried about Q1 performance cycle in 2023. 2022 was difficult for me to show any impact. Is there anything I can do now to not get low rating in Q1?
At this point, I am no more interested in work and just want to leave due to lack of mentorship. I have a buddy who answers questions if I ask in this team but I don't have anyone to mentor me to guide me to see what kind of projects I can work, coming up with the initiatives. I feel stuck. There are no hirings happening outside and inside the company. What can I do to proceed further?
I've done various presentations throughout my career, and I always get stressed out doing them. I'll make slides/a script beforehand and pull all-nighters the day before. I'm okay presenting in front of smaller groups, but it's hard in front of larger groups.
How can I get more comfortable with this, especially with higher stakes presentations like those trying to get buy-in from a large group of senior+ engineers and tech leads?
I'll be going into Amazon as a senior engineer leading a team of 6-7 engineers. I have some anxiety as I have never worked in a FAANG company before, and I imagine the bar is high. Things are also trickier as I'll be in a different time zone from the rest of the team.
How can I make a stellar first impression after I start?
I'm about to be officially promoted to Senior Engineer in a couple of days. At the same time, I've also been been presented with an opportunity to move to a different organization in Amazon that's doing some rather exciting work. This is an opportunity I'm likely to accept.
I deeply value my current manager's support, because he was critical in helping me secure my promotion despite some very tricky circumstances. I'm aware that promotions are just meant to recognize past work, but leaving virtually immediately after a promotion still feels rather unpleasant. Leaving now will also have a bigger impact on my team since we've shrunk quite a bit recently.
What are some tips for structuring and framing the inevitable conversations I will be having with my manager(s)?
There were some great tips on this question, that was previously asked. Our team is pretty good at steps 1 & 2 that Alex mentions regarding setting an agenda and sending the invite beforehand. However, the team really struggles to make sure the meeting agenda is achieved. We have a lot of great discussions but they are not related to the objective of the meeting. How can we bring the discussion back to the main agenda without being rude and cutting potentially important tangents?
Manager and I have a disagreement on creating a promo doc as per the approach suggested by Rahul and Alex .
So to avoid losing the time I went ahead with working on a XFN project, say Project XFNA , as it has high visibility and chance of impact. Due to the complexity I had to spend lot more time on it than I initially estimated.
It meant putting 1 week time learning/testing a frontend framework , Angular and I am a backend developer and never done Frontend coding earlier.
What happened was.. my main project's progress ( say Projects B , which doesn't have impact opportunities in the short term) got delayed by a week , due to my focused attention on Project XFNA. I am Mid-Level Software Engineer [SDE 2] at Amazon.
I will need to defend my time on this project XFNA as I focused on it purely for delivering quick impacts. So can I say to my Mgr that I "I took this initiative to work on Project XFNA for showing impact in the short term". If not, how should I rephrase it?
English is not my first language. I don't know what to write or talk in all kinds of situations. I don't know if I lack critical thinking to think about points or is it because of lack of English proficiency. I have joined Toastmasters but its not helping that much. I am looking for 1-1 coaching in English speaking, writing, public speaking. Group discussions, driving meetings especially getting alignment, breaking down points, story telling are my biggest problems. Any recommendations to fix these issues?
I used to describe project in three sections:
Not every project is straight line. Some projects have lot of ambiguities and need lot of discussion to clear those ambiguities, certain features where we spend are de prioritized/removed, process challenges, changing direction/vision. How to explain all these as a story to express the complexity of the project by showing the challenges faced?
My team is quite small but we own a handful of critical services. Because of the small size, our on-call rotation is around 6 weeks or less but the actual load is somewhat manageable. We do not get an intolerable amount of high severity pages but get a lot of low severity tickets. We constantly work on projects that support goals for other teams that always seem to be higher priority while our tech debt grows. We have identified longer term fixes for some of recurring issues but never have the time to implement them. Most of our planned work for the upcoming year involve modernizing infrastructure or migrating existing services. I'm concerned about whether staying on this team would be conducive to my career growth.
I have communication issues. Especially in a new team, it takes lot of time to grasp what others are saying. During design discussions and post scrums -
As a team switcher, I'm worried that I could join a team that is rapidly expanding in headcount but isn’t having a clear business impact so the execs don’t care:
I'm currently a mid-level engineer, and I've already made a good amount of progress towards senior. However, I'm looking to change teams as I don't like the work too much on my current team, and I want to minimize the progress "loss" as much as possible in my new team by finding one that sets me up well for the mid-level -> senior promotion.
What’s a good team composition for this? Do you just want a good mix of all levels? What other factors besides team composition should I look for when it comes to evaluating a team on this axis?
I'm looking to leave my current team, as I don't find the work to be interesting: I spend ~50% of my time on ops work.
I want to choose the right team that’s interesting to me, but it's tricky as I don’t exactly know what I want to work on. I just know that I want to work on the back-end and on a team where learning opportunities are flexible. During team matching, what kind of things would you look for in a team?
My priorities are as follows:
During my first 1 on 1 with a manager, I asked him if he could help me find a mentor and he said he would find one within our overall organization. He also said he could find me a manager within overall Amazon if I want. This would for overall mentorship in Amazon vs being limited to the scope of just my organization.
What are some advantages/disadvantages of having 2+ mentors? Also are there any qualities I should be(or probably more likely asking him to be) on the lookout for those 2 mentors?
I am working in 3 XFN projects (Say Projects A, B ,C) at the same time. Manager wants success in Project A for sure . But he doesn't allow me to be fully dedicated to Project A. He also wants me to come with suggestions to make project A successful. The thing is Projects B & C are huge time consumers and I am left with very little time for Project A. How should I approach my manager to assign me fully to Project A. I have successfully deliver projects in past when I was assigned to a single project only . I am bad at multi-tasking. Project A's success will definitely increase chances of my promo.
These are Google levels for discussions/comparison sake and that I came in under-leveled.
I can do work in below capacities:
If I work in the L5 scope ..will the calibration meetings/equivalent give me sufficient credit for that or will I still be viewed as a L3 ( my actual level. If so then my raw code output will be primary metric)? Code output is something I won't be able to do if I focus on delegating work ( scope of L5). So will my L5 work lead to penalties if I am viewed as L3?
Lines are bit blurred in terms of R&R as I have to do product management work as well in order to get the project to succeed. I have regular meetings with many L5/L6s in order to drive the ideas and occasional ones with Directors and Senior Directors to get their buy-ins.
In particular, what are the upsides of living in the SF Bay Area? Is it worth the high cost of living?
For my situation in particular, I would like to end up at Amazon working full-time after school, but I don't live in Seattle or the Bay Area (I live somewhat close to another major metro area). Does moving make sense?
Starting my first day and I was assigned an onboarding buddy. I was wondering what are some of the main questions I should ask.
Some questions I have asked:
I'm wondering if there are any other main ones I should be asking or is it just ask as they come along?
I'm currently working pretty long hours on the weekdays to boost my learning speed, but I know that this isn't sustainable. I feel like my micro-routines can be improved: How can I get the most out of each day? I'm also fairly new to the company, and I want to set myself up for a senior level promotion ASAP - These are 2 big reasons why this is very important to me right now.
I've heard Alex, Rahul, and other engineers within Taro talk about handholding when joining a new company for all engineers and for newer engineers in general.
What does it mean that an engineer doesn't require handholding anymore? Does this mean the frequency of the questions gets diminished or is it more about needing as much initial help to start tasks or something else entirely?
I'm new to the team, and I want to make an impact quickly. How can I quickly gain respect of people on the team? Are there certain things I should do as I act/react to other people?
I am going to join as an SDE2 at amazon in couple of weeks. This is my first FAANG. I work on an oracle ECom platform.I don’t use design patterns often. Please recommend how important design patterns are in FAANG. What are the main ones ?
As I'm starting to join a team soon(and knowing this answer varies by team, level, and company), I'm wondering how long does onboarding take and what does it mean to be fully onboarded within your team
I'm going to be joining Amazon soon and the team I'm on is going from 4/5 people a month ago to I believe 9/10 people (counting me). Our team is going to be comprised of SDE 2's and 1's (I'm an SDE 1).
I'm wondering what's the best way to have the best onboarding experience during this time.
While it will be nice that I will have a decent amount of people who will be in the same boat as me in terms of onboarding, I'm also worried that my manager and more senior teammates won't have as much time for things like 1 on 1s, answering questions, helping me onboard, etc. if they're also helping other people on our team in addition to their own work.
I am joining Amazon soon as SDE 2. At my previous job, I was a higher end SDE1. I have owned small internal services at my previous job. I would like to know what are some of the things that can be expected from me as SDE 2 @ Amazon ? I am expecting more ownership, but is that the only thing? I did ask the same question to my manager but he seemed very chill about it and said that he cannot say anything at the moment, maybe in our 1:1s we can discuss more clearly. Also, if you can let me know how the expectations vary across levels for Junior and Mid level and what can I do to hit the ground running and create a good impression from the very start, that'd be great. I am sure that you must have seen various E3 / E4s at Meta. If you can relate to what exactly was the difference that you saw, that'll be super helpful.
I'm a pretty new SDE 2, and I know that the SDE 2 -> SDE 3 promotion is really difficult at Amazon. Given that, I would like to start working on this promotion as soon as possible. However, I'm new, so I don't want to make things weird for my manager and I. When does it make sense for me to bring up this topic of promotion and start working on a growth plan with my manager?
Across my career, I've felt bad about my skills sometimes because I'll have teammates, who are also at my level, doing as much as 2x more than me. This has led to me feeling like an imposter many times - Any thoughts on how to process all this?
Lately, I have been finding myself with a lot of free time and am unable to shake this feeling that I am not "doing enough." After finishing my school work, I usually just go to the gym, hang out with friends, or play video games.
Is there anything else I can do to further improve myself as an engineer and set myself up for success later on? Perhaps some books or resources to read.
I've tried working on some side projects, but honestly find it hard to follow through with them due to lack of urgency with no deadlines and prior fatigue from working on school assignments.
I was working on a P1 - High priority bug today which needed to be done within a day. This bug was assigned to me by a Senior Engineer who was supposed to pick up this task but was delegated to me. This engineer has been pretty helpful to me when I was ramping up on things. He explained me the context of the bug in a short call. I figured out the fix and sent him the method which was responsible for the issue and the stack-trace from the log and how I am going to fix it.
I was then told by the same engineer to not 'swing by small small things by me and that I take the entire ownership of the task I am doing and bring it to closure'. I do agree with this and understand that they have other priority meetings and features to work upon but my entire purpose of sending him updates was then I was not going off track and that the CR which I am going to raise does not have a lot of revision / reviews.
I just need to know when exactly are we supposed to let the other team member know how much we have progressed and also at the same time not let them feel that I am not taking ownership of my tasks?
With a recent, completely unexpected reorg, the product my team owns has effectively been cancelled and will be sunsetted. The company is trying to figure out new scope for my team, but in the meantime, I don't really have stuff to work on. Here are my questions:
I'm a native Android developer, and I really enjoy doing the work. However, I want to make sure that I'm well setup across my career overall - Does Android have good prospects in tech going forward? On a related note, how does it correlate to future opportunities and growth within Amazon?
I have my 1:1 catch up call scheduled with my manager soon, this is the first 1:1 / call I'll be having with him since I met him in the interview. What are some of the good questions I can ask w.r.t to the team and the work that I'll be doing? He had taken my System Design interview and there he went on to talk about the team for 15 mins where we discussed about the team work, team size, on call structure, wlb etc. One important point which I feel is that I won't be joining the team immediately, there's still 3 months time.
I’m an electronics and communications engineer, I’ve been working in low-level software and hardware. I want to understand other domains – other technical teams and also dipping into PM strategy. I think this is limiting my growth in Amazon.
As I think about my career a few years from now, I wonder if I will continue to learn and grow at Amazon or if it would make sense for me to switch to a startup. I do care about compensation as well so that may be a limiting factor in jumping to a startup. What advice do you have for someone who may be interested in working at a startup vs. Big Tech? How many years of experience should I rack up at Amazon / in Big Tech before moving to a startup?
Does it make more sense to specialize in something? I feel like senior engineers focus more on a specific area, while mid-level engineers work on something that’s more generic.
If I were to specialize, how do I pick something that’s going to be on the cutting edge in 5-10 years? I want to work on something that stays relevant long into the future - Are there any specific technical spaces that you're excited about that fit this description?
Would you recommend software engineers try a rotation as an SDM (software development manager)? What benefits or drawbacks would you say would come from making that switch to SDM?
My team is responsible for an ambitious product that we're looking to have a multi-year time horizon for. I know that it's important for senior engineers and especially staff engineers to be able to think proactively, so I was wondering what can concretely be done to get better at creating that long-term vision spanning across many years?
I've had teammates do this in the past, and it's frustrating. How can I prevent it from happening again, and should I approach my manager about it? How do I frame that conversation if so?
The leadership principle is as follows: “Leaders are obligated to respectfully challenge decisions when they disagree, even when doing so is uncomfortable or exhausting. Leaders have conviction and are tenacious. They do not compromise for the sake of social cohesion. Once a decision is determined, they commit wholly.”
How do you build up technical skills for a senior engineer? I want to develop that intuition to understand how to choose the proper technical approach and break down the trade-offs. Are there any resources I can read to accelerate this process?
I'm currently working at Amazon as a contractor. There's 2 questions on my mind:
I was inspired by the gamification on Duolingo, which is a language learning app with a "daily streak" mechanic. The incentive to do something in the app every day has been very powerful for me - I have a streak of 200+ days!
I want to bring this idea over to an engineering context, creating an app called "Leetfriends". The purpose of the app is to have friends share with one another their Leetcode streaks, using social pressure to encourage consistency for everyone. I’m hoping that the app does well, so I could include it in my portfolio and boost my job prospects. How do I best go about this app?
Asking because I have some experience with it, which you can find below:
I want to know if I'm ready to start interviewing. Here's some additional context:
I have ~3 years of work experience, but it was spent working a non-SWE role within Amazon. Because of this, companies consider me between SWE 1 and SWE 2 when I'm interviewing.
What’s the difference between SWE 1 and SWE 2 on the job, and how can I show that I'm in the latter camp in interviews so I can get a SWE 2 offer instead of being set back with a SWE 1 offer?
I’ve seen this a lot with smaller companies like startups. It’s just not likely that I’ve worked with the particular tech stack of whatever the question is about, so I can’t really answer them a lot of the time. How can I respond gracefully to these types of questions?
I came out of school wanting a traditional SWE role but ended up taking a non-SWE role with Amazon due to its name brand and strong TC. This role doesn't have too much coding, so I want to switch to the SDE track within Amazon.
I'm wondering if it makes sense to pursue avenues outside of Amazon as well. My concern is that after losing the reputation I have within Amazon, I won’t be able to get a SW2 role, getting a SW1 role instead.
I interviewed internally for SDE2 in Q1 2022, but didn’t pass the Leetcode portion. However, I was told that I was pretty close to meeting the SDE 2 bar, which is why I am optimistic about this path.