Context: I'm a SWE. 5yoe. L4. Mostly gotten CMEs. I have less technical knowledge of my team's work and I fall short in many work conversations. For example, I rarely have anything insightful to comment on design docs (algorithm, scalability, alternate ideas, etc). Instead my comments are mostly trivial/syntactical. Another example, I don't have any meaningful answers to questions/discussions on team chats, meetings, hallway conversations, etc. This makes me useless within the team, and I get demotivated and procrastinate a lot. I'm always far behind on my tasks, and end up doing the "easy" chores. Everyone at my level except me owns a substantial portion of the project/feature and they present/discuss it during important meetings. I can see that others at my level are growing much faster than me. To increase my knowledge, I think I need to study my project material and understand how everything fits together, like how I used to in school/university. I've completely forgotten how I used to study. In school/university, I recall making notebooks for every subject, annotating important information, revising the coursework every few days, etc. But it seems so overwhelming! There's a lot to know! I'm also considering taking a 1-2 week long vacation to make work notes, and studying everything related to my work. Do you do anything similar to excel at work? How did you become the reliable "go-to" person for any questions in sub-areas/portions of your team's work? How do you fill your knowledge gaps? Note: please don't suggest switching jobs. I considered it, but that makes me feel like a quitter/loser. I want to give another shot and succeed within my team. Also, I think I could have the same problem at my next role. #tech #growth #career
It is the same questions newbies have when they join the gym after new years eve. "how can I bench press 225?" Learn the fundementals and have a plan to improve week after week. This is the only legit way
Take ownership of large tasks, volunteer and be proactive, ultimately dive in and master a portion of the codebase to the point that you understand every line. A plus would be that you understand your portion of the codebase and how it fits in with everything else, to the point that you can suggest and implement improvements on the infra level. This is how you cement yourself as the “go-to” person. Also take note of your what your team members do. Just watching some of my amazing team members and the way they work really helped me realize where I’m lacking.
The easiest way to become the go-to person is to stay in the team longer than anyone else. When you are the person with the most tenure in the team you become the go-to person. Otherwise, you need to be proactive. You need to think about what are pain points in your team and do something about them. Eventually you start making life better and unblocking others. People ask you things and you help them. You build trust. Trust is what makes you the go to person.
I'm not sure if that's true. For example, I do have tenure longer than some other people in my team. But they're definitely more reliable to fix high priority issues and land more important projects than me.
You have to be THE most tenured in the team. As long as there is one other more or equally tenured, it doesn't work. It only works because you have context that no one else had because they weren't there. So if you don't want to wait. Stick to the second option
First time first. 5 YoE isn't a huge amount of experience. Experience (+ an approachable personality) usually makes you the go to team person. Look at all the tasks you do and find the things you do best in the team. See if there are opportunities to bring people weaker on that topic but to your level of skill - documentation, training, mentor, chats etc. Next, find an area your team is weak on and grab it. Focus energy, learning and notes on that. If it's something others don't like cos it's hard etc, all the better. Also, stop the comparison game. It's not helpful in your case, it's just making you feel shit. There will always be people better and worse than you. Focus on your game.
Not what you’re asking, but being the go to person can sometimes be overwhelming. It’s time consuming and it’s hard to get your own work done.
I would say go deep on one particular area. It’s overwhelming to try to be the best in all areas. Perhaps you could study scalability deeply and become the go-to person for that. I work at a small company but I spent a lot of time learning testing and devops so I’m now the go-to person for those areas. To have alternative ideas you need to be aware of what the alternatives are, perhaps on the next project spend time reading about different approaches in one specific area, e.g. what would software design pattern X offer over design pattern Y in this scenario. Pick a different focus on the next design doc after that. Over time, you’ll have researched different paradigms of many topics and be able to offer thoughtful alternatives. Best of luck you can do this and don’t quit yet!
Not sure how long you’ve been at Google but if you’ve been there less than a year remember to be kind to yourself. It can be difficult to get up to speed at such a complex org. Don’t take PTO to take work notes. Use your work time. That’s what they pay you for! You mentioned that you sometimes procrastinate so use that time to build those notes or dive deep on a system. Becoming a system owner is multifaceted. In some cases, it can be circumstantial. Person x was asked to build system Y because there was no one else on the team who had the bandwidth to do it. Or person Z left and they had to take it on. They’re not necessarily smarter than someone at the same level, but they were at the right place at the right time. Irrespective of the situation, they were forced to understand the system. In other cases, a person may have earned the trust of their manager to be tasked with leading a project or building an important system. This is usually done through a track record of on delivering projects on time and with high quality. Your question of how to excel is broad. In your case, I would focus on preparation. How can you be the most prepared for you meetings or reviewing a design doc? Do you need to review existing design docs of adjacent systems, get time with a senior engineer, or learn a bit more about a technology? Only you can answer that because it will be team to specific. Also, try not to get discouraged to a point that you procrastinate. That’s how your boss grows to not trust you. Always deliver your work in a timely manner, thoughtfully and with high quality.
Have fresh donuts in your cube
👆This is a joke but it's not entirely wrong. People come and ask my opinion on everything in my team + other teams. Including shit I haven't got much of a clue on. Mostly just being approachable, listening, willing to grab a coffee or talk shit - seems to be the trick. Lots of people in my team are way way more skilled but just don't have the same open approach, so people don't ask.