The Reflection on My First Year at Meta -
Disclaimer : Everything here is just my personal opinion, and this text does not reflect any opinion of my employer. Also, feel free to disagree with me on anything here; again, this is just my personal opinion and reflects my experience.
Before I talk about my first year at Meta, I think it is worth first discussing how I arrived here.<br>I haven’t applied for any job at Meta. Since around 2019, I have received many emails from recruiters about positions there.<br>At the beginning of 2024, I aced the interviews, but I didn’t join the company. At that moment, your interview’s results were valid for 1 year, and I took the entire year to make my decision.<br>Then, I decided to join in January 2025 and started in May 2025.
Since then, I’ve been working as a Senior software engineer with C++ in Infra, specifically on a service that is an ad cache and serves billions of requests daily.
Scale
Even though I had prior experience working at large companies that handled millions of requests daily, I was still impressed by the big volume. Now, I’m working with billions of requests daily and billions of monthly active users.<br>Of course, with this scale, any mistake could be catastrophic. If the cache ads do not work properly, it could cost the company millions of dollars. The reason is pretty simple. This cache is used to avoid expensive<br>ranking algorithms. Even when the cache works well, adding just one field can significantly impact network traffic and storage. This is a game-changer for sure.
Tools
There is an internal tool for almost everything I have used throughout my career, including version control, container systems, databases, storage systems, service discovery, A/B Tests, observability, etc.<br>Since I joined before the AI boom, I needed to learn many of these tools on my own. There is good documentation, though, and many experts are available to help if you are in trouble or in a corner case. If you are an experienced engineer, it is not difficult to learn and compare with the tools you have already used.
People
There are many intelligent people working at Meta. I know, probably you are thinking about the horrible history in Teamblind and on the internet. Here is something difficult to explain for many software engineers:<br>In a very big organization, it is very difficult to define what it is and what it is not. So, the experience is more individual and impacted by your team and organization than the entire company.<br>In my experience, I have optimized C++ code to reduce CPU and memory usage and received excellent reviews on my pull requests from people who have been working there for 10+ years.<br>Of course, as a mathematician, I cannot tell you that everyone is above average. There is no place where everybody is about average; it is mathematically impossible.
The work
At least for me, the work is very interesting. On the tech side, there are many problems to be solved. Many algorithms that you can optimize. Many bits and memory management in C++ that you can work hard to improve. Since the scale is big, everything that you optimized is amplified by the volume of requests. Also, there are many opportunities to speak with internal teams that use the cache and to help them add new features or optimize parameters for their specific use cases.<br>Here again, this is very personal. If you talk to people who work in other places within the company, I do not have a clue whether the work is interesting. Of course, I know people around and know that their work is very interesting too, but I cannot speak for the entire company.
One thing that is very interesting to me is that everything that you do is very easy to test in production. The A/B test tools allow you to redirect a small percentage of traffic to your release, so you can quickly check if the effect you expect is actually what is happening. If not, you can easily stop the traffic, iterate on your idea again, or completely abandon it.<br>I cannot emphasize how good it is. Imagine your team is working on a new feature or refactoring at your company, and you need to test it with a small percentage of your users. A very common case that we know how to resolve with feature flags. I’m not talking just about this. It is like you can have a small part of the company, just for you: data, servers, metrics, release, traffic, etc.<br>For instance, when I worked at Shopify, I optimized many database queries by creating or updating indexes. The problem was that there was no way to create or update an index just for my traffic. Once I create a new index, it is reflected in the database for everybody. Even though I could control the traffic using the index on the reading path, everyone was affected on the write path. This is the power I’m talking about here. This is very easy to control at Meta.<br>Of course, with great power came great responsibility. However, you have great granular control here. If you are an experienced engineer who understands...