Amazon.com, Inc. is an American multinational technology company which focuses on e-commerce, cloud computing, and much more. Headquartered in Seattle, Washington, it has been referred to as "one of the most influential economic and cultural forces in the world".
I see many experienced developers finding flaws in the existing architecture and also refactoring them to make it much better. I don't think I have yet gained the ability to identify loop holes in complex projects. However, I am able to fix issues if someone else calls them out pretty quickly.
How can I improve on this? What are some good resources to develop this skill?
I have a SDE 3 mentor who is very nice and helpful. I started working with them a while ago because I am trying to get promoted to SDE 3 but I don't always have great questions to ask. I also want to be respectful of their time.
What are some questions that will be most beneficial to ask? How can I make the most of this mentorship?
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.
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.
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'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.
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?
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 -
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!
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?
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'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)?
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?