Found 13 lessons for software engineers with this tag.
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 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?
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?
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 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.