Taro Logo
Profile picture

Productivity Q&A and Videos

About Productivity

We all have the same 24 hours in a day - The difference is that some are able to get far more out of it than others. Here's what they're doing that others aren't.

Risk of PIP!!! Performance Review: Sometimes Meets Expectations x2.

Mid-Level Software Engineer at TikTok profile pic
Mid-Level Software Engineer at TikTok

My Role is Senior SRE

I received my second performance review and it came in at a -M which means Sometimes meets expectations. This is my first year in big tech and I'm at a loss for words. I worked 12-hour days since I started. The first 6 months I just winged it and did not realize how strategic and crucial these performance reviews were.

So for my second 6 months, I aligned with my team lead and manager. I executed every project they asked me to and even created some projects to help the entire team. I was led to believe I was doing good work. However, this Tuesday I received the news that my rating is again a -M. They said that they did not put me on a PIP because they saw improvement from the last PR.

They told me the reason was that I am one of 3 Sr. Engineers and that two of them are performing more than I am. Since we are rated on a curve I am last. 9 out of my 10, 360 reviews were positive and an M or above. I have a follow-up meeting next week with my manager to discuss my improvement plan. I also set up a call with my manager's manager for a coaching/mentorship call.
Here are my questions.

  • I feel like my manager sees others as more proficient than me. Even though other colleagues tell me I am better than the other senior engineers how can I break out of this perception my manager has?
  • How can I avoid a PIP? Our next performance review is in 2-3 months due to some changes they made in the yearly PR schedule. I don't think I can make enough changes during that time.
  • What should my approach be towards my manager and his manager?
    • I want to be humble but also direct.
    • I feel I am not being treated fairly but I also think the system may be designed this way. I don't want to appear like I am a victim either.
  • I fear that I will get a PIP due to my manager's subjective opinion I will lose my job, my apartment, and I will have lost the last 2 years of working myself to the bone. How can I escape being in this state of survival?
Show more
975 Views
2 Comments

How can I be more confident being in Big Tech?

Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro Community

A year back I joined a Big Tech company as a mid-level software engineer. I had 5 years of work experience mostly in not-so-famous startups and I joined a large tech company after doing my masters.

It's been a year since I joined but I regularly feel like I don't belong here. I go through alternating waves of confidence and self-doubt. When I am not able to debug simple issues in a new microservice, I feel dumb. I feel like the senior devs on my team are just able to solve everything and I am still struggling after a year. I have been through a round of layoffs and re-org and am not sure about the kind of work I will be doing in the future.

I want to be promoted to senior engineer level but constantly get feedback that I am not assertive, opinionated, and take more time than usual to complete ambiguous tasks. I see everyone getting promoted around me and I don't understand why I can't seem to be improving. I am very motivated and willing to slog hard, but it seems like I simply don't get it or am not smart enough. Everyone around me just feels smarter and more experienced.

I feel like moving to a smaller company with not-so-high coding standards and ditching big tech because it will be more up my forte. I am aware that I won't grow there. It just feels frustrating to be stuck at a junior-mid level, 7 years after my bachelor's. But I also know I am not at that level yet.

Any advice on how to go through this problem to the other side will be lovely.

Show more
214 Views
3 Comments

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
135 Views
2 Comments

How Long to Complete Take-Home Assignment II

Data Engineer at Financial Company profile pic
Data Engineer at Financial Company

My was “When given a take-home assignment, what is a reasonable turnaround time to get it back to them?” I now know it’s within a week.

I was given the assignment to create a basic Django app and was told to spend no more than 3 hours on it. Here’s the short text of the assignment description:

Table Metadata Extractor (Python)

Please provide a Python Django application that has one API endpoint which accepts a database connection string from your DB of choice (Redshift, BigQuery, Snowflake, MySQL, Postgres), connects to the database using and returns a list of the TableMetadata data objects (see below) for all tables in the database.

TableMetadata = {

columns: List[ColumnMetadata]

num_rows: int

schema: str

database: str

}

ColumnMetadata = {

col_name: str

col_type: str

}

Bonus points for:

·         Instructive error messages for improper connection strings or other invalid input

·         A solution that is efficient

As a Data Engineer/Analyst, I haven’t done web-dev stuff in years and have never used Django. My immediate instinct upon reading this project description was to find a resource to learn Django online. I’m not sure this is the right instinct, because software is about doing more than learning as Alex has mentioned so many times.

The way I see it, I have 3 ways to approach this assignment:

  1. The way I just mentioned. Go down a learning path (hopefully not a rabbit hole), learn about Django and try completing the assignment.
  2. Dive right in, try building the solution from scratch, Googling and ChatGPTing liberally.
  3. Don’t do the assignment, spare myself the time and headache, and beef up my Python web-dev skills for the future.

The first approach requires the most upfront time. The second might be longer or shorter than the first. And the third doesn’t require any upfront time but requires a commitment to being in a much better position to do the assignment in future.

This is the second time in a couple of months I’ve been in this position since I was given an assignment for a different company to build a Flask app and did a shoddy job with it.

My first question is, which of the 3 options should I do to address this time-sensitive situation?

My second is, how should I address this situation long-term? Building some web-dev projects in Python with Flask/Django/FastAPI seems pretty logical. I don’t get to work with them at work, but I could spend a few weeks building stuff with them. I guess that’s the answer, the key is to avoid tutorial hell.

My third is, how should I think about take-home assignments in general? Should they stretch me a lot in terms of learning new things or conversely, should I be, say, 80% comfortable with what I need to do, just stretching a bit here and there to do stuff?

Thanks!

Show more
262 Views
5 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