Taro Logo
2

Improvements based on performance review - MLE

Profile picture
Mid-Level Software Engineer at TikTok5 months ago

Feedback

I got feedback on the last two quarters since I joined the company on three things:

Impact - E; Teamwork - M+; Technical Skills - M

Except for that, something that I was lacking was leadership & ownership.

Current Level: Mid-level.

Question Focus

  • I wanted here to discuss my struggles in improving my technical skills & leadership. And what mindsets & behaviors I need adopt.

  • My focus is more about getting a good rating & having a good bonus. And less about promotion at the moment.

Discussion

  1. At the moment, I rely a lot of my lead to make decisions about things I work on & focus on. This is due to following aspects:
    1. I feel part of it is me not having confidence in myself to know what's right. Since my lead has much more experience in this area & I'm very new to it.
    2. The uneasiness of not knowing what's the right approach. It's easy to have another person look at it than dive deep into something you don't look of.
    3. Sometimes documentation is not in English at my company & that is a burden into looking at things deeply.
      1. It breaks my confidence at times & slows me compared to other people who know that language.
  2. New tools & languages
    1. C++: I haven't spent much time learning it since I focussed on moving fast & creating impact so far. So that hampered me in setting aside time to learn this language that's used a lot in backend code.
      1. And at times I ask people in help for navigating code than I should do myself.
    2. I'm also haven't worked much in the backend part before being a MLE but now we all have at my current company but I don't feel any new concepts here I need to know.
    3. Design patterns
      1. I see these patterns in the code-base. Like how they use configs & classes. I see some other people in my team figuring it out very seamlessly. But I don't know which pattern they are using.
      2. And I don't know how time I should spend on this. Since reading a whole book on design patterns would be a lot of time. But knowing them would be useful.
  3. Algorithms & ML
    1. A big part of my job or my main-job is improving the algorithms & ML models to make more revenue.
    2. A lot of times, I see my teammates reading similar approaches in the company & adopting them to our use-case. Sometimes doing so I find it hard. Since the docs of these approaches are not in english at times.
      1. So I have ask around some folks to translate things. This severely slows me down.
      2. The better way could be to read outside papers/approaches but that takes more time. And may not know if they fit so good to our use-case.

Would love feedback on

  • how I can work better on these things
  • what mindsets I can adopt here to make more progress.
72
2

Discussion

(2 comments)
  • 1
    Profile picture
    Tech Lead/Manager at Meta, Pinterest, Kosei
    5 months ago

    It's great that you've done so much reflection already and provided so much context! In the future, though, you may get faster (or more) responses with less text. You want to make it easy for people to provide their perspectives, and more directed questions help with that. (feel free to ask multiple distinct questions!)

    One reflection is that the documentation being in Chinese is slowing you down. I don't have a great answer to handle this: non-Chinese speakers will continue to be at an inherent disadvantage in the company if there's not a centralized effort to stick with one language. This is a structural issue and if you think that's a big enough hindrance, there's not much you can do other than leave.

    Of the 3 axes, the largest opportunity for improvement is with Technical Skills, where you're meeting expectations now (M).

    • Do not focus on design patterns, at least not in the classical sense of reading a book. When you implementing a new feature or experiment, spend 30 min - 1 hour grepping the codebase for patters you can follow. If you don't find any, just go with what works, and then ask for feedback.
      • This will be way faster than trying to learn design patterns in isolation using a book or just trying to "understand the codebase".

    uneasiness of not knowing what's the right approach

    There are 2 potential issues here IMO:

    1. Lack of knowledge of the right approach
    2. Ambiguity around what your manager or others know. You don't want to take on an approach that is easily invalidated by your team.

    #1 will come with time and shipping more features, but #2 is something you can make quick progress on. Spend time going through the code your peers have put out. What is the common feedback or concerns?

    This will help you calibrate on their knowledge/skill and also let you learn a lot when it comes to other patterns.

  • 0
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    4 months ago

    First off, congrats on the good review! I'm assuming E = Exceeds Expectations and M = Meets Expectations. It seems like you did above average at everything minus "Technical Skills", and that one makes sense as you're learning a lot of new tech stacks (+ you need to overcome the Chinese/English barrier).

    ...how I can work better on these things

    Overall, I think you need be more fearless and put yourself out there to absorb the tech stack faster. Follow Cat's advice from here: "What’s the most effective way to switch domains in tech?"

    From your post, it seems like you're asking for help a lot as you're unsure how to parse the codebase properly or take the right approach/design pattern. Instead of doing that, just try something and put it out there. If your thing sucks, process the feedback (and thank your teammates for giving it) and make it good. Burn that learning into your brain so you don't make the system mistake again. Repeat until you're a TikTok MLE code master.

    For a systematic way about soliciting technical design feedback, follow the advice/structure from my system design series: System Design Masterclass: Taro Playlists

    On a side note, if you're getting teammates to translate docs from Chinese -> English for you, try writing those English translations down so you leave the wiki in a better place than which you found it. This will help you in the future if you need to go back to that documentation alongside every other person on the team (both present and future) who doesn't read Chinese and cares about that material.

    what mindsets I can adopt here to make more progress.

    Go from:

    "I am unsure of my abilities, so I'm going to ask my team on how to do things right so I don't mess things up."

    To this:

    "I'm going to just put things out there ASAP and a lot of it is going to suck, but I will learn fast by being humble and incorporate feedback lightning fast. I may suck now, but not for long 💪."

    TikTok is one of the world's best tech companies, and you seem to be doing pretty well at it! You have every right to be confident, keep your head high, and believe in yourself.