Profile picture

Productivity Q&A and Videos

About Productivity

How to react when code reviews take a lot of time and can get disrespectful?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

I am on a tight deadline to deliver an impactful and complex feature. Whenever I send my PR out for review, my lead takes at least 2-3 days to start reviewing the code. Then, there are either a lot of non actionable comments or feedback on tests. So I started sending out a test plan in advance which also receives a lot of feedback. When I turnaround with a refined PR, the lead again takes 2-3 days for a review. I am worried that there are too many iterations for a simple PR and I am chasing the lead for reviews. When I hinted about the review taking time, I got a response that the code shouldn’t have had so many flaws to begin with. The code doesn’t have bugs, he was nit picking on unit tests that could be refactored for better maintainability. I agree, but should that be a show stopper?

I had my code reviewed by a peer and received feedback that there are no blocking changes and the code is mergeable. For a complex feature, I expected 1-2 iterations but each iteration is draining and am starting to wonder if I am really that bad an engineer. The biggest problem is that the reviews happen in person and the reviewer gets nasty and yells at times. He is extremely rude and after a few minutes he tries to explain that all the feedback is for my own good like I'm a kid. I expect some amount of professionalism but I feel disrespected because of the attitude. Is it normal for 2-3 iterations for a slightly complex PR and should I have to chase reviewers each time? Do you any tips on handling the behavioral issues?

Show more
Posted 2 years ago
163 Views
2 Comments

Explain day-to-day operations and decision-making in Meta

Staff Software Engineer [E6] at Meta profile pic
Staff Software Engineer [E6] at Meta

What is the prevailing culture within the organization, and how does it manifest in day-to-day operations and decision-making? The prevailing culture within an organization is the shared values, beliefs, norms, and practices that shape the social and psychological environment of a business. This culture influences employee behavior, motivates management styles, and affects decision-making processes. What are those for Meta?

What are the hidden things to notice and to worry about? For example:

  1. Cliques and Silos: Pay attention to the formation of exclusive groups or departments unwilling to share information. This can indicate a fragmented culture that hinders collaboration.

  2. Resistance to Change: If there is noticeable resistance to new ideas or changes in procedure, the culture may be rigid and resistant to innovation.

  3. Overwork and Burnout: A culture that consistently expects long hours and overwork may prioritize short-term gains over long-term employee well-being and sustainability.

  4. Turnover Rates: High employee turnover can be a red flag for issues within the organizational culture such as lack of growth opportunities, poor management, or a toxic work environment.

  5. Office Politics: Pay attention to how much politics influence decisions and progress. A culture heavily influenced by politics rather than merit can demotivate employees.

  6. Feedback Mechanisms: Lack of mechanisms for providing constructive feedback, or a culture where feedback is ignored, can indicate a culture not open to self-improvement or employee development.

  7. Diversity and Inclusion: Observe whether the organization actively supports diversity and inclusion, not just in policy but in practice, reflecting a culture of respect and equality.

Show more
Posted a year ago
159 Views
3 Comments

How to turn around my trajectory on my team?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

I joined my current company a bit more than a year ago as an L4. Within 4 months, I'd launched a high stakes project, and after some churn in the team leadership, I was put into the role of being a tech lead to my remaining team of L3s.

As a pseudo TL, I did well in the mentorship and technical guidance responsibilities, but my code output dropped drastically (due to my projects being in the design phase which were being done by my juniors with me providing high level guidance).

In the last three months, I suffered some mental health issues. My work productivity dropped significantly during that time. I've been very open with my manager about my mental state throughout this process, and they've been very supportive of the things I need to do to recover. Around this time my team also hired an L5, who is now officially the TL.

Due to my drop in performance in the latter half of the year, I'm afraid my manager won't trust me with important projects. I wonder if I need to again prove my credentials to keep me on track for L5. I feel very low about my software development abilities.

This has made me demotivated and disinterested in my work. I took a couple weeks off, yet I don't feel like going back to work. I'm not considering changing teams due to immigration issues. I also don't want to leave a team on a low.

Any tips on turning around my motivation, and trajectory on the team? What can I change in my mindset and working style to overcome my struggles?

Show more
Posted 2 years ago
142 Views
3 Comments

How do I improve at building systems?

Entry-Level Software Engineer [IC1] at Nvidia profile pic
Entry-Level Software Engineer [IC1] at Nvidia

I work on a product that runs on a variety of architectures, with code split across many GitHub repositories. We have a complicated build process. When making changes, I often struggle to find a way to run those changes efficiently (i.e. outside of the CI process). This is made worse when I need to make changes that also change the build process or need to run debugging tools like GDB.

When I onboarded, I was told that everyone has their own setup by people who've been on the team since its inception. It seems like people newer than myself have figured it out, even with how messy and changing everything is. However, I've been here for over a year and the team tends to work quite independently. Occasionally, folks will be quite helpful for a point or two, but generally everyone's stretched a bit thin and tends to focus on their tickets. My manager has also rebuffed any requests for collaboration or mentorship since I started, saying that I'm expected to be independent to show I'm ready for the next level. He did say I could that I could try to change the team's culture to be more collaborative if I wanted to take initiative, but that's not what's expected of a software engineer, especially if I want to do well and get promoted.

This question may be more about how to correctly get answers answered when you're no longer new, but I also feel that building (CMake, Docker, environment setup, package management, etc.) is slowing me down. Are there good processes for getting more efficient at building components/systems and unblocking yourself faster?

Show more
Posted 2 years ago
123 Views
3 Comments

Learn About Productivity

Productivity is very important for a software engineers because it can greatly affect your career trajectory. Software engineers who can consistently deliver high-quality work within a defined timeframe can position themselves for faster career advancement. When you can execute tasks quickly, you build a track record of reliability.
When you can meet project milestones, it shows that you can manage your time effectively. When you are productive by optimizing your time, you’ll be contributing to the success of your team.
A strong flow state and ability to context switch are key components of productivity. If you can achieve a flow state, you can significantly increase your speed and efficiency. This is very helpful when you are dealing with a calendar filled with meetings.
You should also be able to manage meetings effectively. This involves not attending unnecessary meetings. It also means consolidating similar meetings to create more focused blocks of time for yourself. If your daily schedule has too many meetings, you run the chance of not being able to get any work done.
When you are in a meeting, you should make sure to follow certain guidelines to make the meeting as productive as possible for everyone involved. Make sure that a clear and detailed agenda is set for the meeting. You should share the agenda with all of the meeting attendees in advance so each of the attendees knows about the context behind the meeting. You should also remind people about the agenda document by pinging people in your company’s communication channels, like Slack or email. Make sure the meetings actually follow the agenda and give everyone in the meeting the opportunity to speak. This will lead to an inclusive environment where everyone is heard.
You also have to be aware of your own mental state to avoid burnout. It’s important to communicate with your manager and tech lead about project timelines and priorities to manage your workload and prevent burnout. Just because you can execute on the work doesn’t mean you are delivering the most meaningful work. Always be prioritizing with your stakeholders to make sure you are meeting the most important goals of your customers
Show more