Microsoft is an American multinational technology corporation which produces computer software, consumer electronics, personal computers, and related services headquartered in Redmond, Washington, United States. Its best-known software products are the Windows line of operating systems, the Microsoft Office suite, and the Internet Explorer and Edge web browsers. Its flagship hardware products are the Xbox video game consoles and the Microsoft Surface lineup of touchscreen personal computers.
At my current level, my skip level manager expects me to help my team members grow. I have couple of SDE 1s and SDE IIs in my team who are doing good. I am not sure if I can schedule one on one with them to understand their career goals and volunteer to be their technical & career mentor?
Will it look bad if I volunteer myself to be their career mentor? Or should I just mentor people who reach out to me?
Every time, when my manager asked me to do some changes to the repository that is totally new to me. I became scared.
I prefer to do research by myself first. But I got lost in the new repo by reading file by file, and don't get the clarity.
So I ask the repository owner to provide documentation, mostly they don't maintain documentation, and even if they do, it is not updated or it involves a lot of detailed feature-wise documentation, which is usually not relevant to my requirement.
Then, I call the POC of that repo, but I couldn't figure out what is the right question to ask in the first call. Over time, I ping him asking questions whenever I face hurdles while achieving the requirements.
Sometimes, I put a debugger or logs to understand the flow of code.
The above processes took a lot of my time.
What is your suggestion to get clarity in the new repo such that I can complete my requirements in less time?
I have been hearing from my friends about senior engineer's round table meetings happening in their company. I am wondering what is exactly Senior Engineer's round table. (Senior Engineers from the same team and peer teams working for same skip-level manager)
What kind of topics can be discussed at this round table session?
How to initiate such discussions?
My team owns a really wide set of features spanning across multiple repos and programming languages (C++, React, Angular). On top of that, each person works on pretty different areas (telemetry/data, UI components, client side api, etc.). We have a v1 of the app being maintained and a v2 currently being developed with some people working on v1 and some working on v2. It's impossible to know all the context behind every pull request.
How can I give quality code reviews? At most I can only provide feedback to simple code logic and really well written PR descriptions. Should I be trying to private message the developer for each PR to understand more, or is this just something that comes with time?
Will interviews for data-related jobs at FAANG companies be different from general software jobs? Given my most recent experience is in software engineering, how can I best prepare for behavioral questions for a data related job?
Can you share resources for data-related interviews (applied data science, data analysis, sql, big data, etc). Also, any tips that a former software engineer can best prepare for switching roles to a data engineer.
I am not confident whenever I try to code a new library or a service. I simply copy-paste, look at other samples in the coding repo, and complete my tasks. How can I be better at coding, without copy-pasting? How can I gain confidence in this?
I had a career discussion with my new manager during my one-on-one meeting. I did ask him if he is ready to put me up for promotion to senior software engineer. He said he will gather feedback and get back to me next week. In the following one-on-one discussion, he brought up a few points as feedback.
I am actually upset and demotivated. How can I handle this situation? How to move forward with my new manager regarding career discussion?
Some of my work involves coding in an old AngularJS codebase that has a lot of issues. Most files are 5-6k lines long, many of the functions are on v3() while v1 and v2 are left in there creating technical debt. We've already moved on to a rewrite of the application in React, leaving the AngularJS code a mess that no-one cares about.
How should I approach work that is assigned to me in this codebase? Get it done as fast as possible so I can get back to my "real meaningful work" in the React codebase, probably adding on more technical debt in the process? Take my time and try to make the most even if the code is worse and I might be learning anti-patterns? The AngularJS codebase will be deprecated and migrated away from in a year anyways so developers don't really care about refactoring or improving the code quality. I've been trying my best to essentially avoid work in the AngularJS codebase, but unfortunately I can't ignore it since 200 million+ users rely on it and oftentimes on-call issues crop up in it.
I was watching this recorded session . In that series, Alex mentioned picking a tech stack and sticking to it.
In that case, I work in C# and .net tech stack, however, if I switch companies, and the other company uses Java and its relevant framework, how can I gain expertise in that stack?
Should I look for jobs that use the tech stack that I am strong with?
Or learn and master the tech stack that companies use?
I've been debating this though for a while. Is it worth it to go for a principal role (61 -> 62 -> 63 -> 64) or just go and build something your own
There are so many design patterns available. I read through all the design patterns and sometimes I feel like more than one design patterns work well for the logic I am coding. Example: I am trying to eliminate multiple if-else and switch statements as it is not scalable. I see the "Chain of responsibility pattern", and "strategy pattern". Both work well for my logic. How can I make a decision of choosing one of the designs for this?
During code review: People share their opinion on using a design pattern, and I sometimes struggle to convince my reviewers of the pattern that I have used in code.
I am open to getting feedback and analyzing different design patterns suggested by reviewers. However, in some situations, I feel more than one design pattern fits for the logic and there is no right or wrong approach.
How to handle this kind of situation?
I recently interned at Microsoft, and I was able to get a return offer for another internship for the same team. I'm back at school now, and my goal is to nail the return internship so I can get a return offer to work full-time. In my spare time while at school, how can I best prepare myself to hit the ground running for my return internship? For context, I worked with Azure APIs during my internship, being more of a back-end developer.
I am good at coding, and I am able to deliver features to prod. However, when it comes to technical writing, like writing software design document, coming up with state transition diagram, block diagram, I am struggling with it a lot. I am not from computer science background, so I am not well versed in coming up flow chart, sequence diagram and state transition diagram. How to improve on these areas? Becuase of this, I am finding it difficult to communicate my idea to principal engineers/ architects. How can I improve on this?
At Microsoft, basic criteria for promotion is to deliver at next level consistently. Example: At L62, i need to work and deliver at L63s work level standards.