I recently started a new position as a mid-level software engineer at Meta. This is my first time ever working for a FAANG company, and my first software engineering job working with a huge codebase and distributed teams.
I've been experimenting with Metamate (Meta’s internal AI coding assistant embedded in VSCode), and it's been helpful in navigating the codebase. For example, it can quickly identify file references, generate small code snippets, and even suggest or run unit tests. It’s not always perfect, but it definitely speeds things up.
My concern is: by relying on it, am I missing out on developing core engineering skills? For example:
I want to get promoted to E5, so I really want to focus on improving my technical depth. But I’m not sure if relying on tools like Metamate will slow that down or speed that up. Could really use some advice!
You should absolutely be using AI as much as possible. In my opinion, if you're not learning to code for the first time using AI rarely hurts your growth
In fact using AI has helped me learn 10x faster. So many times when I see the AI do stuff and I'm like wow I had no idea I could do X,Y,Z
In my opinion in this age it's incredibly important to know how to use AI to 10x your velocity for the simple reason that your time is limited, but the AI's time spent writing code is infinite. So knowing how to best use AI will pay off huge. I also think there's a fundamental shift people need to learn to how to best use AI.
The most common failure mode I see is people trying to get the AI to work for you instead of trying to change your workflow to work with what the AI is best at - for the simple reason that AI is getting better and better and time spent running AI has no upper bound
Given that I still think it's important to use AI to 10x your learning. When the AI outputs something make sure to ask it, why did you do that? how does that work? how does it handle XYZ use case. Dont just take the output and run with it. Actually drill deeper.
By doing this I've accelerated my learning so much
I also found taking the courses on debugging/coding and accelerating that process with AI to be super helpful. A lot of the stuff in Taro debugging is your approach. It's not exactly "hard skills" but the mentality around it. I've used those lessons from Taro to change my mindset around how I debug and instead of manually doing it I just ask an AI to do it.
The caveat I'll say is a lot of it depends on the underlying LLM. I am not sure about the quality of Meta's LLMs but I am guessing its not as good as using cursor + sota models.
Here are some excellent guides on how to get started with using AI: https://docs.cursor.com/guides/advanced/large-codebases
Good question! Instead of viewing growth/learning and AI as mutually exclusive, I would view them as something that can be interwoven together harmoniously if you put in the work. You should definitely be using AI to boost your productivity (you're going to need it at Meta, especially if it's your first Big Tech), just make sure to be curious and never copy-paste in code that you don't fully understand. In other words, treat it as a human mentor that you responsibly interact with. More thoughts here: "How to optimally use GenAI to leverage my coding prowess and become a better software engineer?"
I highly recommend the onboarding course as well if you haven't taken it already: The Complete Onboarding Guide For Software Engineers